summaryrefslogtreecommitdiff
path: root/endless/eosapiversion.h
diff options
context:
space:
mode:
Diffstat (limited to 'endless/eosapiversion.h')
-rw-r--r--endless/eosapiversion.h127
1 files changed, 127 insertions, 0 deletions
diff --git a/endless/eosapiversion.h b/endless/eosapiversion.h
new file mode 100644
index 0000000..3a7e856
--- /dev/null
+++ b/endless/eosapiversion.h
@@ -0,0 +1,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 */