diff options
| -rw-r--r-- | xmake/toolchains/llvm/check.lua | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/xmake/toolchains/llvm/check.lua b/xmake/toolchains/llvm/check.lua index cee19baac..5a1498c9b 100644 --- a/xmake/toolchains/llvm/check.lua +++ b/xmake/toolchains/llvm/check.lua @@ -21,6 +21,7 @@ -- imports import("core.project.config") import("lib.detect.find_path") +import("lib.detect.find_tool") import("detect.sdks.find_xcode") import("detect.sdks.find_cross_toolchain") @@ -74,19 +75,9 @@ function main(toolchain) sdkdir = path.directory(bindir) end elseif is_host("windows") then - bindir = try {function () return path.directory(os.iorunv("where", {"llvm-ar.exe"})) end} - if not bindir then - local pathenv = os.getenv("PATH") - if pathenv then - for _, v in ipairs(path.splitenv(pathenv)) do - if os.isfile(path.join(v, "llvm-ar.exe")) then - bindir = v - break - end - end - end - end - if bindir then + local llvm_ar = find_tool("llvm-ar", {force = true, envs = {PATH = os.getenvs("PATH")}}) + if llvm_ar and llvm_ar.program and os.isfile(llvm_ar.program) then + bindir = path.directory(llvm_ar.program) sdkdir = path.directory(bindir) end end |
