summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/backend/ninjabackend.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index d55600971..cd860b81c 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -1904,7 +1904,10 @@ class NinjaBackend(backends.Backend):
# TODO: we likely need to use verbatim to handle name_prefix and name_suffix
for d in target.link_targets:
linkdirs.add(d.subdir)
- if d.uses_rust():
+ # staticlib and cdylib provide a plain C ABI, i.e. contain no Rust
+ # metadata. As such they should be treated like any other external
+ # link target
+ if d.uses_rust() and d.rust_crate_type not in ['staticlib', 'cdylib']:
# specify `extern CRATE_NAME=OUTPUT_FILE` for each Rust
# dependency, so that collisions with libraries in rustc's
# sysroot don't cause ambiguity