summaryrefslogtreecommitdiff
path: root/xmake/toolchains
diff options
context:
space:
mode:
authorruki <[email protected]>2023-08-08 23:52:48 +0800
committerruki <[email protected]>2023-08-08 23:52:48 +0800
commit6ace9d5ab4735767b35d22cefd980e5f447db95c (patch)
treeff48025d851bedd4d18385b1405edf476574cff6 /xmake/toolchains
parent1494182a09187cf49edc9a19badc3be287e8a327 (diff)
add cross build
Diffstat (limited to 'xmake/toolchains')
-rw-r--r--xmake/toolchains/rust/xmake.lua22
1 files changed, 16 insertions, 6 deletions
diff --git a/xmake/toolchains/rust/xmake.lua b/xmake/toolchains/rust/xmake.lua
index 3329b73b7..0bb6ad36f 100644
--- a/xmake/toolchains/rust/xmake.lua
+++ b/xmake/toolchains/rust/xmake.lua
@@ -18,21 +18,31 @@
-- @file xmake.lua
--
--- define toolchain
toolchain("rust")
- -- set homepage
set_homepage("https://www.rust-lang.org/")
set_description("Rust Programming Language Compiler")
- -- set toolset
+-- set_kind("standalone")
+
set_toolset("rc", "$(env RC)", "rustc")
set_toolset("rcld", "$(env RC)", "rustc")
set_toolset("rcsh", "$(env RC)", "rustc")
set_toolset("rcar", "$(env RC)", "rustc")
- -- on load
+ on_check(function (toolchain)
+ import("lib.detect.find_tool")
+ return find_tool("rustc")
+ end)
+
on_load(function (toolchain)
- toolchain:set("rcshflags", "")
- toolchain:set("rcldflags", "")
+ -- for cross-compilation, e.g. xmake f -p cross --cross=aarch64-unknown-none
+ local cross = toolchain:cross()
+ if toolchain:is_cross() and cross then
+ toolchain:add("rcshflags", "--target=" .. cross)
+ toolchain:add("rcldflags", "--target=" .. cross)
+ else
+ toolchain:set("rcshflags", "")
+ toolchain:set("rcldflags", "")
+ end
end)