summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2020-05-20 22:46:16 +0800
committerruki <[email protected]>2020-05-20 10:37:38 +0800
commit59caa4b16d0f8ab122338d7dfbcd461cc6017324 (patch)
tree8bc6fe0c28a107f1e7cb38610ad85fd10f6ec567
parentedfbe8654b25fa4ac5455f7dfc2c4a49de8dd121 (diff)
improve llvm toolchain on linux
-rw-r--r--xmake/toolchains/llvm/check.lua17
1 files changed, 11 insertions, 6 deletions
diff --git a/xmake/toolchains/llvm/check.lua b/xmake/toolchains/llvm/check.lua
index 6a5bd874d..04d4d6dec 100644
--- a/xmake/toolchains/llvm/check.lua
+++ b/xmake/toolchains/llvm/check.lua
@@ -25,17 +25,22 @@ import("detect.sdks.find_cross_toolchain")
-- check the cross toolchain
function main(toolchain)
+ -- get sdk directory
+ local sdkdir = config.get("sdk")
+ local bindir = config.get("bin")
+ if not sdkdir and not bindir then
+ if is_plat("linux") and os.isfile("/usr/bin/llvm-ar") then
+ sdkdir = "/usr"
+ end
+ end
+
-- find cross toolchain
- local cross_toolchain = find_cross_toolchain(config.get("sdk") or config.get("bin"), {bindir = config.get("bin"), cross = config.get("cross")})
+ local cross_toolchain = find_cross_toolchain(sdkdir, {bindir = bindir})
if cross_toolchain then
config.set("cross", cross_toolchain.cross, {readonly = true, force = true})
config.set("bin", cross_toolchain.bindir, {readonly = true, force = true})
else
- -- failed
- cprint("${bright color.error}cross toolchain not found, please run:")
- cprint(" - xmake config --sdk=xxx")
- cprint("or - xmake global --sdk=xxx")
- raise()
+ raise("llvm toolchain not found!")
end
return cross_toolchain
end