diff options
| author | Nate <[email protected]> | 2026-05-07 16:47:08 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-05-07 16:47:08 +0800 |
| commit | 4e12dee8d48beb0b21ffb4d33278c81049ce6383 (patch) | |
| tree | b291afc07d714c9b06c303b5a208e1bab2e29c41 | |
| parent | 9b582626c62639946034e19eb8d2850706f71674 (diff) | |
| parent | 8e6ff95b036843f957a144526c5f348043b3873c (diff) | |
Merge branch 'xmake-io:dev' into dev
| -rw-r--r-- | xmake/toolchains/clang-cl/load.lua | 22 |
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") |
