summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2022-03-26 16:11:36 +0800
committerruki <[email protected]>2022-03-26 16:11:36 +0800
commitac16d2aa9c2c84009cc55a4b27fbbc70fd398c1b (patch)
tree09cd784d83038cb34a2eb57589d3c8118bb53de1
parentb87a93d2f1134cd2668c806c4452700ac720b18b (diff)
add target/package:toolchain
-rw-r--r--xmake/core/package/package.lua13
-rw-r--r--xmake/core/project/target.lua13
2 files changed, 26 insertions, 0 deletions
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua
index 239bbb928..5c55850bb 100644
--- a/xmake/core/package/package.lua
+++ b/xmake/core/package/package.lua
@@ -854,6 +854,19 @@ function _instance:build_envs(lazy_loading)
return build_envs
end
+-- get the given toolchain
+function _instance:toolchain(name)
+ local toolchains_map = self._TOOLCHAINS_MAP
+ if toolchains_map == nil then
+ toolchains_map = {}
+ for _, toolchain_inst in ipairs(self:toolchains()) do
+ toolchains_map[toolchain_inst:name()] = toolchain_inst
+ end
+ self._TOOLCHAINS_MAP = toolchains_map
+ end
+ return toolchains_map[name]
+end
+
-- get toolchains
function _instance:toolchains()
local toolchains = self._TOOLCHAINS
diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua
index 05e4a1476..78b620165 100644
--- a/xmake/core/project/target.lua
+++ b/xmake/core/project/target.lua
@@ -1921,6 +1921,19 @@ function _instance:pcoutputfile(langkind)
end
end
+-- get the given toolchain
+function _instance:toolchain(name)
+ local toolchains_map = self:_memcache():get("toolchains_map")
+ if toolchains_map == nil then
+ toolchains_map = {}
+ for _, toolchain_inst in ipairs(self:toolchains()) do
+ toolchains_map[toolchain_inst:name()] = toolchain_inst
+ end
+ self:_memcache():set("toolchains_map", toolchains_map)
+ end
+ return toolchains_map[name]
+end
+
-- get the toolchains
function _instance:toolchains()
local toolchains = self:_memcache():get("toolchains")