diff options
| -rw-r--r-- | xmake/actions/config/main.lua | 10 | ||||
| -rw-r--r-- | xmake/core/project/package.lua | 12 | ||||
| -rw-r--r-- | xmake/core/project/project.lua | 8 |
3 files changed, 12 insertions, 18 deletions
diff --git a/xmake/actions/config/main.lua b/xmake/actions/config/main.lua index 9b7414f58..eb51cb4dc 100644 --- a/xmake/actions/config/main.lua +++ b/xmake/actions/config/main.lua @@ -197,11 +197,11 @@ function _config_targets(targetname) end -- load rules in the required packages for target -function _load_package_rules_for_target(target, packages) +function _load_package_rules_for_target(target) for _, rulename in ipairs(target:get("rules")) do local packagename = rulename:match("@(.-)/") if packagename then - local pkginfo = packages[packagename] + local pkginfo = project.required_package(packagename) if pkginfo then local r = pkginfo:rule(rulename) if r then @@ -225,13 +225,9 @@ end -- @endcode -- function _load_package_rules_for_targets() - local packages = project.required_packages() - if not packages then - return - end for _, target in ipairs(project.ordertargets()) do if target:is_enabled() then - _load_package_rules_for_target(target, packages) + _load_package_rules_for_target(target) end end end diff --git a/xmake/core/project/package.lua b/xmake/core/project/package.lua index 388862d91..a716ae9e6 100644 --- a/xmake/core/project/package.lua +++ b/xmake/core/project/package.lua @@ -209,19 +209,17 @@ function package._cache() return localcache.cache("package") end --- load the requires info from the cache +-- load the package from the cache function package.load(name) - - -- check - assert(name) - - -- get info local info = package._cache():get(name) if info == nil then return end + return package.load_withinfo(name, info) +end - -- init package instance +-- load package from the give package info +function package.load_withinfo(name, info) local instance = table.inherit(_instance) instance._INFO = info instance._NAME = name diff --git a/xmake/core/project/project.lua b/xmake/core/project/project.lua index 7d40a65ef..bb1540106 100644 --- a/xmake/core/project/project.lua +++ b/xmake/core/project/project.lua @@ -495,11 +495,11 @@ function project._load_requires() end -- load it from cache first (@note will discard scripts in extrainfo) - local instance = project_package.load(alias or packagename) + local name = alias or packagename + local instance = project_package.load(name) if not instance then - instance = table.inherit(project_package) - instance._NAME = alias or packagename - instance._INFO = { __requirestr = requirestr, __extrainfo = extrainfo } + local info = {__requirestr = requirestr, __extrainfo = extrainfo} + instance = project_package.load_withinfo(name, info) end -- add require info |
