[gtk+/wip/meson] build: Use the appropriate linker flags
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/meson] build: Use the appropriate linker flags
- Date: Tue, 18 Apr 2017 13:52:20 +0000 (UTC)
commit 4faee311078a5c20794cd0601c0fdbc86f3c354c
Author: Emmanuele Bassi <ebassi gnome org>
Date: Tue Apr 18 14:51:25 2017 +0100
build: Use the appropriate linker flags
We need to check if the linker flags we use are available, depending on
the platform, and we need to ensure that the shared library is
versioned appropriately.
gtk/meson.build | 5 +++--
meson.build | 17 +++++++++++++++++
2 files changed, 20 insertions(+), 2 deletions(-)
---
diff --git a/gtk/meson.build b/gtk/meson.build
index 15933d8..5a729be 100644
--- a/gtk/meson.build
+++ b/gtk/meson.build
@@ -874,12 +874,13 @@ endforeach
# Library
libgtk = shared_library('gtk-4',
+ soversion: gtk_soversion,
sources: [typefuncs, gtk_sources, gtkmarshal_h, gtkprivatetypebuiltins_h],
c_args: gtk_cargs + common_cflags,
include_directories: [confinc, gdkinc, gtkinc],
dependencies: gtk_deps + [libgdk_dep, libgsk_dep],
link_with: [libgdk, libgsk, included_input_modules],
- link_args: ['-Bsymbolic'],
+ link_args: common_ldflags,
install: true)
libgtk_dep = declare_dependency(
@@ -887,7 +888,7 @@ libgtk_dep = declare_dependency(
include_directories: [confinc, gtkinc],
dependencies: gtk_deps + [libgdk_dep, libgsk_dep],
link_with: libgtk,
- link_args: ['-Bsymbolic'])
+ link_args: common_ldflags)
# Installed tools
diff --git a/meson.build b/meson.build
index 34ba0fb..da5505e 100644
--- a/meson.build
+++ b/meson.build
@@ -68,6 +68,8 @@ gtk_binary_version = '4.0.0'
gtk_binary_age = 100 * gtk_minor_version + gtk_micro_version
+gtk_soversion = '0.@0@.@1@'.format(gtk_binary_age - gtk_interface_age, gtk_interface_age)
+
gtk_api_version = '4.0'
x11_enabled = get_option('enable-x11-backend')
@@ -272,6 +274,21 @@ if get_option('default_library') != 'static'
endif
endif
+common_ldflags = []
+
+if host_machine.system() == 'linux'
+ foreach ldflag: [ '-Wl,-Bsymbolic', '-Wl,-z,relro', '-Wl,-z,now', ]
+ if cc.has_argument(ldflag)
+ common_ldflags += [ ldflag ]
+ endif
+ endforeach
+endif
+
+# Maintain compatibility with autotools
+if host_machine.system() == 'darwin'
+ common_ldflags += [ '-compatibility_version=1', '-current_version=1.0', ]
+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]