From 44ce04537d0853f4c1565a7c7a7519f4e290c4ba Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Mon, 27 Oct 2025 16:42:21 +0000 Subject: cargo: Add library API version into its name It is required to have unique library names for rust_dependency_map to work. In the case we have foo crate in multiple versions, we have to make sure their .rlib file have a different name. --- test cases/rust/31 cargo multiple versions/meson.build | 3 +++ .../rust/31 cargo multiple versions/subprojects/foo-1-rs.wrap | 2 ++ .../31 cargo multiple versions/subprojects/foo-1-rs/Cargo.toml | 6 ++++++ .../rust/31 cargo multiple versions/subprojects/foo-1-rs/lib.rs | 3 +++ .../rust/31 cargo multiple versions/subprojects/foo-2-rs.wrap | 2 ++ .../31 cargo multiple versions/subprojects/foo-2-rs/Cargo.toml | 6 ++++++ .../rust/31 cargo multiple versions/subprojects/foo-2-rs/lib.rs | 3 +++ test cases/rust/31 cargo multiple versions/subprojects/main.wrap | 2 ++ .../rust/31 cargo multiple versions/subprojects/main/Cargo.toml | 9 +++++++++ .../rust/31 cargo multiple versions/subprojects/main/lib.rs | 6 ++++++ 10 files changed, 42 insertions(+) create mode 100644 test cases/rust/31 cargo multiple versions/meson.build create mode 100644 test cases/rust/31 cargo multiple versions/subprojects/foo-1-rs.wrap create mode 100644 test cases/rust/31 cargo multiple versions/subprojects/foo-1-rs/Cargo.toml create mode 100644 test cases/rust/31 cargo multiple versions/subprojects/foo-1-rs/lib.rs create mode 100644 test cases/rust/31 cargo multiple versions/subprojects/foo-2-rs.wrap create mode 100644 test cases/rust/31 cargo multiple versions/subprojects/foo-2-rs/Cargo.toml create mode 100644 test cases/rust/31 cargo multiple versions/subprojects/foo-2-rs/lib.rs create mode 100644 test cases/rust/31 cargo multiple versions/subprojects/main.wrap create mode 100644 test cases/rust/31 cargo multiple versions/subprojects/main/Cargo.toml create mode 100644 test cases/rust/31 cargo multiple versions/subprojects/main/lib.rs (limited to 'test cases/rust') diff --git a/test cases/rust/31 cargo multiple versions/meson.build b/test cases/rust/31 cargo multiple versions/meson.build new file mode 100644 index 000000000..dd11508ae --- /dev/null +++ b/test cases/rust/31 cargo multiple versions/meson.build @@ -0,0 +1,3 @@ +project('cargo multiple crate versions') + +subproject('main') diff --git a/test cases/rust/31 cargo multiple versions/subprojects/foo-1-rs.wrap b/test cases/rust/31 cargo multiple versions/subprojects/foo-1-rs.wrap new file mode 100644 index 000000000..5133599d2 --- /dev/null +++ b/test cases/rust/31 cargo multiple versions/subprojects/foo-1-rs.wrap @@ -0,0 +1,2 @@ +[wrap-file] +method=cargo diff --git a/test cases/rust/31 cargo multiple versions/subprojects/foo-1-rs/Cargo.toml b/test cases/rust/31 cargo multiple versions/subprojects/foo-1-rs/Cargo.toml new file mode 100644 index 000000000..41de66978 --- /dev/null +++ b/test cases/rust/31 cargo multiple versions/subprojects/foo-1-rs/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "foo" +version = "1.0" + +[lib] +path = "lib.rs" diff --git a/test cases/rust/31 cargo multiple versions/subprojects/foo-1-rs/lib.rs b/test cases/rust/31 cargo multiple versions/subprojects/foo-1-rs/lib.rs new file mode 100644 index 000000000..f3662d5cc --- /dev/null +++ b/test cases/rust/31 cargo multiple versions/subprojects/foo-1-rs/lib.rs @@ -0,0 +1,3 @@ +pub fn foo1() -> i32 { + 1 +} diff --git a/test cases/rust/31 cargo multiple versions/subprojects/foo-2-rs.wrap b/test cases/rust/31 cargo multiple versions/subprojects/foo-2-rs.wrap new file mode 100644 index 000000000..5133599d2 --- /dev/null +++ b/test cases/rust/31 cargo multiple versions/subprojects/foo-2-rs.wrap @@ -0,0 +1,2 @@ +[wrap-file] +method=cargo diff --git a/test cases/rust/31 cargo multiple versions/subprojects/foo-2-rs/Cargo.toml b/test cases/rust/31 cargo multiple versions/subprojects/foo-2-rs/Cargo.toml new file mode 100644 index 000000000..ce55217e4 --- /dev/null +++ b/test cases/rust/31 cargo multiple versions/subprojects/foo-2-rs/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "foo" +version = "2.0" + +[lib] +path = "lib.rs" diff --git a/test cases/rust/31 cargo multiple versions/subprojects/foo-2-rs/lib.rs b/test cases/rust/31 cargo multiple versions/subprojects/foo-2-rs/lib.rs new file mode 100644 index 000000000..afbf386e0 --- /dev/null +++ b/test cases/rust/31 cargo multiple versions/subprojects/foo-2-rs/lib.rs @@ -0,0 +1,3 @@ +pub fn foo2() -> i32 { + 1 +} diff --git a/test cases/rust/31 cargo multiple versions/subprojects/main.wrap b/test cases/rust/31 cargo multiple versions/subprojects/main.wrap new file mode 100644 index 000000000..5133599d2 --- /dev/null +++ b/test cases/rust/31 cargo multiple versions/subprojects/main.wrap @@ -0,0 +1,2 @@ +[wrap-file] +method=cargo diff --git a/test cases/rust/31 cargo multiple versions/subprojects/main/Cargo.toml b/test cases/rust/31 cargo multiple versions/subprojects/main/Cargo.toml new file mode 100644 index 000000000..0401a5958 --- /dev/null +++ b/test cases/rust/31 cargo multiple versions/subprojects/main/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "main" + +[dependencies] +foo1 = { package="foo", version="1" } +foo2 = { package="foo", version="2" } + +[lib] +path = "lib.rs" diff --git a/test cases/rust/31 cargo multiple versions/subprojects/main/lib.rs b/test cases/rust/31 cargo multiple versions/subprojects/main/lib.rs new file mode 100644 index 000000000..5029a27e5 --- /dev/null +++ b/test cases/rust/31 cargo multiple versions/subprojects/main/lib.rs @@ -0,0 +1,6 @@ +extern crate foo1; +extern crate foo2; + +pub fn func() -> i32 { + foo1::foo1() + foo2::foo2() +} -- cgit v1.2.3