diff options
| author | ruki <[email protected]> | 2022-10-08 00:55:22 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-10-08 00:55:22 +0800 |
| commit | 3af745fe82cc5ff1627a395b184908ee6d1f6907 (patch) | |
| tree | 1cb78ddb8e3cb594f8c8445dd9f406bc94663822 | |
| parent | 9db1c9224342114ba6b40ad0860f09ed69be0ba9 (diff) | |
fix package info
| -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 |
