[template-glib] build: check if linker supports version scripts



commit d98e6781541663658318585e421e5d23997db04a
Author: Christian Hergert <chergert redhat com>
Date:   Sun Sep 3 14:49:12 2017 -0700

    build: check if linker supports version scripts

 meson.build     |    6 ++++++
 src/meson.build |    7 ++++++-
 2 files changed, 12 insertions(+), 1 deletions(-)
---
diff --git a/meson.build b/meson.build
index 23c169b..4c934e1 100644
--- a/meson.build
+++ b/meson.build
@@ -82,6 +82,12 @@ add_project_arguments(
   language: 'c'
 )
 
+# Check if we can use version scripts for ABI exports
+ld_supports_version_script = cc.links('''
+  int main (void) { return 0; }
+''', args: '-Wl,--version-script,' + join_paths(meson.source_root(), 'src/template-glib.map'))
+message('Linker supports --version-script: @0@'.format(ld_supports_version_script))
+
 # Setup various paths that subdirectory meson.build files need
 package_subdir = get_option('package_subdir')
 libdir = join_paths(get_option('libdir'), package_subdir)
diff --git a/src/meson.build b/src/meson.build
index 3712539..2cf452c 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -140,12 +140,17 @@ if libdir == '' or includedir == ''
   error('You must set pkglibdir and pkgincludedir when using as a subproject')
 endif
 
+libtemplate_glib_link_args = []
+if ld_supports_version_script
+libtemplate_glib_link_args += [ '-Wl,--version-script,' + join_paths(meson.current_source_dir(), 
'template-glib.map') ]
+endif
+
 libtemplate_glib = library(
   'template_glib-' + apiversion,
   libtemplate_glib_sources,
 
   link_depends: 'template-glib.map',
-     link_args: [ '-Wl,--version-script,' + join_paths(meson.current_source_dir(), 'template-glib.map') ],
+     link_args: libtemplate_glib_link_args,
   dependencies: libtemplate_glib_deps,
      soversion: soversion,
        version: libversion,


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