diff options
Diffstat (limited to 'test cases/rust')
8 files changed, 32 insertions, 2 deletions
diff --git a/test cases/rust/22 cargo subproject/subprojects/bar-0.1-rs/Cargo.toml b/test cases/rust/22 cargo subproject/subprojects/bar-0.1-rs/Cargo.toml index d60a5d8f1..c0f7ffd8d 100644 --- a/test cases/rust/22 cargo subproject/subprojects/bar-0.1-rs/Cargo.toml +++ b/test cases/rust/22 cargo subproject/subprojects/bar-0.1-rs/Cargo.toml @@ -8,6 +8,10 @@ version = "0.1" optional = true version = "1.0" +[dependencies.common] +version = "0.0.1" +features = ["f2"] + [features] default = ["f2"] f1 = [] diff --git a/test cases/rust/22 cargo subproject/subprojects/common-0-rs.wrap b/test cases/rust/22 cargo subproject/subprojects/common-0-rs.wrap new file mode 100644 index 000000000..99686e90e --- /dev/null +++ b/test cases/rust/22 cargo subproject/subprojects/common-0-rs.wrap @@ -0,0 +1,2 @@ +[wrap-file] +method = cargo diff --git a/test cases/rust/22 cargo subproject/subprojects/common-0-rs/Cargo.toml b/test cases/rust/22 cargo subproject/subprojects/common-0-rs/Cargo.toml new file mode 100644 index 000000000..b22e1accf --- /dev/null +++ b/test cases/rust/22 cargo subproject/subprojects/common-0-rs/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "common" +version = "0.0.1" +edition = "2021" + +[lib] +crate-type = ["rlib"] +path = "lib.rs" + +[features] +f1 = [] +f2 = [] diff --git a/test cases/rust/22 cargo subproject/subprojects/common-0-rs/lib.rs b/test cases/rust/22 cargo subproject/subprojects/common-0-rs/lib.rs new file mode 100644 index 000000000..a7adf8f62 --- /dev/null +++ b/test cases/rust/22 cargo subproject/subprojects/common-0-rs/lib.rs @@ -0,0 +1,4 @@ +#[cfg(all(feature = "f1", feature = "f2"))] +pub fn common_func() -> i32 { + 0 +} 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 new file mode 100644 index 000000000..4b6fa5777 --- /dev/null +++ b/test cases/rust/22 cargo subproject/subprojects/extra-dep-1-rs/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "extra-deps" +version = "1.0" diff --git a/test cases/rust/22 cargo subproject/subprojects/extra-dep-1-rs/meson.build b/test cases/rust/22 cargo subproject/subprojects/extra-dep-1-rs/meson.build index 40d109b2d..b5ca43951 100644 --- a/test cases/rust/22 cargo subproject/subprojects/extra-dep-1-rs/meson.build +++ b/test cases/rust/22 cargo subproject/subprojects/extra-dep-1-rs/meson.build @@ -1,7 +1,5 @@ project('extra dep', 'c', version: '1.0') -assert(get_option('feature-default') == true) - l = static_library('extra-dep', 'lib.c') d = declare_dependency(link_with: l, variables: { 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 0f0225d06..858efa4dd 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 @@ -20,6 +20,10 @@ version = "1.0" [dependencies] mybar = { version = "0.1", package = "bar", default-features = false } +[dependencies.common] +version = "0.0.1" +features = ["f1"] + [features] default = ["f1"] f1 = ["f2", "f3"] diff --git a/test cases/rust/22 cargo subproject/subprojects/foo-0-rs/lib.rs b/test cases/rust/22 cargo subproject/subprojects/foo-0-rs/lib.rs index 1c8cbc9d3..a1a976a80 100644 --- a/test cases/rust/22 cargo subproject/subprojects/foo-0-rs/lib.rs +++ b/test cases/rust/22 cargo subproject/subprojects/foo-0-rs/lib.rs @@ -1,3 +1,5 @@ +extern crate common; + extern "C" { fn extra_func() -> i32; } @@ -5,6 +7,7 @@ extern "C" { #[cfg(feature = "foo")] #[no_mangle] pub extern "C" fn rust_func() -> i32 { + assert!(common::common_func() == 0); let v: i32; unsafe { v = extra_func(); |
