diff options
| author | ruki <[email protected]> | 2021-01-27 00:40:33 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-01-27 00:40:33 +0800 |
| commit | 56e16607418f6649b1789e7ef9421975a9132a13 (patch) | |
| tree | 3a498d5a161103dfd97b194661d6ae01be914b2a /xmake/toolchains/zig/xmake.lua | |
| parent | 03b1b5a62b8e5449c4809e89d969da332da1ba3b (diff) | |
improve zig toolchain
Diffstat (limited to 'xmake/toolchains/zig/xmake.lua')
| -rw-r--r-- | xmake/toolchains/zig/xmake.lua | 25 |
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") |
