diff options
| author | ruki <[email protected]> | 2024-07-01 23:02:23 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2024-07-01 23:02:23 +0800 |
| commit | 030d7105837e998ded7e8969beb6d9d13d18b015 (patch) | |
| tree | b951fa1b7241e612f895c3f784bc331024c5ec2f | |
| parent | 6bed5edd427bf382cf966f8cbff780f7fdfdad2d (diff) | |
improve to find cosmocc
| -rw-r--r-- | xmake/modules/detect/tools/find_cosmocc.lua | 1 | ||||
| -rw-r--r-- | xmake/toolchains/cosmocc/check.lua | 9 |
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) |
