summaryrefslogtreecommitdiff
path: root/test cases/rust
diff options
context:
space:
mode:
authorThibault Saunier <tsaunier@igalia.com>2023-04-22 13:51:47 -0400
committerXavier Claessens <xclaesse@gmail.com>2024-10-24 11:00:10 -0400
commitdb82c2d777b05a1df076e39a470ab0cbce31a184 (patch)
treeb700152646a972c591f5ead884f2d093fa43e9ac /test cases/rust
parent6736a540c77c3c60a6526b6f39415ad1090d0fe2 (diff)
downloadmeson-db82c2d777b05a1df076e39a470ab0cbce31a184.tar.gz
cargo: Add support for `system-deps` dependencies
Diffstat (limited to 'test cases/rust')
-rw-r--r--test cases/rust/26 cargo system deps/main.rs5
-rw-r--r--test cases/rust/26 cargo system deps/meson.build11
-rw-r--r--test cases/rust/26 cargo system deps/subprojects/sub-1-rs.wrap2
-rw-r--r--test cases/rust/26 cargo system deps/subprojects/sub-1-rs/Cargo.toml16
-rw-r--r--test cases/rust/26 cargo system deps/subprojects/sub-1-rs/lib.rs15
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()
+}