diff options
| author | ruki <[email protected]> | 2021-08-17 23:54:26 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-08-17 23:54:26 +0800 |
| commit | 4e14e4eca4c713eb0fd1d0f52c2f7e6f411b2f92 (patch) | |
| tree | 754e62ee20179f4e882e426a7496d44c6c9d8ca3 | |
| parent | 569ed9f2cc458d8aa9c91916e5f0dc881a64aed1 (diff) | |
get locked requires
| -rw-r--r-- | xmake/modules/private/action/require/impl/install_packages.lua | 4 | ||||
| -rw-r--r-- | xmake/modules/private/action/require/impl/package.lua | 19 |
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. |
