diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2017-04-18 14:28:46 +0100 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2017-04-28 23:12:52 +0100 |
commit | 806eb3807898f43be9f2cedd76f5b16d546115a4 (patch) | |
tree | 0b22390e7e8f1f46f5916bae82f970155ec51c74 | |
parent | 8bef62cd7f805ac889742bfff87147e7e04db62f (diff) | |
download | gtk+-806eb3807898f43be9f2cedd76f5b16d546115a4.tar.gz |
build: Add missing symbol visibility flags
GTK symbols are not visible by default, and only the ones annotated with
_GDK_EXTERN (and wrapper macros) are exported. We need to define
_GDK_EXTERN during the configuration, depending on the platform and
compiler we use.
-rw-r--r-- | meson.build | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/meson.build b/meson.build index 54ce3c7afb..36b8001fa7 100644 --- a/meson.build +++ b/meson.build @@ -255,6 +255,22 @@ foreach cflag: test_cflags endif endforeach +# Symbol visibility +if get_option('default_library') != 'static' + if host_machine.system() == 'windows' + cdata.set('DLL_EXPORT', true) + if cc.get_id() == 'msvc' + cdata.set('_GDK_EXTERN', '__declspec(dllexport) extern') + else + cdata.set('_GDK_EXTERN', '__attribute__((visibility("default"))) __declspec(dllexport) extern') + common_cflags += ['-fvisibility=hidden'] + endif + else + cdata.set('_GDK_EXTERN', '__attribute__((visibility("default"))) extern') + common_cflags += ['-fvisibility=hidden'] + endif +endif + confinc = include_directories('.') gdkinc = include_directories('gdk') gtkinc = include_directories('gtk') |