Fix import libraries and static library naming

pull/3981/head
GoaLitiuM 6 years ago
parent 7ab938d9af
commit 4a1d64cb6c
  1. 2
      mesonbuild/build.py
  2. 7
      mesonbuild/compilers/d.py

@ -1079,7 +1079,7 @@ You probably should put it in link_with instead.''')
''' '''
linker, _ = self.get_clink_dynamic_linker_and_stdlibs() linker, _ = self.get_clink_dynamic_linker_and_stdlibs()
# Mixing many languages with MSVC is not supported yet so ignore 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 True
return False return False

@ -174,6 +174,9 @@ class DCompiler(Compiler):
def get_std_exe_link_args(self): def get_std_exe_link_args(self):
return [] 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): def build_rpath_args(self, build_dir, from_dir, rpath_paths, build_rpath, install_rpath):
if is_windows(): if is_windows():
return [] return []
@ -252,6 +255,10 @@ class DCompiler(Compiler):
if arg.startswith('-Wl,'): if arg.startswith('-Wl,'):
linkargs = arg[arg.index(',') + 1:].split(',') linkargs = arg[arg.index(',') + 1:].split(',')
for la in linkargs: 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()) dcargs.append('-L' + la.strip())
continue continue
elif arg.startswith('-install-name'): elif arg.startswith('-install-name'):

Loading…
Cancel
Save