summaryrefslogtreecommitdiff
path: root/xmake/modules/private/action/require/impl
diff options
context:
space:
mode:
authorruki <[email protected]>2021-08-17 23:54:26 +0800
committerruki <[email protected]>2021-08-17 23:54:26 +0800
commit4e14e4eca4c713eb0fd1d0f52c2f7e6f411b2f92 (patch)
tree754e62ee20179f4e882e426a7496d44c6c9d8ca3 /xmake/modules/private/action/require/impl
parent569ed9f2cc458d8aa9c91916e5f0dc881a64aed1 (diff)
get locked requires
Diffstat (limited to 'xmake/modules/private/action/require/impl')
-rw-r--r--xmake/modules/private/action/require/impl/install_packages.lua4
-rw-r--r--xmake/modules/private/action/require/impl/package.lua19
2 files changed, 22 insertions, 1 deletions
diff --git a/xmake/modules/private/action/require/impl/install_packages.lua b/xmake/modules/private/action/require/impl/install_packages.lua
index 79fb71c3f..75ca4414e 100644
--- a/xmake/modules/private/action/require/impl/install_packages.lua
+++ b/xmake/modules/private/action/require/impl/install_packages.lua
@@ -603,7 +603,9 @@ function main(requires, opt)
register_packages(packages)
-- lock packages
- lock_packages(packages)
+ if #packages_install > 0 then
+ lock_packages(packages)
+ end
return packages
end
diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua
index d94629ce8..ed0429984 100644
--- a/xmake/modules/private/action/require/impl/package.lua
+++ b/xmake/modules/private/action/require/impl/package.lua
@@ -201,6 +201,25 @@ function _load_package_from_repository(packagename, reponame)
end
end
+-- has locked requires?
+function _has_locked_requires()
+ return project.policy("package.requires_lock") and os.isfile(project.requireslock())
+end
+
+-- get locked requires
+function _get_locked_requires(requirekey)
+ local requireslock = _memcache():get("requireslock")
+ if requireslock == nil then
+ if _has_locked_requires() then
+ requireslock = io.load(project.requireslock())
+ end
+ _memcache():set("requireslock", requireslock or false)
+ end
+ if requireslock then
+ return requireslock[requirekey]
+ end
+end
+
-- sort package deps
--
-- e.g.