diff options
| author | ruki <[email protected]> | 2024-02-05 23:53:22 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2024-02-05 23:53:22 +0800 |
| commit | 968d7dc6f05661c381a49e965f56f397cdbb7868 (patch) | |
| tree | 60c5033e4765236492c937a2d40387c315a72317 | |
| parent | 8020014e06e7a43c9cd6cd3724f41521d8131723 (diff) | |
find cosmocc
| -rw-r--r-- | tests/projects/c/cosmocc/xmake.lua | 2 | ||||
| -rw-r--r-- | xmake/modules/core/tools/clangxx.lua | 2 | ||||
| -rw-r--r-- | xmake/modules/core/tools/cosmocc.lua | 32 | ||||
| -rw-r--r-- | xmake/modules/core/tools/cosmocxx.lua | 24 | ||||
| -rw-r--r-- | xmake/modules/detect/tools/find_cosmocc.lua | 45 | ||||
| -rw-r--r-- | xmake/toolchains/cosmocc/check.lua | 1 | ||||
| -rw-r--r-- | xmake/toolchains/cosmocc/xmake.lua | 8 |
7 files changed, 108 insertions, 6 deletions
diff --git a/tests/projects/c/cosmocc/xmake.lua b/tests/projects/c/cosmocc/xmake.lua index f625f7500..babd520a2 100644 --- a/tests/projects/c/cosmocc/xmake.lua +++ b/tests/projects/c/cosmocc/xmake.lua @@ -5,5 +5,5 @@ add_requires("cosmocc") target("test") set_kind("binary") add_files("src/*.c") - add_packages("cosmocc") + set_toolchains("@cosmocc") diff --git a/xmake/modules/core/tools/clangxx.lua b/xmake/modules/core/tools/clangxx.lua index d167dcd17..3a35fc562 100644 --- a/xmake/modules/core/tools/clangxx.lua +++ b/xmake/modules/core/tools/clangxx.lua @@ -15,7 +15,7 @@ -- Copyright (C) 2015-present, TBOOX Open Source Group. -- -- @author ruki --- @file clang++.lua +-- @file clangxx.lua -- -- inherit clang diff --git a/xmake/modules/core/tools/cosmocc.lua b/xmake/modules/core/tools/cosmocc.lua new file mode 100644 index 000000000..978b03395 --- /dev/null +++ b/xmake/modules/core/tools/cosmocc.lua @@ -0,0 +1,32 @@ +--!A cross-platform build utility based on Lua +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +-- Copyright (C) 2015-present, TBOOX Open Source Group. +-- +-- @author ruki +-- @file cosmocc.lua +-- + +-- inherit gcc +inherit("gcc") + +-- init it +function init(self) + _super.init(self) +end + +-- make the strip flag +function nf_strip(self, level) +end + diff --git a/xmake/modules/core/tools/cosmocxx.lua b/xmake/modules/core/tools/cosmocxx.lua new file mode 100644 index 000000000..4f64ad261 --- /dev/null +++ b/xmake/modules/core/tools/cosmocxx.lua @@ -0,0 +1,24 @@ +--!A cross-platform build utility based on Lua +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +-- Copyright (C) 2015-present, TBOOX Open Source Group. +-- +-- @author ruki +-- @file cosmocxx.lua +-- + +-- inherit cosmocc +inherit("cosmocc") + + diff --git a/xmake/modules/detect/tools/find_cosmocc.lua b/xmake/modules/detect/tools/find_cosmocc.lua new file mode 100644 index 000000000..b89244994 --- /dev/null +++ b/xmake/modules/detect/tools/find_cosmocc.lua @@ -0,0 +1,45 @@ +--!A cross-platform build utility based on Lua +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +-- Copyright (C) 2015-present, TBOOX Open Source Group. +-- +-- @author ruki +-- @file find_cosmocc.lua +-- + +-- imports +import("lib.detect.find_program") +import("lib.detect.find_programver") + +-- find cosmocc +-- +-- @param opt the argument options, e.g. {version = true} +-- +-- @return program, version +-- +-- @code +-- +-- local cosmocc = find_cosmocc() +-- +-- @endcode +-- +function main(opt) + opt = opt or {} + local program = find_program(opt.program or "cosmocc", opt) + local version = nil + if program and opt and opt.version then + version = find_programver(program, opt) + end + return program, version +end diff --git a/xmake/toolchains/cosmocc/check.lua b/xmake/toolchains/cosmocc/check.lua index a1abb7daf..01fa54f8b 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("detect.sdks.find_cross_toolchain") -- check the cross toolchain function main(toolchain) diff --git a/xmake/toolchains/cosmocc/xmake.lua b/xmake/toolchains/cosmocc/xmake.lua index d2637be98..f09eb836b 100644 --- a/xmake/toolchains/cosmocc/xmake.lua +++ b/xmake/toolchains/cosmocc/xmake.lua @@ -35,10 +35,10 @@ toolchain("cosmocc") on_load(function (toolchain) if toolchain:is_arch("x86_64", "x64") then - target:set("toolset", "ranlib", "x86_64-linux-cosmo-ranlib") - target:set("toolset", "strip", "x86_64-linux-cosmo-strip") + toolchain:set("toolset", "ranlib", "x86_64-linux-cosmo-ranlib") + toolchain:set("toolset", "strip", "x86_64-linux-cosmo-strip") else - target:set("toolset", "ranlib", "aarch64-linux-cosmo-ranlib") - target:set("toolset", "strip", "aarch64-linux-cosmo-strip") + toolchain:set("toolset", "ranlib", "aarch64-linux-cosmo-ranlib") + toolchain:set("toolset", "strip", "aarch64-linux-cosmo-strip") end end) |
