[gtk+] build: Use the appropriate linker flags
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] build: Use the appropriate linker flags
- Date: Wed, 3 May 2017 14:30:36 +0000 (UTC)
commit 482f34006e6c9709a2f5a219ab6bcc5ff70e1aa0
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 392895c..f8bf7d5 100644
--- a/gtk/meson.build
+++ b/gtk/meson.build
@@ -876,12 +876,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(
@@ -889,7 +890,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]