summaryrefslogtreecommitdiff
path: root/xmake/toolchains/zig/xmake.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2021-01-27 00:40:33 +0800
committerruki <[email protected]>2021-01-27 00:40:33 +0800
commit56e16607418f6649b1789e7ef9421975a9132a13 (patch)
tree3a498d5a161103dfd97b194661d6ae01be914b2a /xmake/toolchains/zig/xmake.lua
parent03b1b5a62b8e5449c4809e89d969da332da1ba3b (diff)
improve zig toolchain
Diffstat (limited to 'xmake/toolchains/zig/xmake.lua')
-rw-r--r--xmake/toolchains/zig/xmake.lua25
1 files changed, 13 insertions, 12 deletions
diff --git a/xmake/toolchains/zig/xmake.lua b/xmake/toolchains/zig/xmake.lua
index 940477e81..94a21518a 100644
--- a/xmake/toolchains/zig/xmake.lua
+++ b/xmake/toolchains/zig/xmake.lua
@@ -28,18 +28,7 @@ toolchain("zig")
-- on load
on_load(function (toolchain)
- -- set toolset
- local zig = get_config("zc") or "zig"
- toolchain:set("toolset", "cc", zig .. " cc")
- toolchain:set("toolset", "cxx", zig .. " c++")
- toolchain:set("toolset", "ld", zig .. " c++")
- toolchain:set("toolset", "sh", zig .. " c++")
- toolchain:set("toolset", "zc", "$(env ZC)", zig)
- toolchain:set("toolset", "zcar", "$(env ZC)", zig)
- toolchain:set("toolset", "zcld", "$(env ZC)", zig)
- toolchain:set("toolset", "zcsh", "$(env ZC)", zig)
-
- -- init flags
+ -- init march
local march
if toolchain:is_plat("macosx") then
-- FIXME
@@ -57,6 +46,18 @@ toolchain("zig")
toolchain:add("zcshflags", "-target", march)
end
+ -- set toolset
+ -- we patch target to `zig cc` to fix has_flags. see https://github.com/xmake-io/xmake/issues/955#issuecomment-766929692
+ local zig = get_config("zc") or "zig"
+ toolchain:set("toolset", "cc", zig .. " cc" .. (march and (" --target=" .. march) or ""))
+ toolchain:set("toolset", "cxx", zig .. " c++" .. (march and (" --target=" .. march) or ""))
+ toolchain:set("toolset", "ld", zig .. " c++" .. (march and (" --target=" .. march) or ""))
+ toolchain:set("toolset", "sh", zig .. " c++" .. (march and (" --target=" .. march) or ""))
+ toolchain:set("toolset", "zc", "$(env ZC)", zig)
+ toolchain:set("toolset", "zcar", "$(env ZC)", zig)
+ toolchain:set("toolset", "zcld", "$(env ZC)", zig)
+ toolchain:set("toolset", "zcsh", "$(env ZC)", zig)
+
-- @see https://github.com/ziglang/zig/issues/5825
if toolchain:is_plat("windows") then
toolchain:add("zcldflags", "--subsystem console")