f.write(
textwrap.dedent(
f"""
- #if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_2_{minor}
+ #if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_4_{minor}
#define {ns}_DEPRECATED_IN_{current_major_version}_{minor} {ns}_DEPRECATED
#define {ns}_DEPRECATED_IN_{current_major_version}_{minor}_FOR(f) {ns}_DEPRECATED_FOR (f)
#define {ns}_DEPRECATED_MACRO_IN_{current_major_version}_{minor} GDK_DEPRECATED_MACRO
#include <gdk/gdkconfig.h>
#include <gdk/gdkversionmacros.h>
-/* Visibility macros; must be included after the two headers above */
-#include <gdk/gdk-visibility.h>
-
G_BEGIN_DECLS
/**
+++ /dev/null
-/* gdkversionmacros.h - version boundaries checks
- * Copyright (C) 2012 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.▸ See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#if !defined (__GDK_H_INSIDE__) && !defined (__GTK_CSS_H_INSIDE__) && !defined (GTK_COMPILATION) && !defined (GTK_CSS_COMPILATION)
-#error "Only <gdk/gdk.h> can be included directly."
-#endif
-
-#ifndef __GDK_VERSION_MACROS_H__
-#define __GDK_VERSION_MACROS_H__
-
-#include <glib.h>
-
-#ifndef _GDK_EXTERN
-#define _GDK_EXTERN extern
-#endif
-
-/* These macros are used to mark deprecated symbols in GLib headers,
- * and thus have to be exposed in installed headers. But please
- * do *not* use them in other projects. Instead define your own wrappers
- * around it.
- */
-
-#if !defined(GDK_DISABLE_DEPRECATION_WARNINGS) && \
- (G_GNUC_CHECK_VERSION(4, 6) || \
- __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
-#define _GDK_GNUC_DO_PRAGMA(x) _Pragma(G_STRINGIFY (x))
-#define GDK_DEPRECATED_MACRO _GDK_GNUC_DO_PRAGMA(GCC warning "Deprecated pre-processor symbol")
-#define GDK_DEPRECATED_MACRO_FOR(f) \
- _GDK_GNUC_DO_PRAGMA(GCC warning G_STRINGIFY (Deprecated pre-processor symbol: replace with #f))
-#define GDK_UNAVAILABLE_MACRO(maj,min) \
- _GDK_GNUC_DO_PRAGMA(GCC warning G_STRINGIFY (Not available before maj.min))
-#else
-#define GDK_DEPRECATED_MACRO
-#define GDK_DEPRECATED_MACRO_FOR(f)
-#define GDK_UNAVAILABLE_MACRO(maj,min)
-#endif
-
-#if !defined(GDK_DISABLE_DEPRECATION_WARNINGS) && \
- (G_GNUC_CHECK_VERSION(6, 1) || \
- (defined (__clang_major__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 0))))
-#define GDK_DEPRECATED_ENUMERATOR G_DEPRECATED
-#define GDK_DEPRECATED_ENUMERATOR_FOR(f) G_DEPRECATED_FOR(f)
-#define GDK_UNAVAILABLE_ENUMERATOR(maj,min) G_UNAVAILABLE(maj,min)
-#else
-#define GDK_DEPRECATED_ENUMERATOR
-#define GDK_DEPRECATED_ENUMERATOR_FOR(f)
-#define GDK_UNAVAILABLE_ENUMERATOR(maj,min)
-#endif
-
-#if !defined(GDK_DISABLE_DEPRECATION_WARNINGS) && \
- (G_GNUC_CHECK_VERSION(3, 1) || \
- (defined (__clang_major__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 0))))
-#define GDK_DEPRECATED_TYPE G_DEPRECATED
-#define GDK_DEPRECATED_TYPE_FOR(f) G_DEPRECATED_FOR(f)
-#define GDK_UNAVAILABLE_TYPE(maj,min) G_UNAVAILABLE(maj,min)
-#else
-#define GDK_DEPRECATED_TYPE
-#define GDK_DEPRECATED_TYPE_FOR(f)
-#define GDK_UNAVAILABLE_TYPE(maj,min)
-#endif
-
-@GDK_VERSIONS@
-
-/* evaluates to the current stable version; for development cycles,
- * this means the next stable target, with a hard backstop to the
- * beginning of the stable series
- */
-#if GDK_MAJOR_VERSION >= 4 && (GDK_MINOR_VERSION % 2)
-# define GDK_VERSION_CUR_STABLE (G_ENCODE_VERSION (GDK_MAJOR_VERSION, GDK_MINOR_VERSION + 1))
-#elif G_ENCODE_VERSION (GDK_MAJOR_VERSION, GDK_MINOR_VERSION) > GDK_VERSION_4_0
-# define GDK_VERSION_CUR_STABLE (G_ENCODE_VERSION (GDK_MAJOR_VERSION, GDK_MINOR_VERSION))
-#else
-# define GDK_VERSION_CUR_STABLE GDK_VERSION_4_0
-#endif
-
-/* evaluates to the previous stable version, with a hard backstop
- * to the beginning of the stable series
- */
-#if GDK_MAJOR_VERSION >= 4 && (GDK_MINOR_VERSION % 2)
-# define GDK_VERSION_PREV_STABLE (G_ENCODE_VERSION (GDK_MAJOR_VERSION, GDK_MINOR_VERSION - 1))
-#elif GDK_MAJOR_VERSION >= 4 && GDK_MINOR_VERSION > 2
-# define GDK_VERSION_PREV_STABLE (G_ENCODE_VERSION (GDK_MAJOR_VERSION, GDK_MINOR_VERSION - 2))
-#else
-# define GDK_VERSION_PREV_STABLE GDK_VERSION_4_0
-#endif
-
-/**
- * GDK_VERSION_MIN_REQUIRED:
- *
- * A macro that should be defined by the user prior to including
- * the `gdk.h` header.
- *
- * The definition should be one of the predefined GDK version
- * macros: %GDK_VERSION_4_0, %GDK_VERSION_4_2,...
- *
- * This macro defines the lower bound for the GDK API to use.
- *
- * If a function has been deprecated in a newer version of GDK,
- * it is possible to use this symbol to avoid the compiler warnings
- * without disabling warning for every deprecated function.
- */
-#ifndef GDK_VERSION_MIN_REQUIRED
-# define GDK_VERSION_MIN_REQUIRED (GDK_VERSION_CUR_STABLE)
-#endif
-
-/**
- * GDK_VERSION_MAX_ALLOWED:
- *
- * A macro that should be defined by the user prior to including
- * the `gdk.h` header.
- *
- * The definition should be one of the predefined GDK version
- * macros: %GDK_VERSION_4_0, %GDK_VERSION_4_2,...
- *
- * This macro defines the upper bound for the GDK API to use.
- *
- * If a function has been introduced in a newer version of GDK,
- * it is possible to use this symbol to get compiler warnings when
- * trying to use that function.
- */
-#ifndef GDK_VERSION_MAX_ALLOWED
-# if GDK_VERSION_MIN_REQUIRED > GDK_VERSION_PREV_STABLE
-# define GDK_VERSION_MAX_ALLOWED GDK_VERSION_MIN_REQUIRED
-# else
-# define GDK_VERSION_MAX_ALLOWED GDK_VERSION_CUR_STABLE
-# endif
-#endif
-
-/* sanity checks */
-#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_MIN_REQUIRED
-# error "GDK_VERSION_MAX_ALLOWED must be >= GDK_VERSION_MIN_REQUIRED"
-#endif
-#if GDK_VERSION_MIN_REQUIRED < GDK_VERSION_4_0
-# error "GDK_VERSION_MIN_REQUIRED must be >= GDK_VERSION_4_0"
-#endif
-
-#endif /* __GDK_VERSION_MACROS_H__ */
'gdktoplevelsize.h',
'gdktoplevel.h',
'gdkdragsurface.h',
+ 'gdkversionmacros.h'
])
install_headers(gdk_public_headers, subdir: 'gtk-4.0/gdk/')
sources: gdk_public_headers,
decorator: 'GDK_AVAILABLE_IN_ALL',
body_prefix: '#include "config.h"',
- header_prefix: '#include "gdkversionmacros.h"\n#include "gdk-visibility.h"',
+ header_prefix: '#include "version/gdkversionmacros.h"\n#include "version/gdk-visibility.h"',
install_dir: gtk_includedir / 'gtk-4.0/gdk',
install_header: true,
)
gdkversion_cdata.set('GTK_MINOR_VERSION', gtk_minor_version)
gdkversion_cdata.set('GTK_MICRO_VERSION', gtk_micro_version)
-gdkversionmacros_h = custom_target(
- input: 'gdkversionmacros.h.in',
- output: 'gdkversionmacros.h',
- command: [gen_visibility_macros, meson.project_version(), 'versions-macros', '@INPUT@', '@OUTPUT@'],
- install: true,
- install_dir: gtk_includedir / 'gtk-4.0/gdk',
- # FIXME: Not needed with Meson >= 0.64.0
- install_tag: 'devel',
-)
-
-gdk_visibility_h = custom_target(
- output: 'gdk-visibility.h',
- command: [gen_visibility_macros, meson.project_version(), 'visibility-macros', 'GDK', '@OUTPUT@'],
- install: true,
- install_dir: gtk_includedir / 'gtk-4.0/gdk',
- # FIXME: Not needed with Meson >= 0.64.0
- install_tag: 'devel',
-)
-
gdkinc = include_directories('.')
gdkx11_inc = include_directories('x11')
gdkwayland_inc = include_directories('wayland')
--- /dev/null
+/* gdkversionmacros.h - version boundaries checks
+ * Copyright (C) 2012 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.▸ See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined (__GDK_H_INSIDE__) && !defined (__GTK_CSS_H_INSIDE__) && !defined (GTK_COMPILATION) && !defined (GTK_CSS_COMPILATION)
+#error "Only <gdk/gdk.h> can be included directly."
+#endif
+
+#ifndef __GDK_VERSION_MACROS_H__
+#define __GDK_VERSION_MACROS_H__
+
+#include <glib.h>
+
+#ifndef _GDK_EXTERN
+#define _GDK_EXTERN extern
+#endif
+
+/* These macros are used to mark deprecated symbols in GLib headers,
+ * and thus have to be exposed in installed headers. But please
+ * do *not* use them in other projects. Instead define your own wrappers
+ * around it.
+ */
+
+#if !defined(GDK_DISABLE_DEPRECATION_WARNINGS) && \
+ (G_GNUC_CHECK_VERSION(4, 6) || \
+ __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
+#define _GDK_GNUC_DO_PRAGMA(x) _Pragma(G_STRINGIFY (x))
+#define GDK_DEPRECATED_MACRO _GDK_GNUC_DO_PRAGMA(GCC warning "Deprecated pre-processor symbol")
+#define GDK_DEPRECATED_MACRO_FOR(f) \
+ _GDK_GNUC_DO_PRAGMA(GCC warning G_STRINGIFY (Deprecated pre-processor symbol: replace with #f))
+#define GDK_UNAVAILABLE_MACRO(maj,min) \
+ _GDK_GNUC_DO_PRAGMA(GCC warning G_STRINGIFY (Not available before maj.min))
+#else
+#define GDK_DEPRECATED_MACRO
+#define GDK_DEPRECATED_MACRO_FOR(f)
+#define GDK_UNAVAILABLE_MACRO(maj,min)
+#endif
+
+#if !defined(GDK_DISABLE_DEPRECATION_WARNINGS) && \
+ (G_GNUC_CHECK_VERSION(6, 1) || \
+ (defined (__clang_major__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 0))))
+#define GDK_DEPRECATED_ENUMERATOR G_DEPRECATED
+#define GDK_DEPRECATED_ENUMERATOR_FOR(f) G_DEPRECATED_FOR(f)
+#define GDK_UNAVAILABLE_ENUMERATOR(maj,min) G_UNAVAILABLE(maj,min)
+#else
+#define GDK_DEPRECATED_ENUMERATOR
+#define GDK_DEPRECATED_ENUMERATOR_FOR(f)
+#define GDK_UNAVAILABLE_ENUMERATOR(maj,min)
+#endif
+
+#if !defined(GDK_DISABLE_DEPRECATION_WARNINGS) && \
+ (G_GNUC_CHECK_VERSION(3, 1) || \
+ (defined (__clang_major__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 0))))
+#define GDK_DEPRECATED_TYPE G_DEPRECATED
+#define GDK_DEPRECATED_TYPE_FOR(f) G_DEPRECATED_FOR(f)
+#define GDK_UNAVAILABLE_TYPE(maj,min) G_UNAVAILABLE(maj,min)
+#else
+#define GDK_DEPRECATED_TYPE
+#define GDK_DEPRECATED_TYPE_FOR(f)
+#define GDK_UNAVAILABLE_TYPE(maj,min)
+#endif
+
+@GDK_VERSIONS@
+
+/* evaluates to the current stable version; for development cycles,
+ * this means the next stable target, with a hard backstop to the
+ * beginning of the stable series
+ */
+#if GDK_MAJOR_VERSION >= 4 && (GDK_MINOR_VERSION % 2)
+# define GDK_VERSION_CUR_STABLE (G_ENCODE_VERSION (GDK_MAJOR_VERSION, GDK_MINOR_VERSION + 1))
+#elif G_ENCODE_VERSION (GDK_MAJOR_VERSION, GDK_MINOR_VERSION) > GDK_VERSION_4_0
+# define GDK_VERSION_CUR_STABLE (G_ENCODE_VERSION (GDK_MAJOR_VERSION, GDK_MINOR_VERSION))
+#else
+# define GDK_VERSION_CUR_STABLE GDK_VERSION_4_0
+#endif
+
+/* evaluates to the previous stable version, with a hard backstop
+ * to the beginning of the stable series
+ */
+#if GDK_MAJOR_VERSION >= 4 && (GDK_MINOR_VERSION % 2)
+# define GDK_VERSION_PREV_STABLE (G_ENCODE_VERSION (GDK_MAJOR_VERSION, GDK_MINOR_VERSION - 1))
+#elif GDK_MAJOR_VERSION >= 4 && GDK_MINOR_VERSION > 2
+# define GDK_VERSION_PREV_STABLE (G_ENCODE_VERSION (GDK_MAJOR_VERSION, GDK_MINOR_VERSION - 2))
+#else
+# define GDK_VERSION_PREV_STABLE GDK_VERSION_4_0
+#endif
+
+/**
+ * GDK_VERSION_MIN_REQUIRED:
+ *
+ * A macro that should be defined by the user prior to including
+ * the `gdk.h` header.
+ *
+ * The definition should be one of the predefined GDK version
+ * macros: %GDK_VERSION_4_0, %GDK_VERSION_4_2,...
+ *
+ * This macro defines the lower bound for the GDK API to use.
+ *
+ * If a function has been deprecated in a newer version of GDK,
+ * it is possible to use this symbol to avoid the compiler warnings
+ * without disabling warning for every deprecated function.
+ */
+#ifndef GDK_VERSION_MIN_REQUIRED
+# define GDK_VERSION_MIN_REQUIRED (GDK_VERSION_CUR_STABLE)
+#endif
+
+/**
+ * GDK_VERSION_MAX_ALLOWED:
+ *
+ * A macro that should be defined by the user prior to including
+ * the `gdk.h` header.
+ *
+ * The definition should be one of the predefined GDK version
+ * macros: %GDK_VERSION_4_0, %GDK_VERSION_4_2,...
+ *
+ * This macro defines the upper bound for the GDK API to use.
+ *
+ * If a function has been introduced in a newer version of GDK,
+ * it is possible to use this symbol to get compiler warnings when
+ * trying to use that function.
+ */
+#ifndef GDK_VERSION_MAX_ALLOWED
+# if GDK_VERSION_MIN_REQUIRED > GDK_VERSION_PREV_STABLE
+# define GDK_VERSION_MAX_ALLOWED GDK_VERSION_MIN_REQUIRED
+# else
+# define GDK_VERSION_MAX_ALLOWED GDK_VERSION_CUR_STABLE
+# endif
+#endif
+
+/* sanity checks */
+#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_MIN_REQUIRED
+# error "GDK_VERSION_MAX_ALLOWED must be >= GDK_VERSION_MIN_REQUIRED"
+#endif
+#if GDK_VERSION_MIN_REQUIRED < GDK_VERSION_4_0
+# error "GDK_VERSION_MIN_REQUIRED must be >= GDK_VERSION_4_0"
+#endif
+
+#endif /* __GDK_VERSION_MACROS_H__ */
--- /dev/null
+
+
+gdkversionmacros_h = custom_target(
+ input: 'gdkversionmacros.h.in',
+ output: 'gdkversionmacros.h',
+ command: [gen_visibility_macros, meson.project_version(), 'versions-macros', '@INPUT@', '@OUTPUT@'],
+ install: true,
+ install_dir: gtk_includedir / 'gtk-4.0/gdk',
+ # FIXME: Not needed with Meson >= 0.64.0
+ install_tag: 'devel',
+)
+
+gdk_visibility_h = custom_target(
+ output: 'gdk-visibility.h',
+ command: [gen_visibility_macros, meson.project_version(), 'visibility-macros', 'GDK', '@OUTPUT@'],
+ install: true,
+ install_dir: gtk_includedir / 'gtk-4.0/gdk',
+ # FIXME: Not needed with Meson >= 0.64.0
+ install_tag: 'devel',
+)
+
glib_dep,
gobject_dep,
platform_gio_dep,
- gdkversionmacros_h,
- gdk_visibility_h,
]
gtk_css_enums = gnome.mkenums('gtkcssenumtypes',
gtk_css_public_sources,
gtk_css_private_sources,
gtk_css_enums,
+ gdkversionmacros_h,
+ gdk_visibility_h,
],
dependencies: gtk_css_deps,
include_directories: [ confinc, ],
if get_option('default_library') != 'static'
if os_win32
cdata.set('DLL_EXPORT', true)
- cdata.set('_GDK_EXTERN', '__declspec(dllexport) extern')
if cc.get_id() != 'msvc'
common_cflags += ['-fvisibility=hidden']
endif
else
- cdata.set('_GDK_EXTERN', '__attribute__((visibility("default"))) extern')
common_cflags += ['-fvisibility=hidden']
endif
endif
gen_visibility_macros = find_program('build-aux/meson/gen-visibility-macros.py')
+subdir('gdk/version')
subdir('gtk/css')
subdir('gdk')
subdir('gsk')