summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xmake/modules/private/action/require/impl/lock_packages.lua12
-rw-r--r--xmake/modules/private/action/require/impl/package.lua23
2 files changed, 23 insertions, 12 deletions
diff --git a/xmake/modules/private/action/require/impl/lock_packages.lua b/xmake/modules/private/action/require/impl/lock_packages.lua
index f41e3122f..e624f8d1a 100644
--- a/xmake/modules/private/action/require/impl/lock_packages.lua
+++ b/xmake/modules/private/action/require/impl/lock_packages.lua
@@ -24,12 +24,10 @@ import("devel.git")
import("private.action.require.impl.utils.filter")
import("private.action.require.impl.utils.requirekey")
--- get package key
-function _get_packagekey(instance)
+-- get locked package key
+function _get_packagelock_key(instance)
local requireinfo = instance:requireinfo()
local requirestr = requireinfo.originstr
- local plat = instance:plat()
- local arch = instance:arch()
local key = requirekey(requireinfo, {plat = instance:plat(), arch = instance:arch()})
return string.format("%s#%s", requirestr, key)
end
@@ -66,7 +64,7 @@ function _lock_package(instance)
end
for _, dep in ipairs(instance:plaindeps()) do
result.deps = result.deps or {}
- table.insert(result.deps, _get_packagekey(dep))
+ table.insert(result.deps, _get_packagelock_key(dep))
end
return result
end
@@ -76,8 +74,8 @@ function main(packages)
if project.policy("package.requires_lock") then
local results = {}
for _, instance in ipairs(packages) do
- local packagekey = _get_packagekey(instance)
- results[packagekey] = _lock_package(instance)
+ local packagelock_key = _get_packagelock_key(instance)
+ results[packagelock_key] = _lock_package(instance)
end
io.writefile(project.requireslock(), string.serialize(results, {orderkeys = true}))
end
diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua
index ed0429984..554033496 100644
--- a/xmake/modules/private/action/require/impl/package.lua
+++ b/xmake/modules/private/action/require/impl/package.lua
@@ -30,7 +30,7 @@ import("core.tool.toolchain")
import("core.package.package", {alias = "core_package"})
import("devel.git")
import("private.action.require.impl.repository")
-import("private.action.require.impl.utils.requirekey")
+import("private.action.require.impl.utils.requirekey", {alias = "_get_requirekey"})
-- get memcache
function _memcache()
@@ -497,10 +497,17 @@ end
-- get package key
function _get_packagekey(packagename, requireinfo, version)
- return requirekey(requireinfo, {name = packagename,
- plat = requireinfo.plat,
- arch = requireinfo.arch,
- version = version or requireinfo.version})
+ return _get_requirekey(requireinfo, {name = packagename,
+ plat = requireinfo.plat,
+ arch = requireinfo.arch,
+ version = version or requireinfo.version})
+end
+
+-- get locked package key
+function _get_packagelock_key(requireinfo)
+ local requirestr = requireinfo.originstr
+ local key = _get_requirekey(requireinfo, {plat = requireinfo.plat, arch = requireinfo.arch})
+ return string.format("%s#%s", requirestr, key)
end
-- inherit some builtin configs of parent package if these config values are not default value
@@ -655,6 +662,12 @@ function _load_package(packagename, requireinfo, opt)
-- finish requireinfo
_finish_requireinfo(requireinfo, package)
+ -- get requirekey
+ if _has_locked_requires() then
+ local requirekey = _get_packagelock_key(requireinfo)
+ print("requirekey", requirekey)
+ end
+
-- select package version
local version, source = _select_package_version(package, requireinfo)
if version then