diff options
| author | ruki <[email protected]> | 2021-03-10 00:30:11 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-03-10 00:30:11 +0800 |
| commit | 870150547028b91b953ed2170f05827be13484c1 (patch) | |
| tree | ac07ab4b5916b603a09907edc1d86ac224edfa0c | |
| parent | fb8bf856a446630dffa2e686fa35f428aad77670 (diff) | |
fix targe toolchains
| -rw-r--r-- | xmake/core/project/target.lua | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua index 273601780..617141791 100644 --- a/xmake/core/project/target.lua +++ b/xmake/core/project/target.lua @@ -1786,7 +1786,29 @@ end function _instance:toolchains() local toolchains = self:_memcache():get("toolchains") if toolchains == nil then - toolchains = self:platform():toolchains() + + -- load target toolchains + local target_toolchains = self:get("toolchains") + if target_toolchains then + toolchains = {} + for _, name in ipairs(table.wrap(target_toolchains)) do + local toolchain_opt = table.copy(self:extraconf("toolchains", name)) + toolchain_opt.arch = self:arch() + toolchain_opt.plat = self:plat() + local toolchain_inst, errors = toolchain.load(name, toolchain_opt) + -- attempt to load toolchain from project + if not toolchain_inst and self._PROJECT then + toolchain_inst = self._PROJECT.toolchain(name, toolchain_opt) + end + if not toolchain_inst then + os.raise(errors) + end + table.insert(toolchains, toolchain_inst) + end + else + -- load platform toolchains + toolchains = self:platform():toolchains() + end self:_memcache():set("toolchains", toolchains) end return toolchains @@ -1977,3 +1999,4 @@ end -- return module return target + |
