summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2024-05-15 22:32:26 +0800
committerruki <[email protected]>2024-05-15 22:32:26 +0800
commitb0e263a48cc753379ead6b48c0ef4dcbf79ead41 (patch)
tree1fafc2b67233dd01aa7b79b8e41ff2cd670db9cb
parent860a3550f65749896d2cdbb7fd32c7cba64aed62 (diff)
improve to find llvm
-rw-r--r--xmake/toolchains/llvm/check.lua17
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