summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/cargo/interpreter.py3
-rw-r--r--test cases/rust/22 cargo subproject/subprojects/extra-dep-1-rs/Cargo.toml3
-rw-r--r--test cases/rust/22 cargo subproject/subprojects/foo-0-rs/Cargo.toml7
-rw-r--r--test cases/rust/22 cargo subproject/subprojects/foo-0-rs/meson/meson.build3
4 files changed, 6 insertions, 10 deletions
diff --git a/mesonbuild/cargo/interpreter.py b/mesonbuild/cargo/interpreter.py
index 2b360fe79..bf5100870 100644
--- a/mesonbuild/cargo/interpreter.py
+++ b/mesonbuild/cargo/interpreter.py
@@ -485,7 +485,8 @@ class Interpreter:
for depname in pkg.required_deps:
dep = pkg.manifest.dependencies[depname]
dep_pkg = self._dep_package(pkg, dep)
- ast += self._create_dependency(dep_pkg, dep, build)
+ if dep_pkg.manifest.lib:
+ ast += self._create_dependency(dep_pkg, dep, build)
ast.append(build.assign(build.array([]), 'system_deps_args'))
for name, sys_dep in pkg.manifest.system_dependencies.items():
if sys_dep.enabled(pkg.features):
diff --git a/test cases/rust/22 cargo subproject/subprojects/extra-dep-1-rs/Cargo.toml b/test cases/rust/22 cargo subproject/subprojects/extra-dep-1-rs/Cargo.toml
deleted file mode 100644
index 4b6fa5777..000000000
--- a/test cases/rust/22 cargo subproject/subprojects/extra-dep-1-rs/Cargo.toml
+++ /dev/null
@@ -1,3 +0,0 @@
-[package]
-name = "extra-deps"
-version = "1.0"
diff --git a/test cases/rust/22 cargo subproject/subprojects/foo-0-rs/Cargo.toml b/test cases/rust/22 cargo subproject/subprojects/foo-0-rs/Cargo.toml
index d1fc74af8..9dc346030 100644
--- a/test cases/rust/22 cargo subproject/subprojects/foo-0-rs/Cargo.toml
+++ b/test cases/rust/22 cargo subproject/subprojects/foo-0-rs/Cargo.toml
@@ -12,11 +12,6 @@ path = "lib.rs"
optional = true
version = "1.0"
-# This dependency is optional but required for f3 which is on by default.
-[dependencies.extra-dep]
-optional = true
-version = "1.0"
-
[dependencies]
mybar = { version = "0.1", package = "bar", default-features = false }
@@ -34,5 +29,5 @@ version = "0.1"
default = ["f1"]
f1 = ["f2", "f3"]
f2 = ["f1"]
-f3 = ["mybar/f1", "dep:extra-dep", "notfound?/invalid"]
+f3 = ["mybar/f1", "notfound?/invalid"]
f4 = ["dep:notfound"]
diff --git a/test cases/rust/22 cargo subproject/subprojects/foo-0-rs/meson/meson.build b/test cases/rust/22 cargo subproject/subprojects/foo-0-rs/meson/meson.build
index 67c7b82f9..84bd066e9 100644
--- a/test cases/rust/22 cargo subproject/subprojects/foo-0-rs/meson/meson.build
+++ b/test cases/rust/22 cargo subproject/subprojects/foo-0-rs/meson/meson.build
@@ -1 +1,4 @@
extra_args += ['--cfg', 'feature="foo"']
+if 'f3' in features
+ extra_deps += dependency('extra-dep-1-rs', fallback: 'extra-dep-1-rs')
+endif