[gtk+] build: Add missing symbol visibility flags



commit c97ef81a10a67fbc52bcbf496e64d30d1ae3d196
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Tue Apr 18 14:28:46 2017 +0100

    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.

 meson.build |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/meson.build b/meson.build
index 54ce3c7..36b8001 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')


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]