diff options
| author | ruki <[email protected]> | 2024-05-15 22:32:26 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2024-05-15 22:32:26 +0800 |
| commit | b0e263a48cc753379ead6b48c0ef4dcbf79ead41 (patch) | |
| tree | 1fafc2b67233dd01aa7b79b8e41ff2cd670db9cb | |
| parent | 860a3550f65749896d2cdbb7fd32c7cba64aed62 (diff) | |
improve to find llvm
| -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 |
