summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2025-01-25 00:47:15 +0800
committerruki <[email protected]>2025-01-24 22:49:31 +0800
commit181d5cd4f96ee5975427d7f92efe71625ada3ac1 (patch)
tree7981a94f054423abf6b36498fc2847b34260b618
parent669d2db9d3468aa0dc2edea9771ace9bb99f0d19 (diff)
add custom toolchain support
-rw-r--r--tests/apis/custom_toolchain/src/foo.cpp5
-rw-r--r--tests/apis/custom_toolchain/src/foo.h (renamed from tests/apis/set_toolchains/src/interface.h)0
-rw-r--r--tests/apis/custom_toolchain/src/test.cpp5
-rw-r--r--tests/apis/custom_toolchain/toolchains/my-c6000/xmake.lua27
-rw-r--r--tests/apis/custom_toolchain/xmake.lua15
-rw-r--r--tests/apis/set_toolchains/src/foo.cpp5
-rw-r--r--tests/apis/set_toolchains/src/foo.h16
-rw-r--r--tests/apis/set_toolchains/src/interface.cpp6
-rw-r--r--tests/apis/set_toolchains/src/test.cpp7
-rw-r--r--tests/apis/set_toolchains/xmake.lua6
10 files changed, 77 insertions, 15 deletions
diff --git a/tests/apis/custom_toolchain/src/foo.cpp b/tests/apis/custom_toolchain/src/foo.cpp
new file mode 100644
index 000000000..1a1fb3425
--- /dev/null
+++ b/tests/apis/custom_toolchain/src/foo.cpp
@@ -0,0 +1,5 @@
+#include "foo.h"
+
+int add(int a, int b) {
+ return a + b;
+}
diff --git a/tests/apis/set_toolchains/src/interface.h b/tests/apis/custom_toolchain/src/foo.h
index 4a41e9597..4a41e9597 100644
--- a/tests/apis/set_toolchains/src/interface.h
+++ b/tests/apis/custom_toolchain/src/foo.h
diff --git a/tests/apis/custom_toolchain/src/test.cpp b/tests/apis/custom_toolchain/src/test.cpp
new file mode 100644
index 000000000..7cdb7d93f
--- /dev/null
+++ b/tests/apis/custom_toolchain/src/test.cpp
@@ -0,0 +1,5 @@
+#include "foo.h"
+
+int main(int argc, char** argv) {
+ return add(1, 2);
+}
diff --git a/tests/apis/custom_toolchain/toolchains/my-c6000/xmake.lua b/tests/apis/custom_toolchain/toolchains/my-c6000/xmake.lua
new file mode 100644
index 000000000..8298b33c9
--- /dev/null
+++ b/tests/apis/custom_toolchain/toolchains/my-c6000/xmake.lua
@@ -0,0 +1,27 @@
+toolchain("my-c6000")
+ set_kind("standalone")
+ set_homepage("https://www.ti.com")
+ set_description("TI-CGT C6000 compiler")
+
+ set_toolset("cc", "cl6x")
+ set_toolset("cxx", "cl6x")
+ set_toolset("ld", "cl6x")
+ set_toolset("sh", "cl6x")
+ set_toolset("ar", "ar6x")
+ set_toolset("strip", "strip6x")
+ set_toolset("as", "cl6x")
+
+ on_check(function (toolchain)
+ return import("lib.detect.find_tool")("cl6x")
+ end)
+
+ on_load(function (toolchain)
+ local march = "-mv64+"
+ if march then
+ toolchain:add("cxflags", march)
+ toolchain:add("mxflags", march)
+ toolchain:add("asflags", march)
+ toolchain:add("ldflags", march)
+ toolchain:add("shflags", march)
+ end
+ end)
diff --git a/tests/apis/custom_toolchain/xmake.lua b/tests/apis/custom_toolchain/xmake.lua
new file mode 100644
index 000000000..acd68d4ad
--- /dev/null
+++ b/tests/apis/custom_toolchain/xmake.lua
@@ -0,0 +1,15 @@
+includes("toolchains/my-c6000")
+add_rules("mode.debug", "mode.release")
+
+set_toolchains("my-c6000")
+
+target("test")
+ set_kind("static")
+ add_files("src/foo.cpp")
+
+target("demo")
+ set_kind("binary")
+ add_deps("test")
+ add_files("src/test.cpp")
+
+
diff --git a/tests/apis/set_toolchains/src/foo.cpp b/tests/apis/set_toolchains/src/foo.cpp
new file mode 100644
index 000000000..1a1fb3425
--- /dev/null
+++ b/tests/apis/set_toolchains/src/foo.cpp
@@ -0,0 +1,5 @@
+#include "foo.h"
+
+int add(int a, int b) {
+ return a + b;
+}
diff --git a/tests/apis/set_toolchains/src/foo.h b/tests/apis/set_toolchains/src/foo.h
new file mode 100644
index 000000000..4a41e9597
--- /dev/null
+++ b/tests/apis/set_toolchains/src/foo.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/interface.cpp b/tests/apis/set_toolchains/src/interface.cpp
deleted file mode 100644
index 598d07560..000000000
--- a/tests/apis/set_toolchains/src/interface.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "interface.h"
-
-int add(int a, int b)
-{
- return a + b;
-}
diff --git a/tests/apis/set_toolchains/src/test.cpp b/tests/apis/set_toolchains/src/test.cpp
index 72e03272b..ed1924789 100644
--- a/tests/apis/set_toolchains/src/test.cpp
+++ b/tests/apis/set_toolchains/src/test.cpp
@@ -1,10 +1,9 @@
-#include "interface.h"
+#include "foo.h"
#include <iostream>
using namespace std;
-int main(int argc, char** argv)
-{
- cout << "add(1, 2) = " << add(1, 2) << endl;
+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
index 9db80f107..75f866fbd 100644
--- a/tests/apis/set_toolchains/xmake.lua
+++ b/tests/apis/set_toolchains/xmake.lua
@@ -1,10 +1,6 @@
--- define toolchain
toolchain("myclang")
-
- -- mark as standalone toolchain
set_kind("standalone")
- -- set toolset
set_toolset("cc", "clang")
set_toolset("cxx", "clang", "clang++")
set_toolset("ld", "clang++", "clang")
@@ -23,7 +19,7 @@ add_rules("mode.debug", "mode.release")
target("test")
set_kind("static")
- add_files("src/interface.cpp")
+ add_files("src/foo.cpp")
set_toolset("ar", "ar")
target("demo")