summaryrefslogtreecommitdiff
path: root/endless/eosapiversion.h
blob: 3a7e8561b20839b3ca22eeb117ee12d42e4609e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/* Copyright 2013-2015 Endless Mobile, Inc. */

#ifndef API_VERSION_H
#define API_VERSION_H

#if !(defined(_EOS_SDK_INSIDE_ENDLESS_H) || defined(COMPILING_EOS_SDK))
#error "Please do not include this header file directly."
#endif

#include <glib.h>

#include "eosversion.h"

#ifdef EOS_SDK_DISABLE_DEPRECATION_WARNINGS
#define EOS_SDK_DEPRECATED
#define EOS_SDK_DEPRECATED_FOR(f)
#define EOS_SDK_UNAVAILABLE(maj,min)
#else
#define EOS_SDK_DEPRECATED G_DEPRECATED
#define EOS_SDK_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f)
#define EOS_SDK_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min)
#endif

/* Each new stable series should add a new version symbol here. If necessary,
define EOS_SDK_VERSION_MIN_REQUIRED and EOS_SDK_VERSION_MAX_ALLOWED to one of
these macros. */
#define EOS_SDK_VERSION_0_0 (G_ENCODE_VERSION (0, 0))
#define EOS_SDK_VERSION_0_2 (G_ENCODE_VERSION (0, 2))
#define EOS_SDK_VERSION_0_4 (G_ENCODE_VERSION (0, 4))
#define EOS_SDK_VERSION_0_6 (G_ENCODE_VERSION (0, 6))

#if (EOS_SDK_MINOR_VERSION == 99)
#define EOS_SDK_VERSION_CUR_STABLE (G_ENCODE_VERSION (EOS_SDK_MAJOR_VERSION + 1, 0))
#elif (EOS_SDK_MINOR_VERSION % 2)
#define EOS_SDK_VERSION_CUR_STABLE (G_ENCODE_VERSION (EOS_SDK_MAJOR_VERSION, EOS_SDK_MINOR_VERSION + 1))
#else
#define EOS_SDK_VERSION_CUR_STABLE (G_ENCODE_VERSION (EOS_SDK_MAJOR_VERSION, EOS_SDK_MINOR_VERSION))
#endif

/* evaluates to the previous stable version */
#if (EOS_SDK_MINOR_VERSION == 99)
#define EOS_SDK_VERSION_PREV_STABLE (G_ENCODE_VERSION (EOS_SDK_MAJOR_VERSION + 1, 0))
#elif (EOS_SDK_MINOR_VERSION % 2)
#define EOS_SDK_VERSION_PREV_STABLE (G_ENCODE_VERSION (EOS_SDK_MAJOR_VERSION, EOS_SDK_MINOR_VERSION - 1))
#else
#define EOS_SDK_VERSION_PREV_STABLE (G_ENCODE_VERSION (EOS_SDK_MAJOR_VERSION, EOS_SDK_MINOR_VERSION - 2))
#endif

#ifndef EOS_SDK_VERSION_MIN_REQUIRED
# define EOS_SDK_VERSION_MIN_REQUIRED (EOS_SDK_VERSION_CUR_STABLE)
#endif

#ifndef EOS_SDK_VERSION_MAX_ALLOWED
# if EOS_SDK_VERSION_MIN_REQUIRED > EOS_SDK_VERSION_PREV_STABLE
#  define EOS_SDK_VERSION_MAX_ALLOWED (EOS_SDK_VERSION_MIN_REQUIRED)
# else
#  define EOS_SDK_VERSION_MAX_ALLOWED (EOS_SDK_VERSION_CUR_STABLE)
# endif
#endif

/* sanity checks */
#if EOS_SDK_VERSION_MAX_ALLOWED < EOS_SDK_VERSION_MIN_REQUIRED
#error "EOS_SDK_VERSION_MAX_ALLOWED must be >= EOS_SDK_VERSION_MIN_REQUIRED"
#endif
#if EOS_SDK_VERSION_MIN_REQUIRED < EOS_SDK_VERSION_0_0
#error "EOS_SDK_VERSION_MIN_REQUIRED must be >= EOS_SDK_VERSION_0_0"
#endif

/* Every new stable minor release should add a set of macros here */

#if EOS_SDK_VERSION_MIN_REQUIRED >= EOS_SDK_VERSION_0_0
# define EOS_SDK_DEPRECATED_IN_0_0        EOS_SDK_DEPRECATED
# define EOS_SDK_DEPRECATED_IN_0_0_FOR(f) EOS_SDK_DEPRECATED_FOR(f)
#else
# define EOS_SDK_DEPRECATED_IN_0_0
# define EOS_SDK_DEPRECATED_IN_0_0_FOR(f)
#endif

#if EOS_SDK_VERSION_MAX_ALLOWED < EOS_SDK_VERSION_0_0
# define EOS_SDK_AVAILABLE_IN_0_0 EOS_SDK_UNAVAILABLE(0, 0)
#else
# define EOS_SDK_AVAILABLE_IN_0_0
#endif

#if EOS_SDK_VERSION_MIN_REQUIRED >= EOS_SDK_VERSION_0_2
# define EOS_SDK_DEPRECATED_IN_0_2        EOS_SDK_DEPRECATED
# define EOS_SDK_DEPRECATED_IN_0_2_FOR(f) EOS_SDK_DEPRECATED_FOR(f)
#else
# define EOS_SDK_DEPRECATED_IN_0_2
# define EOS_SDK_DEPRECATED_IN_0_2_FOR(f)
#endif

#if EOS_SDK_VERSION_MAX_ALLOWED < EOS_SDK_VERSION_0_2
# define EOS_SDK_AVAILABLE_IN_0_2 EOS_SDK_UNAVAILABLE(0, 2)
#else
# define EOS_SDK_AVAILABLE_IN_0_2
#endif

#if EOS_SDK_VERSION_MIN_REQUIRED >= EOS_SDK_VERSION_0_4
# define EOS_SDK_DEPRECATED_IN_0_4        EOS_SDK_DEPRECATED
# define EOS_SDK_DEPRECATED_IN_0_4_FOR(f) EOS_SDK_DEPRECATED_FOR(f)
#else
# define EOS_SDK_DEPRECATED_IN_0_4
# define EOS_SDK_DEPRECATED_IN_0_4_FOR(f)
#endif

#if EOS_SDK_VERSION_MAX_ALLOWED < EOS_SDK_VERSION_0_4
# define EOS_SDK_AVAILABLE_IN_0_4 EOS_SDK_UNAVAILABLE(0, 4)
#else
# define EOS_SDK_AVAILABLE_IN_0_4
#endif

#if EOS_SDK_VERSION_MIN_REQUIRED >= EOS_SDK_VERSION_0_6
# define EOS_SDK_DEPRECATED_IN_0_6        EOS_SDK_DEPRECATED
# define EOS_SDK_DEPRECATED_IN_0_6_FOR(f) EOS_SDK_DEPRECATED_FOR(f)
#else
# define EOS_SDK_DEPRECATED_IN_0_6
# define EOS_SDK_DEPRECATED_IN_0_6_FOR(f)
#endif

#if EOS_SDK_VERSION_MAX_ALLOWED < EOS_SDK_VERSION_0_6
# define EOS_SDK_AVAILABLE_IN_0_6 EOS_SDK_UNAVAILABLE(0, 6)
#else
# define EOS_SDK_AVAILABLE_IN_0_6
#endif

#endif /* API_VERSION_H */