diff options
| -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") |
