forked from AuroraMiddleware/gtk
gtk/meson.build: Fix linking on Visual Studio 2013
Visual Studio 2013's linker does not suport `/WHOLEARCHIVE:`, so just explicitly extract the objects from the static libraries that will form the final GTK DLL.
This commit is contained in:
parent
21057fb857
commit
943559da67
@ -1113,11 +1113,28 @@ libgtk_static = static_library('gtk',
|
|||||||
link_with: [libgtk_css, libgdk, libgsk ],
|
link_with: [libgtk_css, libgdk, libgsk ],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# `link_whole:` is actually only supported on Visual Studio 2015 Update 2
|
||||||
|
# or later via the linker flag `/WHOLEARCHIVE:<static_lib>`, so we need
|
||||||
|
# to work around it for Visual Studio 2013. Note that all needed static
|
||||||
|
# libs are required so that we grab the object files from each of them to
|
||||||
|
# link the final GTK DLL.
|
||||||
|
whole_archives = []
|
||||||
|
gtk4_objs = []
|
||||||
|
|
||||||
|
if cc.get_id() == 'msvc' and cc.version().split('.').get(0) < '19'
|
||||||
|
foreach target : [ libgtk_static, libgtk_css, libgdk, libgdk_win32, libgsk, libgsk_f16c ]
|
||||||
|
gtk4_objs += target.extract_all_objects(recursive: false)
|
||||||
|
endforeach
|
||||||
|
else
|
||||||
|
whole_archives = [libgtk_static, libgtk_css, libgdk, libgsk ]
|
||||||
|
endif
|
||||||
|
|
||||||
libgtk = shared_library('gtk-4',
|
libgtk = shared_library('gtk-4',
|
||||||
c_args: gtk_cargs + common_cflags,
|
c_args: gtk_cargs + common_cflags,
|
||||||
include_directories: [confinc, gdkinc, gskinc, gtkinc],
|
include_directories: [confinc, gdkinc, gskinc, gtkinc],
|
||||||
dependencies: gtk_deps + [libgtk_css_dep, libgdk_dep, libgsk_dep],
|
dependencies: gtk_deps + [libgtk_css_dep, libgdk_dep, libgsk_dep],
|
||||||
link_whole: [libgtk_static, libgtk_css, libgdk, libgsk ],
|
link_whole: whole_archives,
|
||||||
|
objects: gtk4_objs,
|
||||||
link_args: common_ldflags,
|
link_args: common_ldflags,
|
||||||
soversion: gtk_soversion,
|
soversion: gtk_soversion,
|
||||||
version: gtk_library_version,
|
version: gtk_library_version,
|
||||||
|
Loading…
Reference in New Issue
Block a user