diff options
| author | Thibault Saunier <tsaunier@igalia.com> | 2023-04-22 13:51:47 -0400 |
|---|---|---|
| committer | Xavier Claessens <xclaesse@gmail.com> | 2024-10-24 11:00:10 -0400 |
| commit | db82c2d777b05a1df076e39a470ab0cbce31a184 (patch) | |
| tree | b700152646a972c591f5ead884f2d093fa43e9ac /test cases/rust | |
| parent | 6736a540c77c3c60a6526b6f39415ad1090d0fe2 (diff) | |
| download | meson-db82c2d777b05a1df076e39a470ab0cbce31a184.tar.gz | |
cargo: Add support for `system-deps` dependencies
Diffstat (limited to 'test cases/rust')
5 files changed, 49 insertions, 0 deletions
diff --git a/test cases/rust/26 cargo system deps/main.rs b/test cases/rust/26 cargo system deps/main.rs new file mode 100644 index 000000000..25e3b2fb8 --- /dev/null +++ b/test cases/rust/26 cargo system deps/main.rs @@ -0,0 +1,5 @@ +extern crate sub; + +pub fn main() { + sub::func(); +} diff --git a/test cases/rust/26 cargo system deps/meson.build b/test cases/rust/26 cargo system deps/meson.build new file mode 100644 index 000000000..9545bb452 --- /dev/null +++ b/test cases/rust/26 cargo system deps/meson.build @@ -0,0 +1,11 @@ +project('cargo system-deps', 'rust') + +glib = dependency('glib-2.0', required: false) +if not glib.found() + error('MESON_SKIP_TEST: Need glib system dependency') +endif + +sub_dep = dependency('sub-1-rs') +exe = executable('main', 'main.rs', dependencies : sub_dep) +test('main', exe) + diff --git a/test cases/rust/26 cargo system deps/subprojects/sub-1-rs.wrap b/test cases/rust/26 cargo system deps/subprojects/sub-1-rs.wrap new file mode 100644 index 000000000..99686e90e --- /dev/null +++ b/test cases/rust/26 cargo system deps/subprojects/sub-1-rs.wrap @@ -0,0 +1,2 @@ +[wrap-file] +method = cargo diff --git a/test cases/rust/26 cargo system deps/subprojects/sub-1-rs/Cargo.toml b/test cases/rust/26 cargo system deps/subprojects/sub-1-rs/Cargo.toml new file mode 100644 index 000000000..88d5445f6 --- /dev/null +++ b/test cases/rust/26 cargo system deps/subprojects/sub-1-rs/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = 'sub' +version = '1' + +[build-dependencies] +system-deps = "6" + +[lib] +name = "sub" +path = "lib.rs" + +[package.metadata.system-deps] +glib = { name = "glib-2.0", version=" 2.0 , 2.1 , <3 ", feature="default" } +gobject = { name = "gobject-2.0", version=">=99", optional=true } +notfound = { feature="notfound" } +libffi = "1.0" diff --git a/test cases/rust/26 cargo system deps/subprojects/sub-1-rs/lib.rs b/test cases/rust/26 cargo system deps/subprojects/sub-1-rs/lib.rs new file mode 100644 index 000000000..6e39d2365 --- /dev/null +++ b/test cases/rust/26 cargo system deps/subprojects/sub-1-rs/lib.rs @@ -0,0 +1,15 @@ +extern "C" { + fn g_get_tmp_dir() -> *mut std::ffi::c_void; +} + +#[cfg(system_deps_have_glib)] +#[cfg(not(system_deps_have_gobject))] +pub fn func() { + unsafe { + g_get_tmp_dir(); + } +} + +pub fn func1() { + func() +} |
