From ac0d18a18ccd0873b62b332c14cd8547e72b1a5b Mon Sep 17 00:00:00 2001 From: Philip Chimento Date: Mon, 31 Aug 2015 12:54:08 -0700 Subject: Generate version macros from configure This adds EOS_SDK_MAJOR_VERSION, EOS_SDK_MINOR_VERSION and EOS_SDK_MICRO_VERSION as macros in eosversion.h whose values are generated from configure with AC_SUBST, rather than in config.h using AC_DEFINE. They are also public API, so they get documenation and Since: annotations. [endlessm/eos-sdk#3071] --- endless/Makefile.am | 1 + endless/eosapiversion-private.h | 112 ++++++++++++++++++++++++++++++++++++++++ endless/eosenums.h | 2 + endless/eostypes.h | 2 +- endless/eosversion.h | 110 --------------------------------------- endless/eosversion.h.in | 37 +++++++++++++ 6 files changed, 153 insertions(+), 111 deletions(-) create mode 100644 endless/eosapiversion-private.h delete mode 100644 endless/eosversion.h create mode 100644 endless/eosversion.h.in (limited to 'endless') diff --git a/endless/Makefile.am b/endless/Makefile.am index a39c1e6..143d0f3 100644 --- a/endless/Makefile.am +++ b/endless/Makefile.am @@ -37,6 +37,7 @@ endless_private_installed_headers = \ endless/eosflexygrid.h endless_library_sources = \ + endless/eosapiversion-private.h \ endless/eosapplication.c \ endless/eosattribution.c endless/eosattribution-private.h \ endless/eoscellrendererpixbuflink.c endless/eoscellrendererpixbuflink-private.h \ diff --git a/endless/eosapiversion-private.h b/endless/eosapiversion-private.h new file mode 100644 index 0000000..cfcd4ec --- /dev/null +++ b/endless/eosapiversion-private.h @@ -0,0 +1,112 @@ +/* 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 + +#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)) + +#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 + +#endif /* API_VERSION_H */ diff --git a/endless/eosenums.h b/endless/eosenums.h index 257f435..788b258 100644 --- a/endless/eosenums.h +++ b/endless/eosenums.h @@ -9,6 +9,8 @@ #include +#include "eosapiversion-private.h" + G_BEGIN_DECLS /* Shared typedefs for enumerations */ diff --git a/endless/eostypes.h b/endless/eostypes.h index a15a309..830cca1 100644 --- a/endless/eostypes.h +++ b/endless/eostypes.h @@ -7,7 +7,7 @@ #error "Please do not include this header file directly." #endif -#include "eosversion.h" +#include "eosapiversion-private.h" #include "eosenums.h" #include "eosmacros.h" diff --git a/endless/eosversion.h b/endless/eosversion.h deleted file mode 100644 index 0e458c6..0000000 --- a/endless/eosversion.h +++ /dev/null @@ -1,110 +0,0 @@ -/* 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 - -#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)) - -#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 - -#endif /* API_VERSION_H */ diff --git a/endless/eosversion.h.in b/endless/eosversion.h.in new file mode 100644 index 0000000..be6f656 --- /dev/null +++ b/endless/eosversion.h.in @@ -0,0 +1,37 @@ +/* Copyright 2015 Endless Mobile, Inc. */ + +#pragma once + +#if !(defined(_EOS_SDK_INSIDE_ENDLESS_H) || defined(COMPILING_EOS_SDK)) +#error "Please do not include this header file directly." +#endif + +/** + * EOS_SDK_MAJOR_VERSION: + * + * Major version number (API level) of the Endless SDK library. + * For example, this is 0 for version 0.6.1. + * + * Since: 0.6 + */ +#define EOS_SDK_MAJOR_VERSION (@EOS_SDK_MAJOR_VERSION@) +/** + * EOS_SDK_MINOR_VERSION: + * + * Minor version number of the Endless SDK library. + * For example, this is 6 for version 0.6.1. + * An even number indicates a stable release, while an odd number is used for + * development snapshots. + * + * Since: 0.6 + */ +#define EOS_SDK_MINOR_VERSION (@EOS_SDK_MINOR_VERSION@) +/** + * EOS_SDK_MICRO_VERSION: + * + * Micro version number of the Endless SDK library. + * For example, this is 1 for version 0.6.1. + * + * Since: 0.6 + */ +#define EOS_SDK_MICRO_VERSION (@EOS_SDK_MICRO_VERSION@) -- cgit v1.2.3