aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/rust/5 polyglot static
diff options
context:
space:
mode:
Diffstat (limited to 'meson/test cases/rust/5 polyglot static')
-rw-r--r--meson/test cases/rust/5 polyglot static/meson.build17
-rw-r--r--meson/test cases/rust/5 polyglot static/prog.c8
-rw-r--r--meson/test cases/rust/5 polyglot static/stuff.rs6
-rw-r--r--meson/test cases/rust/5 polyglot static/test.json7
4 files changed, 38 insertions, 0 deletions
diff --git a/meson/test cases/rust/5 polyglot static/meson.build b/meson/test cases/rust/5 polyglot static/meson.build
new file mode 100644
index 000000000..a6e9550b6
--- /dev/null
+++ b/meson/test cases/rust/5 polyglot static/meson.build
@@ -0,0 +1,17 @@
+project('static rust and c polyglot executable', 'c', 'rust')
+
+deps = [
+ meson.get_compiler('c').find_library('dl', required: false),
+ meson.get_compiler('c').find_library('m', required: false),
+ dependency('threads'),
+]
+
+extra_winlibs = meson.get_compiler('c').get_id() in ['msvc', 'clang-cl'] ? ['userenv.lib', 'ws2_32.lib'] : []
+
+l = static_library('stuff', 'stuff.rs', rust_crate_type : 'staticlib', install : true)
+e = executable('prog', 'prog.c',
+ dependencies: deps,
+ link_with : l,
+ link_args: extra_winlibs,
+ install : true)
+test('polyglottest', e)
diff --git a/meson/test cases/rust/5 polyglot static/prog.c b/meson/test cases/rust/5 polyglot static/prog.c
new file mode 100644
index 000000000..dbbd8800a
--- /dev/null
+++ b/meson/test cases/rust/5 polyglot static/prog.c
@@ -0,0 +1,8 @@
+#include <stdio.h>
+
+void f();
+
+int main(void) {
+ printf("Hello from C!\n");
+ f();
+}
diff --git a/meson/test cases/rust/5 polyglot static/stuff.rs b/meson/test cases/rust/5 polyglot static/stuff.rs
new file mode 100644
index 000000000..ecf623c64
--- /dev/null
+++ b/meson/test cases/rust/5 polyglot static/stuff.rs
@@ -0,0 +1,6 @@
+#![crate_name = "stuff"]
+
+#[no_mangle]
+pub extern fn f() {
+ println!("Hello from Rust!");
+}
diff --git a/meson/test cases/rust/5 polyglot static/test.json b/meson/test cases/rust/5 polyglot static/test.json
new file mode 100644
index 000000000..1d4eff4be
--- /dev/null
+++ b/meson/test cases/rust/5 polyglot static/test.json
@@ -0,0 +1,7 @@
+{
+ "installed": [
+ {"type": "exe", "file": "usr/bin/prog"},
+ {"type": "pdb", "file": "usr/bin/prog"},
+ {"type": "file", "file": "usr/lib/libstuff.a"}
+ ]
+}