summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2017-11-22 16:23:14 +0000
committerEmmanuele Bassi <ebassi@gnome.org>2017-11-22 16:23:14 +0000
commitcb9254dd8e52e0048ae314966cf861b5279d39ec (patch)
tree4921b7a7500c8fff6a4f0ae19eb17b51811eba30
parent2dcf8644e908a514be4545a8fd6885f1a0d89546 (diff)
downloadgobject-introspection-cb9254dd8e52e0048ae314966cf861b5279d39ec.tar.gz
meson: Update symbol visibility rules
Follow the existing best practices.
-rw-r--r--meson.build28
1 files changed, 14 insertions, 14 deletions
diff --git a/meson.build b/meson.build
index b5274395..64360f1e 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)