From fe774e866ca375b652934067f5c144e00f16484e Mon Sep 17 00:00:00 2001 From: ruki Date: Sun, 3 May 2026 21:40:21 +0800 Subject: add lld-link config --- xmake/toolchains/clang-cl/load.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xmake/toolchains/clang-cl/load.lua b/xmake/toolchains/clang-cl/load.lua index e06883012..0a002991d 100644 --- a/xmake/toolchains/clang-cl/load.lua +++ b/xmake/toolchains/clang-cl/load.lua @@ -37,7 +37,10 @@ function main(toolchain) else toolchain:set("toolset", "as", "ml.exe") end - if project.policy("build.optimization.lto") then + + -- we can use `clang-cl[lld_link]` to switch to lld-link. + local lld_link = toolchain:config("lld_link") + if lld_link or project.policy("build.optimization.lto") then toolchain:set("toolset", "ld", "lld-link") toolchain:set("toolset", "sh", "lld-link") toolchain:set("toolset", "ar", "llvm-ar") -- cgit v1.3.1 From cab62b5127ab2e8802311a716897f2950196c8cc Mon Sep 17 00:00:00 2001 From: ruki Date: Tue, 5 May 2026 00:43:34 +0800 Subject: improve llvm clang-cl --- xmake/toolchains/clang-cl/load.lua | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/xmake/toolchains/clang-cl/load.lua b/xmake/toolchains/clang-cl/load.lua index 0a002991d..75ba5af6e 100644 --- a/xmake/toolchains/clang-cl/load.lua +++ b/xmake/toolchains/clang-cl/load.lua @@ -28,19 +28,28 @@ import("private.utils.toolchain", {alias = "toolchain_utils"}) function main(toolchain) -- set toolset + -- we can use `clang-cl[llvm]` to switch to llvm tools. + local use_llvm = toolchain:config("llvm") toolchain:set("toolset", "cc", "clang-cl") toolchain:set("toolset", "cxx", "clang-cl") - toolchain:set("toolset", "mrc", "rc.exe") toolchain:set("toolset", "dlltool", "llvm-dlltool") - if toolchain:is_arch("x64") then - toolchain:set("toolset", "as", "ml64.exe") + if use_llvm then + toolchain:set("toolset", "mrc", "llvm-rc.exe") + if toolchain:is_arch("x64") then + toolchain:set("toolset", "as", "llvm-ml64.exe") + else + toolchain:set("toolset", "as", "llvm-ml.exe") + end else - toolchain:set("toolset", "as", "ml.exe") + toolchain:set("toolset", "mrc", "rc.exe") + if toolchain:is_arch("x64") then + toolchain:set("toolset", "as", "ml64.exe") + else + toolchain:set("toolset", "as", "ml.exe") + end end - -- we can use `clang-cl[lld_link]` to switch to lld-link. - local lld_link = toolchain:config("lld_link") - if lld_link or project.policy("build.optimization.lto") then + if use_llvm or project.policy("build.optimization.lto") then toolchain:set("toolset", "ld", "lld-link") toolchain:set("toolset", "sh", "lld-link") toolchain:set("toolset", "ar", "llvm-ar") -- cgit v1.3.1