diff options
| author | ruki <[email protected]> | 2021-02-03 00:48:11 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-02-03 00:48:11 +0800 |
| commit | fdda430c2af3e036683be7c2c4a2fcc37e5d08b8 (patch) | |
| tree | a58362984d1aee304bb65641272ddad610d85381 | |
| parent | a76aab983d3acb30cf8138bffbc4f755c649fb30 (diff) | |
improve cross-toolchain
| -rw-r--r-- | tests/projects/package/toolchain_muslcc/xmake.lua | 2 | ||||
| -rw-r--r-- | xmake/core/tool/toolchain.lua | 15 | ||||
| -rw-r--r-- | xmake/toolchains/cross/check.lua | 2 | ||||
| -rw-r--r-- | xmake/toolchains/cross/xmake.lua | 4 | ||||
| -rw-r--r-- | xmake/toolchains/gnu-rm/xmake.lua | 4 | ||||
| -rw-r--r-- | xmake/toolchains/muslcc/xmake.lua | 4 |
6 files changed, 20 insertions, 11 deletions
diff --git a/tests/projects/package/toolchain_muslcc/xmake.lua b/tests/projects/package/toolchain_muslcc/xmake.lua index d68fc3301..07b7f50a8 100644 --- a/tests/projects/package/toolchain_muslcc/xmake.lua +++ b/tests/projects/package/toolchain_muslcc/xmake.lua @@ -4,4 +4,4 @@ add_requires("muslcc") target("test") set_kind("binary") add_files("src/*.c") - set_toolchains("muslcc") + set_toolchains("muslcc", {packages = "muslcc"}) diff --git a/xmake/core/tool/toolchain.lua b/xmake/core/tool/toolchain.lua index fe3ee3291..d2086bda0 100644 --- a/xmake/core/tool/toolchain.lua +++ b/xmake/core/tool/toolchain.lua @@ -142,9 +142,18 @@ function _instance:kind() return self:info():get("kind") end +-- is cross-compilation toolchain +function _instance:cross_toolchain() + if self:kind() == "cross" then + return true + elseif self:kind() == "standalone" and (self:cross() or self:sdkdir()) then + return true + end +end + -- is standalone toolchain? function _instance:standalone() - return self:kind() == "standalone" + return self:kind() == "standalone" or self:kind() == "cross" end -- global toolchain for whole platform @@ -283,7 +292,7 @@ end -- on check (builtin) function _instance:_on_check() local on_check = self:info():get("check") - if not on_check and self:standalone() and (self:cross() or self:sdkdir()) then + if not on_check and self:cross_toolchain() then on_check = self.check_cross_toolchain end return on_check @@ -292,7 +301,7 @@ end -- on load (builtin) function _instance:_on_load() local on_load = self:info():get("load") - if not on_load and self:standalone() and (self:cross() or self:sdkdir()) then + if not on_load and self:cross_toolchain() then on_load = self.load_cross_toolchain end return on_load diff --git a/xmake/toolchains/cross/check.lua b/xmake/toolchains/cross/check.lua index c4c22bd83..6904e304d 100644 --- a/xmake/toolchains/cross/check.lua +++ b/xmake/toolchains/cross/check.lua @@ -29,7 +29,7 @@ function main(toolchain) local sdkdir = toolchain:sdkdir() local bindir = toolchain:bindir() local cross = toolchain:cross() - if not sdkdir and not bindir and not cross then + if not sdkdir and not bindir and not cross and not toolchain:config("packages") then return end diff --git a/xmake/toolchains/cross/xmake.lua b/xmake/toolchains/cross/xmake.lua index 839c0caed..3ec12f1f4 100644 --- a/xmake/toolchains/cross/xmake.lua +++ b/xmake/toolchains/cross/xmake.lua @@ -24,8 +24,8 @@ toolchain("cross") -- set descrption set_description("Common cross compilation toolchain") - -- mark as standalone toolchain - set_kind("standalone") + -- mark as cross-compilation toolchain + set_kind("cross") -- check toolchain on_check("check") diff --git a/xmake/toolchains/gnu-rm/xmake.lua b/xmake/toolchains/gnu-rm/xmake.lua index 912cf8ff4..4a1751172 100644 --- a/xmake/toolchains/gnu-rm/xmake.lua +++ b/xmake/toolchains/gnu-rm/xmake.lua @@ -25,8 +25,8 @@ toolchain("gnu-rm") set_homepage("https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm") set_description("GNU Arm Embedded Toolchain") - -- mark as standalone toolchain - set_kind("standalone") + -- mark as cross-complation toolchain + set_kind("cross") -- on load on_load(function (toolchain) diff --git a/xmake/toolchains/muslcc/xmake.lua b/xmake/toolchains/muslcc/xmake.lua index a78139238..cec5ecbdb 100644 --- a/xmake/toolchains/muslcc/xmake.lua +++ b/xmake/toolchains/muslcc/xmake.lua @@ -25,8 +25,8 @@ toolchain("muslcc") set_homepage("https://musl.cc/") set_description("The musl-based cross-compilation toolchains") - -- mark as standalone toolchain - set_kind("standalone") + -- mark as cross-compilation toolchain + set_kind("cross") -- on load on_load(function (toolchain) |
