summaryrefslogtreecommitdiff
path: root/tests/apis
diff options
context:
space:
mode:
authorruki <[email protected]>2020-05-26 00:34:08 +0800
committerruki <[email protected]>2020-05-25 21:24:53 +0800
commit97b53dfcb67c898f40fae06b6b939e4dac32a3a0 (patch)
treec91bfc82592938ae27e2a72ec38737b33cd3988a /tests/apis
parent05b37be8865ff1af2051766a835e7576a6780e55 (diff)
add set_toolchains for target
Diffstat (limited to 'tests/apis')
-rw-r--r--tests/apis/set_toolchains/src/interface.cpp6
-rw-r--r--tests/apis/set_toolchains/src/interface.h16
-rw-r--r--tests/apis/set_toolchains/src/test.cpp10
-rw-r--r--tests/apis/set_toolchains/xmake.lua35
4 files changed, 67 insertions, 0 deletions
diff --git a/tests/apis/set_toolchains/src/interface.cpp b/tests/apis/set_toolchains/src/interface.cpp
new file mode 100644
index 000000000..598d07560
--- /dev/null
+++ b/tests/apis/set_toolchains/src/interface.cpp
@@ -0,0 +1,6 @@
+#include "interface.h"
+
+int add(int a, int b)
+{
+ return a + b;
+}
diff --git a/tests/apis/set_toolchains/src/interface.h b/tests/apis/set_toolchains/src/interface.h
new file mode 100644
index 000000000..4a41e9597
--- /dev/null
+++ b/tests/apis/set_toolchains/src/interface.h
@@ -0,0 +1,16 @@
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*! calculate add(a, b)
+ *
+ * @param a the first argument
+ * @param b the second argument
+ *
+ * @return the result
+ */
+int add(int a, int b);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/tests/apis/set_toolchains/src/test.cpp b/tests/apis/set_toolchains/src/test.cpp
new file mode 100644
index 000000000..72e03272b
--- /dev/null
+++ b/tests/apis/set_toolchains/src/test.cpp
@@ -0,0 +1,10 @@
+#include "interface.h"
+#include <iostream>
+
+using namespace std;
+
+int main(int argc, char** argv)
+{
+ cout << "add(1, 2) = " << add(1, 2) << endl;
+ return 0;
+}
diff --git a/tests/apis/set_toolchains/xmake.lua b/tests/apis/set_toolchains/xmake.lua
new file mode 100644
index 000000000..4057322d8
--- /dev/null
+++ b/tests/apis/set_toolchains/xmake.lua
@@ -0,0 +1,35 @@
+-- define toolchain
+toolchain("myclang")
+
+ -- mark as standalone toolchain
+ set_kind("standalone")
+
+ -- set toolsets
+ set_toolsets("cc", "clang")
+ set_toolsets("cxx", "clang", "clang++")
+ set_toolsets("ld", "clang++", "clang")
+ set_toolsets("sh", "clang++", "clang")
+ set_toolsets("ar", "ar")
+ set_toolsets("ex", "ar")
+ set_toolsets("strip", "strip")
+ set_toolsets("mm", "clang")
+ set_toolsets("mxx", "clang", "clang++")
+ set_toolsets("as", "clang")
+
+ add_defines("MYCLANG")
+
+toolchain_end()
+
+add_rules("mode.debug", "mode.release")
+
+target("test")
+ set_kind("static")
+ add_files("src/interface.cpp")
+
+target("demo")
+ set_kind("binary")
+ add_deps("test")
+ add_files("src/test.cpp")
+ set_toolchains("myclang")
+
+