diff options
| author | ruki <[email protected]> | 2025-01-25 00:47:15 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2025-01-24 22:49:31 +0800 |
| commit | 181d5cd4f96ee5975427d7f92efe71625ada3ac1 (patch) | |
| tree | 7981a94f054423abf6b36498fc2847b34260b618 | |
| parent | 669d2db9d3468aa0dc2edea9771ace9bb99f0d19 (diff) | |
add custom toolchain support
| -rw-r--r-- | tests/apis/custom_toolchain/src/foo.cpp | 5 | ||||
| -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.cpp | 5 | ||||
| -rw-r--r-- | tests/apis/custom_toolchain/toolchains/my-c6000/xmake.lua | 27 | ||||
| -rw-r--r-- | tests/apis/custom_toolchain/xmake.lua | 15 | ||||
| -rw-r--r-- | tests/apis/set_toolchains/src/foo.cpp | 5 | ||||
| -rw-r--r-- | tests/apis/set_toolchains/src/foo.h | 16 | ||||
| -rw-r--r-- | tests/apis/set_toolchains/src/interface.cpp | 6 | ||||
| -rw-r--r-- | tests/apis/set_toolchains/src/test.cpp | 7 | ||||
| -rw-r--r-- | tests/apis/set_toolchains/xmake.lua | 6 |
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") |
