[gnome-builder] build: check if link scripts are supported



commit 9f9891b583f5e7aceced99c959962afb51f9bf85
Author: Christian Hergert <chergert redhat com>
Date:   Sun Sep 3 14:46:30 2017 -0700

    build: check if link scripts are supported

 contrib/gstyle/meson.build |   14 +++++++++-----
 libide/meson.build         |    7 ++++++-
 meson.build                |    6 ++++++
 3 files changed, 21 insertions(+), 6 deletions(-)
---
diff --git a/contrib/gstyle/meson.build b/contrib/gstyle/meson.build
index 3c1c338..4652a37 100644
--- a/contrib/gstyle/meson.build
+++ b/contrib/gstyle/meson.build
@@ -75,14 +75,18 @@ libgstyle_deps = [
   libm_dep,
 ]
 
-libgstyle_link_args = '-Wl,--version-script=' + join_paths(meson.current_source_dir(), 'gstyle.map')
+libgstyle_link_args = []
+if ld_supports_version_script
+libgstyle_link_args += ['-Wl,--version-script=' + join_paths(meson.current_source_dir(), 'gstyle.map')]
+endif
+
 libgstyle = shared_library('gstyle-private', libgstyle_sources,
   dependencies: libgstyle_deps,
-  link_args: libgstyle_link_args,
+     link_args: libgstyle_link_args,
   link_depends: 'gstyle.map',
-  version: '0.0.0',
-  install: true,
-  install_dir: pkglibdir,
+       version: '0.0.0',
+       install: true,
+   install_dir: pkglibdir,
 )
 
 libgstyle_dep = declare_dependency(
diff --git a/libide/meson.build b/libide/meson.build
index c12c4f2..1b41a64 100644
--- a/libide/meson.build
+++ b/libide/meson.build
@@ -718,12 +718,17 @@ endif
 
 install_data('Ide.py', install_dir: pygobject_override_dir)
 
+libide_link_args = []
+if ld_supports_version_script
+libide_link_args += [ '-Wl,--version-script,' + join_paths(meson.current_source_dir(), 'ide.map') ]
+endif
+
 libide = shared_library('ide-' + libide_api_version,
   libide_resources + libide_icons_resources + libide_sources,
   dependencies: libide_deps,
   link_depends: 'ide.map',
         c_args: libide_args,
-     link_args: [ '-Wl,--version-script,' + join_paths(meson.current_source_dir(), 'ide.map') ],
+     link_args: libide_link_args,
        install: true,
    install_dir: pkglibdir,
  install_rpath: pkglibdir_abs,
diff --git a/meson.build b/meson.build
index ae75eae..69b63e1 100644
--- a/meson.build
+++ b/meson.build
@@ -159,6 +159,12 @@ configure_file(
   configuration: conf
 )
 
+# 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(), 'libide/ide.map'))
+message('Linker supports --version-script: @0@'.format(ld_supports_version_script))
+
 # Commonly used deps
 libgio_dep = dependency('gio-2.0', version: '>= 2.53.2')
 libgiounix_dep = dependency('gio-unix-2.0')


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