summaryrefslogtreecommitdiff
path: root/xmake/actions/require/impl/package.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2020-12-23 22:39:57 +0800
committerruki <[email protected]>2020-12-23 22:39:57 +0800
commit50f826bb2df51dd80eb67054e446a496f2b6d15a (patch)
tree0e5f919e899f4cdbd9d555186019094ad5a5a796 /xmake/actions/require/impl/package.lua
parent58f26afbf964ee3a873021b972df868f23cc16c3 (diff)
improve package cache
Diffstat (limited to 'xmake/actions/require/impl/package.lua')
-rw-r--r--xmake/actions/require/impl/package.lua14
1 files changed, 10 insertions, 4 deletions
diff --git a/xmake/actions/require/impl/package.lua b/xmake/actions/require/impl/package.lua
index c66f1807a..a9d536c68 100644
--- a/xmake/actions/require/impl/package.lua
+++ b/xmake/actions/require/impl/package.lua
@@ -27,6 +27,7 @@ import("core.base.scheduler")
import("core.base.tty")
import("private.async.runjobs")
import("private.utils.progress")
+import("core.cache.memcache")
import("core.cache.localcache")
import("core.project.project")
import("core.package.package", {alias = "core_package"})
@@ -36,6 +37,11 @@ import("devel.git")
import("net.fasturl")
import("repository")
+-- get memcache
+function _memcache()
+ return memcache.cache("require.impl.package")
+end
+
--
-- parse require string
--
@@ -76,7 +82,7 @@ import("repository")
function _parse_require(require_str, requires_extra, parentinfo)
-- get it from cache first
- local requires = _g._REQUIRES or {}
+ local requires = _memcache():get("requires") or {}
local required = requires[require_str]
if required then
return required.packagename, required.requireinfo
@@ -174,7 +180,7 @@ function _parse_require(require_str, requires_extra, parentinfo)
-- save this required item to cache
requires[require_str] = required
- _g._REQUIRES = requires
+ _memcache():set("requires", requires)
-- ok
return required.packagename, required.requireinfo
@@ -324,7 +330,7 @@ function _load_package(packagename, requireinfo, opt)
-- attempt to get it from cache first
opt = opt or {}
- local packages = _g._PACKAGES or {}
+ local packages = _memcache():get("packages") or {}
local package = packages[packagename]
if package then
@@ -380,7 +386,7 @@ function _load_package(packagename, requireinfo, opt)
-- save this package package to cache
packages[packagename] = package
- _g._PACKAGES = packages
+ _memcache():set("packages", packages)
return package
end