forked from AuroraMiddleware/gtk
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.
This commit is contained in:
parent
47bcf66af8
commit
482f34006e
@ -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
|
||||
|
||||
|
17
meson.build
17
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')
|
||||
|
Loading…
Reference in New Issue
Block a user