diff options
author | Chun-wei Fan <fanchunwei@src.gnome.org> | 2012-02-29 18:03:15 +0800 |
---|---|---|
committer | Chun-wei Fan <fanchunwei@src.gnome.org> | 2012-02-29 18:10:03 +0800 |
commit | b689737a4353e382bf7195d655307d7645781505 (patch) | |
tree | e6eab39b5938bc7ca5504967589919f096855569 | |
parent | a22d7ac1b569ea2cfb4ffe30e738db9887c06002 (diff) | |
download | clutter-b689737a4353e382bf7195d655307d7645781505.tar.gz |
Update clutter-version.h.win32(.in)
Make it like the clutter-version.h.in template. Since we aren't having
Windows-specific items in here (such as CLUTTER_FLAVOUR), perhaps we
could get the dllexport stuff in clutter-version.h.in, where it can be
used when necessary, and this file would be gone.
-rw-r--r-- | clutter/clutter-version.h.win32.in | 137 |
1 files changed, 108 insertions, 29 deletions
diff --git a/clutter/clutter-version.h.win32.in b/clutter/clutter-version.h.win32.in index 76efc4e3f..5f5cf6322 100644 --- a/clutter/clutter-version.h.win32.in +++ b/clutter/clutter-version.h.win32.in @@ -23,12 +23,51 @@ * */ +#if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION) +#error "Only <clutter/clutter.h> can be included directly." +#endif + /** * SECTION:clutter-version * @short_description: Versioning utility macros * * Clutter offers a set of macros for checking the version of the library - * an application was linked to. + * at compile time; it also provides a function to perform the same check + * at run time. + * + * Clutter adds version information to both API deprecations and additions; + * by definining the macros %CLUTTER_VERSION_MIN_REQUIRED and + * %CLUTTER_VERSION_MAX_ALLOWED, you can specify the range of Clutter versions + * whose API you want to use. Functions that were deprecated before, or + * introduced after, this range will trigger compiler warnings. For instance, + * if we define the following symbols: + * + * |[ + * CLUTTER_VERSION_MIN_REQUIRED = CLUTTER_VERSION_1_6 + * CLUTTER_VERSION_MAX_ALLOWED = CLUTTER_VERSION_1_8 + * ]| + * + * and we have the following functions annotated in the Clutter headers: + * + * |[ + * void clutter_function_A (void) CLUTTER_DEPRECATED_IN_1_4; + * void clutter_function_B (void) CLUTTER_DEPRECATED_IN_1_6; + * void clutter_function_C (void) CLUTTER_AVAILABLE_IN_1_8; + * void clutter_function_D (void) CLUTTER_AVAILABLE_IN_1_10; + * ]| + * + * then any application code using the functions above will get the output: + * + * |[ + * clutter_function_A: deprecation warning + * clutter_function_B: no warning + * clutter_function_C: no warning + * clutter_function_D: symbol not available warning + * ]| + * + * It is possible to disable the compiler warnings by defining the macro + * %CLUTTER_DISABLE_DEPRECATION_WARNINGS before including the clutter.h + * header. */ #ifndef __CLUTTER_VERSION_H__ @@ -93,57 +132,97 @@ G_BEGIN_DECLS (CLUTTER_MINOR_VERSION << 16) | \ (CLUTTER_MICRO_VERSION << 8)) +/* XXX - Every new stable minor release bump should add a macro here */ + /** - * CLUTTER_CHECK_VERSION: - * @major: major version, like 1 in 1.2.3 - * @minor: minor version, like 2 in 1.2.3 - * @micro: micro version, like 3 in 1.2.3 + * CLUTTER_VERSION_1_0: * - * Evaluates to %TRUE if the version of the Clutter library is greater - * than @major, @minor and @micro + * A macro that evaluates to the 1.0 version of Clutter, in a format + * that can be used by the C pre-processor. + * + * Since: 1.10 */ -#define CLUTTER_CHECK_VERSION(major,minor,micro) \ - (CLUTTER_MAJOR_VERSION > (major) || \ - (CLUTTER_MAJOR_VERSION == (major) && CLUTTER_MINOR_VERSION > (minor)) || \ - (CLUTTER_MAJOR_VERSION == (major) && CLUTTER_MINOR_VERSION == (minor) && CLUTTER_MICRO_VERSION >= (micro))) +#define CLUTTER_VERSION_1_0 (G_ENCODE_VERSION (1, 0)) + +/** + * CLUTTER_VERSION_1_2: + * + * A macro that evaluates to the 1.2 version of Clutter, in a format + * that can be used by the C pre-processor. + * + * Since: 1.10 + */ +#define CLUTTER_VERSION_1_2 (G_ENCODE_VERSION (1, 2)) /** - * CLUTTER_FLAVOUR: + * CLUTTER_VERSION_1_4: * - * GL Windowing system used + * A macro that evaluates to the 1.4 version of Clutter, in a format + * that can be used by the C pre-processor. * - * Since: 0.4 + * Since: 1.10 */ -#define CLUTTER_FLAVOUR "win32" +#define CLUTTER_VERSION_1_4 (G_ENCODE_VERSION (1, 4)) /** - * CLUTTER_COGL + * CLUTTER_VERSION_1_6: * - * Cogl (internal GL abstraction utility library) backend. Can be "gl" or - * "gles" currently + * A macro that evaluates to the 1.6 version of Clutter, in a format + * that can be used by the C pre-processor. * - * Since: 0.4 + * Since: 1.10 */ -#define CLUTTER_COGL "gl" +#define CLUTTER_VERSION_1_6 (G_ENCODE_VERSION (1, 6)) /** - * CLUTTER_STAGE_TYPE: + * CLUTTER_VERSION_1_8: * - * The default GObject type for the Clutter stage. + * A macro that evaluates to the 1.8 version of Clutter, in a format + * that can be used by the C pre-processor. * - * Since: 0.8 + * Since: 1.10 */ -#define CLUTTER_STAGE_TYPE CLUTTER_TYPE_STAGE_WIN32 +#define CLUTTER_VERSION_1_8 (G_ENCODE_VERSION (1, 8)) /** - * CLUTTER_NO_FPU: + * CLUTTER_VERSION_1_10: + * + * A macro that evaluates to the 1.10 version of Clutter, in a format + * that can be used by the C pre-processor. * - * Set to 1 if Clutter was built without FPU (i.e fixed math), 0 otherwise + * Since: 1.10 + */ +#define CLUTTER_VERSION_1_10 (G_ENCODE_VERSION (1, 10)) + +/* evaluates to the current stable version; for development cycles, + * this means the next stable target + */ +#if (CLUTTER_MINOR_VERSION % 2) +# define CLUTTER_VERSION_CUR_STABLE (G_ENCODE_VERSION (CLUTTER_MAJOR_VERSION, CLUTTER_MINOR_VERSION + 1)) +#else +# define CLUTTER_VERSION_CUR_STABLE (G_ENCODE_VERSION (CLUTTER_MAJOR_VERSION, CLUTTER_MINOR_VERSION)) +#endif + +/* evaluates to the previous stable version */ +#if (CLUTTER_MINOR_VERSION % 2) +# define CLUTTER_VERSION_PREV_STABLE (G_ENCODE_VERSION (CLUTTER_MAJOR_VERSION, CLUTTER_MINOR_VERSION - 1)) +#else +# define CLUTTER_VERSION_PREV_STABLE (G_ENCODE_VERSION (CLUTTER_MAJOR_VERSION, CLUTTER_MINOR_VERSION - 2)) +#endif + +/** + * CLUTTER_CHECK_VERSION: + * @major: major version, like 1 in 1.2.3 + * @minor: minor version, like 2 in 1.2.3 + * @micro: micro version, like 3 in 1.2.3 * - * @Deprecated: 0.6: This macro is no longer defined (identical code is used - * regardless the presence of FPU). + * Evaluates to %TRUE if the version of the Clutter library is greater + * than @major, @minor and @micro */ -#define CLUTTER_NO_FPU CLUTTER_NO_FPU_MACRO_WAS_REMOVED +#define CLUTTER_CHECK_VERSION(major,minor,micro) \ + (CLUTTER_MAJOR_VERSION > (major) || \ + (CLUTTER_MAJOR_VERSION == (major) && CLUTTER_MINOR_VERSION > (minor)) || \ + (CLUTTER_MAJOR_VERSION == (major) && CLUTTER_MINOR_VERSION == (minor) && CLUTTER_MICRO_VERSION >= (micro))) /** * clutter_major_version: |