diff options
| author | ruki <[email protected]> | 2026-05-05 00:43:34 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2026-05-05 00:43:34 +0800 |
| commit | cab62b5127ab2e8802311a716897f2950196c8cc (patch) | |
| tree | 00e6d72b40291d91e5051dc0826396d14b568c4d | |
| parent | fe774e866ca375b652934067f5c144e00f16484e (diff) | |
improve llvm clang-cl
| -rw-r--r-- | xmake/toolchains/clang-cl/load.lua | 23 |
1 files 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") |
