diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-04-08 22:50:53 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-04-08 22:50:53 +0300 |
commit | cbc8d6e537ce9f57436392ce1ce2d4b6384468ae (patch) | |
tree | 1bbc0f6329fcee48426aceff12d4204f635553af | |
parent | a718f1a334b798dac739f93d1f2832c99609cdd6 (diff) | |
download | meson-cbc8d6e537ce9f57436392ce1ce2d4b6384468ae.zip meson-cbc8d6e537ce9f57436392ce1ce2d4b6384468ae.tar.gz meson-cbc8d6e537ce9f57436392ce1ce2d4b6384468ae.tar.bz2 |
Fix link whole on VS backend.
-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] |