diff options
| -rw-r--r-- | xmake/modules/package/tools/autoconf.lua | 3 | ||||
| -rw-r--r-- | xmake/toolchains/zig/xmake.lua | 25 |
2 files changed, 18 insertions, 10 deletions
diff --git a/xmake/modules/package/tools/autoconf.lua b/xmake/modules/package/tools/autoconf.lua index 88d9c0ce4..56168fd6b 100644 --- a/xmake/modules/package/tools/autoconf.lua +++ b/xmake/modules/package/tools/autoconf.lua @@ -458,6 +458,9 @@ function buildenvs(package, opt) end end end + if ld and package:has_tool("ld", "zig_cc") then + envs.LD = package:build_getenv("ld.lld") + end -- we need use clang++ as cxx, autoconf will use it as linker -- https://github.com/xmake-io/xmake/issues/2170 local cxx = envs.CXX diff --git a/xmake/toolchains/zig/xmake.lua b/xmake/toolchains/zig/xmake.lua index 2b3abf57b..e9d099782 100644 --- a/xmake/toolchains/zig/xmake.lua +++ b/xmake/toolchains/zig/xmake.lua @@ -30,7 +30,7 @@ toolchain("zig") -- @see https://github.com/xmake-io/xmake/issues/5610 function _setup_zigcc_wrapper(zig) local script_suffix = is_host("windows") and ".cmd" or "" - for _, tool in ipairs({"cc", "c++", "ar", "ranlib", "objcopy", "dlltool"}) do + for _, tool in ipairs({"cc", "c++", "ar", "ranlib", "lib", "ld.lld", "lld-link", "wasm-ld", "objcopy", "dlltool", "rc"}) do local wrapper_path = path.join(os.tmpdir(), "zigcc", tool) .. script_suffix if not os.isfile(wrapper_path) then if is_host("windows") then @@ -86,15 +86,20 @@ toolchain("zig") if toolchain:config("zigcc") ~= false then -- we can use `set_toolchains("zig", {zigcc = false})` to disable zigcc -- @see https://github.com/xmake-io/xmake/issues/3251 - toolchain:set("toolset", "cc", toolchain:config("toolset_cc")) - toolchain:set("toolset", "cxx", toolchain:config("toolset_c++")) - toolchain:set("toolset", "ld", toolchain:config("toolset_c++")) - toolchain:set("toolset", "sh", toolchain:config("toolset_c++")) - toolchain:set("toolset", "ar", toolchain:config("toolset_ar")) - toolchain:set("toolset", "ranlib", toolchain:config("toolset_ranlib")) - toolchain:set("toolset", "objcopy", toolchain:config("toolset_objcopy")) - toolchain:set("toolset", "as", toolchain:config("toolset_cc")) - toolchain:set("toolset", "dlltool", toolchain:config("toolset_dlltool")) + toolchain:set("toolset", "cc", toolchain:config("toolset_cc")) + toolchain:set("toolset", "cxx", toolchain:config("toolset_c++")) + toolchain:set("toolset", "ld", toolchain:config("toolset_c++")) + toolchain:set("toolset", "sh", toolchain:config("toolset_c++")) + toolchain:set("toolset", "ar", toolchain:config("toolset_ar")) + toolchain:set("toolset", "ranlib", toolchain:config("toolset_ranlib")) + toolchain:set("toolset", "lib", toolchain:config("toolset_lib")) + toolchain:set("toolset", "ld.lld", toolchain:config("toolset_ld.lld")) + toolchain:set("toolset", "lld-link", toolchain:config("toolset_lld-link")) + toolchain:set("toolset", "wasm-ld", toolchain:config("toolset_wasm-ld")) + toolchain:set("toolset", "objcopy", toolchain:config("toolset_objcopy")) + toolchain:set("toolset", "as", toolchain:config("toolset_cc")) + toolchain:set("toolset", "dlltool", toolchain:config("toolset_dlltool")) + toolchain:set("toolset", "mrc", toolchain:config("toolset_rc")) end toolchain:set("toolset", "zc", zig) toolchain:set("toolset", "zcar", zig) |
