summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2024-07-01 23:02:23 +0800
committerruki <[email protected]>2024-07-01 23:02:23 +0800
commit030d7105837e998ded7e8969beb6d9d13d18b015 (patch)
treeb951fa1b7241e612f895c3f784bc331024c5ec2f
parent6bed5edd427bf382cf966f8cbff780f7fdfdad2d (diff)
improve to find cosmocc
-rw-r--r--xmake/modules/detect/tools/find_cosmocc.lua1
-rw-r--r--xmake/toolchains/cosmocc/check.lua9
2 files changed, 10 insertions, 0 deletions
diff --git a/xmake/modules/detect/tools/find_cosmocc.lua b/xmake/modules/detect/tools/find_cosmocc.lua
index 964b564c8..910643626 100644
--- a/xmake/modules/detect/tools/find_cosmocc.lua
+++ b/xmake/modules/detect/tools/find_cosmocc.lua
@@ -37,6 +37,7 @@ import("lib.detect.find_programver")
function main(opt)
opt = opt or {}
opt.shell = true
+ opt.envs = {PATH = os.getenv("PATH")}
local program = find_program(opt.program or "cosmocc", opt)
if program and is_host("windows") then
program = program:gsub("\\", "/")
diff --git a/xmake/toolchains/cosmocc/check.lua b/xmake/toolchains/cosmocc/check.lua
index 01fa54f8b..d193cceb2 100644
--- a/xmake/toolchains/cosmocc/check.lua
+++ b/xmake/toolchains/cosmocc/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_cross_toolchain")
-- check the cross toolchain
@@ -44,6 +45,14 @@ function main(toolchain)
end
end
end
+ if not cross_toolchain then
+ local cosmocc = find_tool("cosmocc", {force = true})
+ if cosmocc and cosmocc.program then
+ local bindir = path.directory(cosmocc.program)
+ local sdkdir = path.directory(bindir)
+ cross_toolchain = {bindir = bindir, sdkdir = sdkdir}
+ end
+ end
if cross_toolchain then
toolchain:config_set("cross", cross_toolchain.cross)
toolchain:config_set("bindir", cross_toolchain.bindir)