Commit 482f3400 authored by Emmanuele Bassi's avatar Emmanuele Bassi
Browse files

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.
parent 47bcf66a
......@@ -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
......
......@@ -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')
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment