aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/build.py2
-rw-r--r--mesonbuild/compilers/d.py7
2 files changed, 8 insertions, 1 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index c1cb8a8..96c64b8 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -1079,7 +1079,7 @@ You probably should put it in link_with instead.''')
'''
linker, _ = self.get_clink_dynamic_linker_and_stdlibs()
# Mixing many languages with MSVC is not supported yet so ignore stdlibs.
- if linker and linker.get_id() == 'msvc':
+ if linker and linker.get_id() in ['msvc', 'llvm', 'dmd']:
return True
return False
diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py
index eafdc2d..3366b6b 100644
--- a/mesonbuild/compilers/d.py
+++ b/mesonbuild/compilers/d.py
@@ -174,6 +174,9 @@ class DCompiler(Compiler):
def get_std_exe_link_args(self):
return []
+ def gen_import_library_args(self, implibname):
+ return ['-Wl,--out-implib=' + implibname]
+
def build_rpath_args(self, build_dir, from_dir, rpath_paths, build_rpath, install_rpath):
if is_windows():
return []
@@ -252,6 +255,10 @@ class DCompiler(Compiler):
if arg.startswith('-Wl,'):
linkargs = arg[arg.index(',') + 1:].split(',')
for la in linkargs:
+ if la.startswith('--out-implib='):
+ # Import library name for MSVC targets
+ dcargs.append('-L/IMPLIB:' + la[13:].strip())
+ continue
dcargs.append('-L' + la.strip())
continue
elif arg.startswith('-install-name'):