diff options
| author | ruki <[email protected]> | 2021-03-20 00:50:56 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-03-20 00:50:56 +0800 |
| commit | 7556e19a1193841aa49871ffab35bc3e56bd481e (patch) | |
| tree | 2a72103ca495abb12797a6a4ee08a3fbaa81da64 /xmake/core/package/package.lua | |
| parent | c1261619d8e7330a1a99e50a73b5baddf2dd66f4 (diff) | |
pass extraconf to package
Diffstat (limited to 'xmake/core/package/package.lua')
| -rw-r--r-- | xmake/core/package/package.lua | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua index f2c437924..a59ee7c5d 100644 --- a/xmake/core/package/package.lua +++ b/xmake/core/package/package.lua @@ -677,11 +677,14 @@ end function _instance:toolchains() local toolchains = self._TOOLCHAINS if toolchains == nil then + local project = package._project() for _, name in ipairs(table.wrap(self:config("toolchains"))) do - local toolchain_opt = {plat = self:plat(), arch = self:arch()} + local toolchain_opt = project and project.extraconf("target.toolchains", name) or {} + toolchain_opt.plat = self:plat() + toolchain_opt.arch = self:arch() local toolchain_inst, errors = toolchain.load(name, toolchain_opt) - if not toolchain_inst and os.isfile(os.projectfile()) then - toolchain_inst = require("base/project").toolchain(name, toolchain_opt) + if not toolchain_inst and project then + toolchain_inst = project.toolchain(name, toolchain_opt) end if not toolchain_inst then os.raise(errors) @@ -1550,13 +1553,23 @@ function package._memcache() return memcache.cache("core.base.package") end +-- get project +function package._project() + local project = package._PROJECT + if not project then + if os.isfile(os.projectfile()) then + project = require("project/project") + end + end + return project +end + -- get global target platform of package function package._target_plat() local plat = package._memcache():get("target_plat") if plat == nil then - if not plat and os.isfile(os.projectfile()) then - local project = require("project/project") - local targetplat_root = project.get("target.plat") + if not plat and package._project() then + local targetplat_root = package._project().get("target.plat") if targetplat_root then plat = targetplat_root end @@ -1573,9 +1586,8 @@ end function package._target_arch() local arch = package._memcache():get("target_arch") if arch == nil then - if not arch and os.isfile(os.projectfile()) then - local project = require("project/project") - local targetarch_root = project.get("target.arch") + if not arch and package._project() then + local targetarch_root = package._project().get("target.arch") if targetarch_root then arch = targetarch_root end |
