[tepl/master.msvc: 2/7] meson: Fix linking tepl library on Visual Studio



commit bf08459832871a02756ddb7dbb8ea73f8318aa73
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Tue Apr 28 16:16:11 2020 +0800

    meson: Fix linking tepl library on Visual Studio
    
    Some of the linker flags cannot be used for Visual Studio, and we can't
    just link a DLL entirely from a static library on Visual Studio, as the
    linker will optimize things out as it does not see the symbols being
    used.

 tepl/meson.build | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)
---
diff --git a/tepl/meson.build b/tepl/meson.build
index 6ad5947..894a6d8 100644
--- a/tepl/meson.build
+++ b/tepl/meson.build
@@ -120,13 +120,31 @@ TEPL_STATIC_DEP = declare_dependency(
   dependencies: TEPL_DEPS
 )
 
-symbol_map = meson.current_source_dir() / 'symbol.map'
+symbol_map = []
+tepl_link_args = []
+tepl_link_depends = []
+tepl_deps = []
+tepl_objects = []
+tepl_link_whole_lib = []
+
+if c_compiler.get_argument_syntax() == 'msvc'
+  tepl_deps = TEPL_DEPS
+  tepl_objects = tepl_static_lib.extract_all_objects()
+else
+  symbol_map = meson.current_source_dir() / 'symbol.map'
+  tepl_link_args = '-Wl,--version-script,' + symbol_map
+  tepl_link_depends = symbol_map
+  tepl_link_whole_lib = tepl_static_lib
+endif
+
 
 tepl_lib = library(
   'tepl-@0@'.format(TEPL_API_VERSION),
-  link_whole: tepl_static_lib,
-  link_args: '-Wl,--version-script,' + symbol_map,
-  link_depends: symbol_map,
+  dependencies: tepl_deps,
+  link_whole: tepl_link_whole_lib,
+  link_args: tepl_link_args,
+  link_depends: tepl_link_depends,
+  objects: tepl_objects,
   version: TEPL_LT_VERSION,
   install: true
 )


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]