diff options
-rw-r--r-- | mesonbuild/backend/vs2010backend.py | 4 | ||||
-rw-r--r-- | mesonbuild/compilers.py | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py index 139360c..b50b91c 100644 --- a/mesonbuild/backend/vs2010backend.py +++ b/mesonbuild/backend/vs2010backend.py @@ -225,6 +225,8 @@ class Vs2010Backend(backends.Backend): elif isinstance(target, build.BuildTarget): for ldep in target.link_targets: all_deps[ldep.get_id()] = ldep + for ldep in target.link_whole_targets: + all_deps[ldep.get_id()] = ldep for obj_id, objdep in self.get_obj_target_deps(target.objects): all_deps[obj_id] = objdep for gendep in target.get_generated_sources(): @@ -918,6 +920,8 @@ class Vs2010Backend(backends.Backend): for t in target.get_dependencies(): lobj = self.build.targets[t.get_id()] linkname = os.path.join(down, self.get_target_filename_for_linking(lobj)) + if t in target.link_whole_targets: + linkname = compiler.get_link_whole_for(linkname)[0] additional_links.append(linkname) for lib in self.get_custom_target_provided_libraries(target): additional_links.append(self.relpath(lib, self.get_target_dir(target))) diff --git a/mesonbuild/compilers.py b/mesonbuild/compilers.py index 94ee2f1..54e959c 100644 --- a/mesonbuild/compilers.py +++ b/mesonbuild/compilers.py @@ -2281,6 +2281,8 @@ class VisualStudioCCompiler(CCompiler): def get_link_whole_for(self, args): # Only since VS2015 + if not isinstance(args, list): + args = [args] return ['/WHOLEARCHIVE:' + x for x in args] |