summaryrefslogtreecommitdiff
path: root/xmake/modules/private/action/require/impl/package.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2021-08-19 00:53:05 +0800
committerruki <[email protected]>2021-08-19 00:53:05 +0800
commit7d85d8190b2e650ad02552c4935092a6d732206d (patch)
tree1efc3ffbba2cd9270808c4526d85389541aae488 /xmake/modules/private/action/require/impl/package.lua
parente830cca00c1d3a2761eb725003823d8660acafc8 (diff)
improve requirekey
Diffstat (limited to 'xmake/modules/private/action/require/impl/package.lua')
-rw-r--r--xmake/modules/private/action/require/impl/package.lua25
1 files changed, 14 insertions, 11 deletions
diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua
index 3d9145477..ade76e9d9 100644
--- a/xmake/modules/private/action/require/impl/package.lua
+++ b/xmake/modules/private/action/require/impl/package.lua
@@ -219,7 +219,7 @@ function _get_locked_requires(requirekey)
_memcache():set("requireslock", requireslock or false)
end
if requireslock then
- return requireslock[requirekey]
+ return requireslock[requirekey], requireslock.version
end
end
@@ -638,6 +638,19 @@ function _load_package(packagename, requireinfo, opt)
requireinfo.label = splitinfo[2]
end
+ -- sve requirekey
+ local requirekey = _get_packagelock_key(requireinfo)
+ requireinfo.requirekey = requirekey
+
+ -- get locked requireinfo
+ local locked_requireinfo, requireslock_version
+ if _has_locked_requires() then
+ locked_requireinfo, requireslock_version = _get_locked_requires(requirekey)
+ if requireslock_version and semver.compare(project.requireslock_version(), requireslock_version) < 0 then
+ locked_requireinfo = nil
+ end
+ end
+
-- load package from project first
local package
if os.isfile(os.projectfile()) then
@@ -679,16 +692,6 @@ function _load_package(packagename, requireinfo, opt)
-- finish requireinfo
_finish_requireinfo(requireinfo, package)
- -- get locked requireinfo
- local locked_requireinfo
- if _has_locked_requires() then
- local requirekey = _get_packagelock_key(requireinfo)
- locked_requireinfo = _get_locked_requires(requirekey)
- if semver.compare(project.requireslock_version(), locked_requireinfo.version) < 0 then
- locked_requireinfo = nil
- end
- end
-
-- select package version
local version, source = _select_package_version(package, requireinfo, locked_requireinfo)
if version then