diff options
| author | ruki <[email protected]> | 2026-05-07 16:02:10 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-05-07 16:02:10 +0800 |
| commit | 8e6ff95b036843f957a144526c5f348043b3873c (patch) | |
| tree | a39a125520a0bca9f0eb21aa9a51351984e82e32 | |
| parent | d76ec6af28e29921a986662f1d823a3a3a372f4b (diff) | |
| parent | cab62b5127ab2e8802311a716897f2950196c8cc (diff) | |
Merge pull request #7524 from xmake-io/clangcl
add lld-link config
| -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") |
