diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-06-14 22:59:14 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-06-14 22:59:14 +0300 |
commit | 81b478e03108d341f1021bfe7db18e21a758a9fc (patch) | |
tree | a568f76ac0e003c10718a5b9849217ad4065bc19 /backends.py | |
parent | 34f1042a7e0c52f9038851beb6497af013e8ef25 (diff) | |
download | meson-81b478e03108d341f1021bfe7db18e21a758a9fc.zip meson-81b478e03108d341f1021bfe7db18e21a758a9fc.tar.gz meson-81b478e03108d341f1021bfe7db18e21a758a9fc.tar.bz2 |
Shared library linking works with MSVC.
Diffstat (limited to 'backends.py')
-rwxr-xr-x | backends.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/backends.py b/backends.py index ec2ebd1..df7a2cb 100755 --- a/backends.py +++ b/backends.py @@ -199,14 +199,17 @@ class Backend(): return commands - def build_target_link_arguments(self, deps): + def build_target_link_arguments(self, compiler, deps): args = [] for d in deps: if not isinstance(d, interpreter.StaticLibrary) and\ not isinstance(d, interpreter.SharedLibrary): raise RuntimeError('Tried to link with a non-library target "%s".' % d.get_basename()) fname = self.get_target_filename(d) - fname = './' + fname # Hack to make ldd find the library. + if compiler.id == 'msvc': + if fname.endswith('dll'): + fname = fname[:-3] + 'lib' + fname = os.path.join('.', fname) # Hack to make ldd find the library. args.append(fname) return args @@ -671,7 +674,7 @@ class NinjaBackend(Backend): for dep in target.get_external_deps(): commands += dep.get_link_flags() dependencies = target.get_dependencies() - commands += self.build_target_link_arguments(dependencies) + commands += self.build_target_link_arguments(linker, dependencies) if self.environment.coredata.coverage: commands += linker.get_coverage_link_flags() dep_targets = [self.get_dependency_filename(t) for t in dependencies] |