diff options
| author | ruki <[email protected]> | 2017-02-27 11:02:45 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-02-27 11:02:45 +0800 |
| commit | 6ef7b3dd56c093a4a7de91819915694ca3303ddc (patch) | |
| tree | 329df26b71edd94db5cb3112a3f33234c0db4480 | |
| parent | 44943aea9e4b82f09a35ebd999b2a4f866254df5 (diff) | |
add shared library tests for dlang and rust
| -rw-r--r-- | tests/shared_library_dlang/src/interfaces.d | 9 | ||||
| -rw-r--r-- | tests/shared_library_dlang/src/main.d | 8 | ||||
| -rwxr-xr-x | tests/shared_library_dlang/xmake.lua | 53 | ||||
| -rw-r--r-- | tests/shared_library_rust/src/interfaces.rs | 5 | ||||
| -rw-r--r-- | tests/shared_library_rust/src/main.rs | 7 | ||||
| -rwxr-xr-x | tests/shared_library_rust/xmake.lua | 48 |
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)") + + |
