summaryrefslogtreecommitdiff
path: root/xmake/modules/private/action/require/impl/package.lua
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/modules/private/action/require/impl/package.lua')
-rw-r--r--xmake/modules/private/action/require/impl/package.lua26
1 files changed, 8 insertions, 18 deletions
diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua
index 307d1620a..c3fbdd0d0 100644
--- a/xmake/modules/private/action/require/impl/package.lua
+++ b/xmake/modules/private/action/require/impl/package.lua
@@ -160,17 +160,6 @@ function _load_require(require_str, requires_extra, parentinfo)
wprint("add_requires(%s): vs_runtime is deprecated, please use runtimes!", require_str)
end
- -- require packge in the current host platform
- if require_extra.host then
- if is_subhost(core_package.targetplat()) and os.subarch() == core_package.targetarch() then
- -- we need to pass plat/arch to avoid repeat installation
- -- @see https://github.com/xmake-io/xmake/issues/1579
- else
- require_extra.plat = os.subhost()
- require_extra.arch = os.subarch()
- end
- end
-
-- check require options
local extra_options = hashset.of("plat", "arch", "kind", "host", "targetos",
"alias", "group", "system", "option", "default", "optional", "debug",
@@ -197,6 +186,7 @@ function _load_require(require_str, requires_extra, parentinfo)
originstr = require_str,
reponame = reponame,
version = require_extra.version or version,
+ host = require_extra.host, -- this package is only for host machine
plat = require_extra.plat, -- require package in the given platform
arch = require_extra.arch, -- require package in the given architecture
targetos = require_extra.targetos, -- require package in the given target os
@@ -579,13 +569,6 @@ end
-- finish requireinfo
function _finish_requireinfo(requireinfo, package)
- -- we need to synchronise the plat/arch inherited from the parent package as early as possible
- if requireinfo.plat then
- package:plat_set(requireinfo.plat)
- end
- if requireinfo.arch then
- package:arch_set(requireinfo.arch)
- end
requireinfo.configs = requireinfo.configs or {}
if package:is_plat("windows") then
-- @see https://github.com/xmake-io/xmake/issues/4477#issuecomment-1913249489
@@ -718,6 +701,7 @@ end
-- get package key
function _get_packagekey(packagename, requireinfo, version)
return _get_requirekey(requireinfo, {name = packagename,
+ host = requireinfo.host,
plat = requireinfo.plat,
arch = requireinfo.arch,
kind = requireinfo.kind,
@@ -752,6 +736,9 @@ function _inherit_parent_configs(requireinfo, package, parentinfo)
if parentinfo.arch then
requireinfo.arch = parentinfo.arch
end
+ if parentinfo.host then
+ requireinfo.host = parentinfo.host
+ end
requireinfo_configs.toolchains = requireinfo_configs.toolchains or parentinfo_configs.toolchains
requireinfo_configs.runtimes = requireinfo_configs.runtimes or parentinfo_configs.runtimes
requireinfo_configs.lto = requireinfo_configs.lto or parentinfo_configs.lto
@@ -1323,6 +1310,9 @@ function get_configs_str(package)
if requireinfo.arch then
table.insert(configs, requireinfo.arch)
end
+ if requireinfo.host then
+ table.insert(configs, requireinfo.host)
+ end
if requireinfo.kind then
table.insert(configs, requireinfo.kind)
end