summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2017-02-27 11:02:45 +0800
committerruki <[email protected]>2017-02-27 11:02:45 +0800
commit6ef7b3dd56c093a4a7de91819915694ca3303ddc (patch)
tree329df26b71edd94db5cb3112a3f33234c0db4480
parent44943aea9e4b82f09a35ebd999b2a4f866254df5 (diff)
add shared library tests for dlang and rust
-rw-r--r--tests/shared_library_dlang/src/interfaces.d9
-rw-r--r--tests/shared_library_dlang/src/main.d8
-rwxr-xr-xtests/shared_library_dlang/xmake.lua53
-rw-r--r--tests/shared_library_rust/src/interfaces.rs5
-rw-r--r--tests/shared_library_rust/src/main.rs7
-rwxr-xr-xtests/shared_library_rust/xmake.lua48
6 files changed, 130 insertions, 0 deletions
diff --git a/tests/shared_library_dlang/src/interfaces.d b/tests/shared_library_dlang/src/interfaces.d
new file mode 100644
index 000000000..3386c9124
--- /dev/null
+++ b/tests/shared_library_dlang/src/interfaces.d
@@ -0,0 +1,9 @@
+extern(C) int add(int a, int b)
+{
+ return a + b;
+}
+
+extern(C) int sub(int a, int b)
+{
+ return a - b;
+}
diff --git a/tests/shared_library_dlang/src/main.d b/tests/shared_library_dlang/src/main.d
new file mode 100644
index 000000000..3137de217
--- /dev/null
+++ b/tests/shared_library_dlang/src/main.d
@@ -0,0 +1,8 @@
+import std.stdio;
+import interfaces;
+
+void main()
+{
+ printf("add: %d\n", interfaces.add(1, 1));
+ printf("sub: %d\n", interfaces.sub(2, 1));
+}
diff --git a/tests/shared_library_dlang/xmake.lua b/tests/shared_library_dlang/xmake.lua
new file mode 100755
index 000000000..20c7fc521
--- /dev/null
+++ b/tests/shared_library_dlang/xmake.lua
@@ -0,0 +1,53 @@
+-- the debug mode
+if is_mode("debug") then
+
+ -- enable the debug symbols
+ set_symbols("debug")
+
+ -- disable optimization
+ set_optimize("none")
+end
+
+-- the release mode
+if is_mode("release") then
+
+ -- set the symbols visibility: hidden
+ set_symbols("hidden")
+
+ -- enable fastest optimization
+ set_optimize("fastest")
+
+ -- strip all symbols
+ set_strip("all")
+end
+
+-- add target
+target("interfaces")
+
+ -- set kind
+ set_kind("shared")
+
+ -- add files
+ add_files("src/interfaces.d")
+
+-- add target
+target("test")
+
+ -- set kind
+ set_kind("binary")
+
+ -- add deps
+ add_deps("interfaces")
+
+ -- add files
+ add_files("src/main.d")
+
+ -- add links
+ add_links("interfaces")
+
+ -- add link directory
+ add_linkdirs("$(buildir)")
+
+ -- add include directory
+ add_includedirs("$(projectdir)/src")
+
diff --git a/tests/shared_library_rust/src/interfaces.rs b/tests/shared_library_rust/src/interfaces.rs
new file mode 100644
index 000000000..277008ba4
--- /dev/null
+++ b/tests/shared_library_rust/src/interfaces.rs
@@ -0,0 +1,5 @@
+pub fn add(a: i32, b: i32) -> i32
+{
+ return a + b;
+}
+
diff --git a/tests/shared_library_rust/src/main.rs b/tests/shared_library_rust/src/main.rs
new file mode 100644
index 000000000..0cd4449d1
--- /dev/null
+++ b/tests/shared_library_rust/src/main.rs
@@ -0,0 +1,7 @@
+extern crate interfaces;
+
+fn main()
+{
+ println!("hello xmake!");
+ println!("add: {}", interfaces::add(1, 1));
+}
diff --git a/tests/shared_library_rust/xmake.lua b/tests/shared_library_rust/xmake.lua
new file mode 100755
index 000000000..3abd23640
--- /dev/null
+++ b/tests/shared_library_rust/xmake.lua
@@ -0,0 +1,48 @@
+-- the debug mode
+if is_mode("debug") then
+
+ -- enable the debug symbols
+ set_symbols("debug")
+
+ -- disable optimization
+ set_optimize("none")
+end
+
+-- the release mode
+if is_mode("release") then
+
+ -- set the symbols visibility: hidden
+ set_symbols("hidden")
+
+ -- enable fastest optimization
+ set_optimize("fastest")
+
+ -- strip all symbols
+ set_strip("all")
+end
+
+-- add target
+target("interfaces")
+
+ -- set kind
+ set_kind("shared")
+
+ -- add files
+ add_files("src/interfaces.rs")
+
+-- add target
+target("test")
+
+ -- set kind
+ set_kind("binary")
+
+ -- add deps
+ add_deps("interfaces")
+
+ -- add files
+ add_files("src/main.rs")
+
+ -- add link directory
+ add_linkdirs("$(buildir)")
+
+