From dc329f0f04d917da5bf295e013f393caed4a85fc Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Fri, 2 Jun 2023 12:11:45 -0400 Subject: interpreter: Add support for cargo subproject --- test cases/cmake/26 dependency fallback/meson.build | 2 +- test cases/rust/21 cargo subproject/main.c | 5 +++++ test cases/rust/21 cargo subproject/meson.build | 7 +++++++ test cases/rust/21 cargo subproject/subprojects/bar-rs.wrap | 2 ++ .../rust/21 cargo subproject/subprojects/bar-rs/Cargo.toml | 3 +++ .../rust/21 cargo subproject/subprojects/bar-rs/src/lib.rs | 1 + test cases/rust/21 cargo subproject/subprojects/foo-rs.wrap | 2 ++ .../rust/21 cargo subproject/subprojects/foo-rs/Cargo.toml | 10 ++++++++++ .../rust/21 cargo subproject/subprojects/foo-rs/src/lib.rs | 4 ++++ 9 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 test cases/rust/21 cargo subproject/main.c create mode 100644 test cases/rust/21 cargo subproject/meson.build create mode 100644 test cases/rust/21 cargo subproject/subprojects/bar-rs.wrap create mode 100644 test cases/rust/21 cargo subproject/subprojects/bar-rs/Cargo.toml create mode 100644 test cases/rust/21 cargo subproject/subprojects/bar-rs/src/lib.rs create mode 100644 test cases/rust/21 cargo subproject/subprojects/foo-rs.wrap create mode 100644 test cases/rust/21 cargo subproject/subprojects/foo-rs/Cargo.toml create mode 100644 test cases/rust/21 cargo subproject/subprojects/foo-rs/src/lib.rs (limited to 'test cases') diff --git a/test cases/cmake/26 dependency fallback/meson.build b/test cases/cmake/26 dependency fallback/meson.build index b36aaac58..871d70c9f 100644 --- a/test cases/cmake/26 dependency fallback/meson.build +++ b/test cases/cmake/26 dependency fallback/meson.build @@ -9,7 +9,7 @@ test('test1', exe1) # to meson but wrap force cmake. subproject('force_cmake') -testcase expect_error('Wrap method \'notfound\' is not supported, must be one of: meson, cmake') +testcase expect_error('Wrap method \'notfound\' is not supported, must be one of: meson, cmake, cargo') subproject('broken_method') endtestcase diff --git a/test cases/rust/21 cargo subproject/main.c b/test cases/rust/21 cargo subproject/main.c new file mode 100644 index 000000000..5daec64e3 --- /dev/null +++ b/test cases/rust/21 cargo subproject/main.c @@ -0,0 +1,5 @@ +int rust_func(void); + +int main(int argc, char *argv[]) { + return rust_func(); +} diff --git a/test cases/rust/21 cargo subproject/meson.build b/test cases/rust/21 cargo subproject/meson.build new file mode 100644 index 000000000..420e6e3b9 --- /dev/null +++ b/test cases/rust/21 cargo subproject/meson.build @@ -0,0 +1,7 @@ +project('cargo subproject', 'c') + +foo_dep = dependency('foo-rs') +exe = executable('app', 'main.c', + dependencies: foo_dep, +) +test('cargo-test', exe) diff --git a/test cases/rust/21 cargo subproject/subprojects/bar-rs.wrap b/test cases/rust/21 cargo subproject/subprojects/bar-rs.wrap new file mode 100644 index 000000000..99686e90e --- /dev/null +++ b/test cases/rust/21 cargo subproject/subprojects/bar-rs.wrap @@ -0,0 +1,2 @@ +[wrap-file] +method = cargo diff --git a/test cases/rust/21 cargo subproject/subprojects/bar-rs/Cargo.toml b/test cases/rust/21 cargo subproject/subprojects/bar-rs/Cargo.toml new file mode 100644 index 000000000..232b4d7d4 --- /dev/null +++ b/test cases/rust/21 cargo subproject/subprojects/bar-rs/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "bar" +version = "0.1" diff --git a/test cases/rust/21 cargo subproject/subprojects/bar-rs/src/lib.rs b/test cases/rust/21 cargo subproject/subprojects/bar-rs/src/lib.rs new file mode 100644 index 000000000..5b64db8cc --- /dev/null +++ b/test cases/rust/21 cargo subproject/subprojects/bar-rs/src/lib.rs @@ -0,0 +1 @@ +pub const VALUE: i32 = 0; diff --git a/test cases/rust/21 cargo subproject/subprojects/foo-rs.wrap b/test cases/rust/21 cargo subproject/subprojects/foo-rs.wrap new file mode 100644 index 000000000..99686e90e --- /dev/null +++ b/test cases/rust/21 cargo subproject/subprojects/foo-rs.wrap @@ -0,0 +1,2 @@ +[wrap-file] +method = cargo diff --git a/test cases/rust/21 cargo subproject/subprojects/foo-rs/Cargo.toml b/test cases/rust/21 cargo subproject/subprojects/foo-rs/Cargo.toml new file mode 100644 index 000000000..214c3279c --- /dev/null +++ b/test cases/rust/21 cargo subproject/subprojects/foo-rs/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "foo" +version = "0.0.1" +edition = "2021" + +[lib] +crate-type = ["cdylib"] + +[dependencies] +mybar = { version = "0.1", package = "bar" } diff --git a/test cases/rust/21 cargo subproject/subprojects/foo-rs/src/lib.rs b/test cases/rust/21 cargo subproject/subprojects/foo-rs/src/lib.rs new file mode 100644 index 000000000..732d7d20b --- /dev/null +++ b/test cases/rust/21 cargo subproject/subprojects/foo-rs/src/lib.rs @@ -0,0 +1,4 @@ +#[no_mangle] +pub extern "C" fn rust_func() -> i32 { + mybar::VALUE +} -- cgit v1.2.3