aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2018-10-08 19:39:41 +0100
committerJon Turney <jon.turney@dronecode.org.uk>2018-11-04 15:42:06 +0000
commitc789efb8c883a719b308e023b82fab4d808ab460 (patch)
treebf8204f9019d04783b66673a46f60aeede68583c
parent2993fc4e8a9dcd78d581277f7100bc68d603fd5d (diff)
downloadmeson-c789efb8c883a719b308e023b82fab4d808ab460.zip
meson-c789efb8c883a719b308e023b82fab4d808ab460.tar.gz
meson-c789efb8c883a719b308e023b82fab4d808ab460.tar.bz2
Use lld-link with clang-cl
Use lld-link dynamic linker with clang-cl Don't hardcode dynamic linker name in tests
-rw-r--r--mesonbuild/compilers/c.py7
-rwxr-xr-xrun_unittests.py5
2 files changed, 9 insertions, 3 deletions
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index ab62afd..35c71df 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -1345,7 +1345,12 @@ class VisualStudioCCompiler(CCompiler):
return []
def get_linker_exelist(self):
- return ['link'] # FIXME, should have same path as compiler.
+ # FIXME, should have same path as compiler.
+ # FIXME, should be controllable via cross-file.
+ if self.id == 'clang-cl':
+ return ['lld-link']
+ else:
+ return ['link']
def get_linker_always_args(self):
return ['/nologo']
diff --git a/run_unittests.py b/run_unittests.py
index 5fbc34c..b780883 100755
--- a/run_unittests.py
+++ b/run_unittests.py
@@ -2050,8 +2050,9 @@ int main(int argc, char **argv) {
if extra_args is None:
extra_args = []
if compiler.get_argument_syntax() == 'msvc':
- link_cmd = ['link', '/NOLOGO', '/DLL', '/DEBUG',
- '/IMPLIB:' + impfile, '/OUT:' + outfile, objectfile]
+ link_cmd = compiler.get_linker_exelist() + [
+ '/NOLOGO', '/DLL', '/DEBUG', '/IMPLIB:' + impfile,
+ '/OUT:' + outfile, objectfile]
else:
extra_args += ['-fPIC']
link_cmd = compiler.get_exelist() + ['-shared', '-o', outfile, objectfile]