aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2021-08-18 04:31:45 +0530
committerNirbheek Chauhan <nirbheek@centricular.com>2021-08-18 05:43:57 +0530
commitb9a8205871025db8a9c402ea3cdaa40f235ab25e (patch)
treed13916d51bf2fcf160502af0bac5ff5ac50fd435
parenta5e26d051f8ddd7863584011017220f829e7a869 (diff)
downloadmeson-nirbheek/un-disable-rust-clang-cl.zip
meson-nirbheek/un-disable-rust-clang-cl.tar.gz
meson-nirbheek/un-disable-rust-clang-cl.tar.bz2
rust targets: lld-link is the same as link for static libsnirbheek/un-disable-rust-clang-cl
Without this, rustc will fail to find libfoo.a; same as with MSVC.
-rw-r--r--mesonbuild/backend/ninjabackend.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 68c63b2..dba67fa 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -1694,9 +1694,9 @@ class NinjaBackend(backends.Backend):
args += ['--extern', '{}={}'.format(d.name, os.path.join(d.subdir, d.filename))]
elif d.typename == 'static library':
# Rustc doesn't follow Meson's convention that static libraries
- # are called .a, and implementation libraries are .lib, so we
- # have to manually handle that.
- if rustc.linker.id == 'link':
+ # are called .a, and import libraries are .lib, so we have to
+ # manually handle that.
+ if rustc.linker.id in ('link', 'lld-link'):
args += ['-C', f'link-arg={self.get_target_filename_for_linking(d)}']
else:
args += ['-l', f'static={d.name}']