aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/compilers/mixins/visualstudio.py6
-rwxr-xr-xrun_unittests.py3
2 files changed, 6 insertions, 3 deletions
diff --git a/mesonbuild/compilers/mixins/visualstudio.py b/mesonbuild/compilers/mixins/visualstudio.py
index 9fddbb4..ebf51ff 100644
--- a/mesonbuild/compilers/mixins/visualstudio.py
+++ b/mesonbuild/compilers/mixins/visualstudio.py
@@ -217,7 +217,9 @@ class VisualStudioLikeCompiler(metaclass=abc.ABCMeta):
# -pthread is only valid for GCC
if i in ('-mms-bitfields', '-pthread'):
continue
- if i.startswith('-L'):
+ if i.startswith('-LIBPATH:'):
+ i = '/LIBPATH:' + i[9:]
+ elif i.startswith('-L'):
i = '/LIBPATH:' + i[2:]
# Translate GNU-style -lfoo library name to the import library
elif i.startswith('-l'):
@@ -250,7 +252,7 @@ class VisualStudioLikeCompiler(metaclass=abc.ABCMeta):
def native_args_to_unix(cls, args: typing.List[str]) -> typing.List[str]:
result = []
for arg in args:
- if arg.startswith('/LIBPATH:'):
+ if arg.startswith(('/LIBPATH:', '-LIBPATH:')):
result.append('-L' + arg[9:])
elif arg.endswith(('.a', '.lib')) and not os.path.isabs(arg):
result.append('-l' + arg)
diff --git a/run_unittests.py b/run_unittests.py
index 80b23b7..abb4134 100755
--- a/run_unittests.py
+++ b/run_unittests.py
@@ -3162,7 +3162,7 @@ recommended as it is not supported on some platforms''')
env = get_fake_env(testdirlib, self.builddir, self.prefix)
if env.detect_c_compiler(MachineChoice.HOST).get_id() in {'msvc', 'clang-cl', 'intel-cl'}:
# msvc-like compiler, also test it with msvc-specific flags
- libdir_flags += ['/LIBPATH:']
+ libdir_flags += ['/LIBPATH:', '-LIBPATH:']
else:
# static libraries are not linkable with -l with msvc because meson installs them
# as .a files which unix_args_to_native will not know as it expects libraries to use
@@ -3176,6 +3176,7 @@ recommended as it is not supported on some platforms''')
for libdir_flag in libdir_flags:
# build library
+ self.new_builddir()
self.init(testdirlib, extra_args=extra_args)
self.build()
self.install()