summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNate <[email protected]>2026-05-07 16:47:08 +0800
committerGitHub <[email protected]>2026-05-07 16:47:08 +0800
commit4e12dee8d48beb0b21ffb4d33278c81049ce6383 (patch)
treeb291afc07d714c9b06c303b5a208e1bab2e29c41
parent9b582626c62639946034e19eb8d2850706f71674 (diff)
parent8e6ff95b036843f957a144526c5f348043b3873c (diff)
Merge branch 'xmake-io:dev' into dev
-rw-r--r--xmake/toolchains/clang-cl/load.lua22
1 files changed, 17 insertions, 5 deletions
diff --git a/xmake/toolchains/clang-cl/load.lua b/xmake/toolchains/clang-cl/load.lua
index e06883012..75ba5af6e 100644
--- a/xmake/toolchains/clang-cl/load.lua
+++ b/xmake/toolchains/clang-cl/load.lua
@@ -28,16 +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
- if 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")