diff options
| author | ruki <[email protected]> | 2024-07-02 09:27:51 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-07-02 09:27:51 +0800 |
| commit | 9fd0a10896cc92a94afb07675c75e7bea86bf83d (patch) | |
| tree | 3206b27ab45739aafedea98fefb8f1c7e21dedd7 | |
| parent | 8d9d81c686d89d636fbfd225fec127878c87d8b5 (diff) | |
| parent | 030d7105837e998ded7e8969beb6d9d13d18b015 (diff) | |
Merge pull request #5281 from xmake-io/cosmocc
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) |
