[gobject-introspection/wip/ebassi/meson: 2/4] meson: Update symbol visibility rules



commit cb9254dd8e52e0048ae314966cf861b5279d39ec
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Wed Nov 22 16:23:14 2017 +0000

    meson: Update symbol visibility rules
    
    Follow the existing best practices.

 meson.build |   28 ++++++++++++++--------------
 1 files changed, 14 insertions(+), 14 deletions(-)
---
diff --git a/meson.build b/meson.build
index b527439..64360f1 100644
--- a/meson.build
+++ b/meson.build
@@ -29,11 +29,6 @@ foreach type : ['char', 'short', 'int', 'long']
   config.set('SIZEOF_@0@'.format(type.to_upper()), size)
 endforeach
 
-configure_file(
-  configuration: config,
-  output: 'config.h'
-)
-
 add_project_arguments([
     '-I' + meson.build_root(),
     '-DHAVE_CONFIG_H',
@@ -41,17 +36,22 @@ add_project_arguments([
 )
 
 gi_hidden_visibility_cflags = []
-if cc.has_argument('-fvisibility=hidden')
-  gi_hidden_visibility_cflags = [
-    '-D_GI_EXTERN=__attribute__((visibility("default"))) extern',
-    '-fvisibility=hidden',
-  ]
-elif cc.get_id() == 'msvc'
-  gi_hidden_visibility_cflags = [
-        '-D_GI_EXTERN=__declspec (dllexport) extern',
-  ]
+if host_machine.system() == 'windows'
+  config.set('DLL_EXPORT', true)
+  config.set('_GI_EXTERN', '__declspec(dllexport) extern')
+  if cc.get_id() != 'msvc'
+    gi_hidden_visibility_cflags += '-fvisibility=hidden'
+  endif
+else
+  config.set('_GI_EXTERN', '__attribute__((visibility("default"))) extern')
+  gi_hidden_visibility_cflags += '-fvisibility=hidden'
 endif
 
+configure_file(
+  configuration: config,
+  output: 'config.h'
+)
+
 gobject_dep = dependency('gobject-2.0', version: '>= 2.52.0')
 gio_dep = dependency('gio-2.0')
 giounix_dep = dependency('gio-unix-2.0', required: false)


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