summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2021-02-03 00:48:11 +0800
committerruki <[email protected]>2021-02-03 00:48:11 +0800
commitfdda430c2af3e036683be7c2c4a2fcc37e5d08b8 (patch)
treea58362984d1aee304bb65641272ddad610d85381
parenta76aab983d3acb30cf8138bffbc4f755c649fb30 (diff)
improve cross-toolchain
-rw-r--r--tests/projects/package/toolchain_muslcc/xmake.lua2
-rw-r--r--xmake/core/tool/toolchain.lua15
-rw-r--r--xmake/toolchains/cross/check.lua2
-rw-r--r--xmake/toolchains/cross/xmake.lua4
-rw-r--r--xmake/toolchains/gnu-rm/xmake.lua4
-rw-r--r--xmake/toolchains/muslcc/xmake.lua4
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)