diff options
| author | ruki <[email protected]> | 2021-04-24 00:46:40 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-04-24 00:46:40 +0800 |
| commit | ef43f7e4fce4b57469c14d932e83d6d23348bd05 (patch) | |
| tree | 751b6c577212553ceb8e00ebee7aeb9b88369cef /xmake/modules/private/action/require/impl/package.lua | |
| parent | ffa126129bc10f4ab152d1ade3f8130367e400a9 (diff) | |
add package:plaindeps
Diffstat (limited to 'xmake/modules/private/action/require/impl/package.lua')
| -rw-r--r-- | xmake/modules/private/action/require/impl/package.lua | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua index f799b2823..bbf5bc913 100644 --- a/xmake/modules/private/action/require/impl/package.lua +++ b/xmake/modules/private/action/require/impl/package.lua @@ -209,15 +209,10 @@ end function _sort_packagedeps(package, onlylink) -- we must use native deps list instead of package:deps() to generate correct linkdeps local orderdeps = {} - local deps = package:get("deps") - if deps then - for _, depname in ipairs(deps) do - local packagename = _parse_require(depname) - local dep = package:dep(packagename) -- TODO we need get correct package with different configs for checking deps conflicts - if dep and (onlylink ~= true or (dep:is_library() and not dep:is_private())) then - table.join2(orderdeps, _sort_packagedeps(dep, onlylink)) - table.insert(orderdeps, dep) - end + for _, dep in ipairs(package:plaindeps()) do + if dep and (onlylink ~= true or (dep:is_library() and not dep:is_private())) then + table.join2(orderdeps, _sort_packagedeps(dep, onlylink)) + table.insert(orderdeps, dep) end end return orderdeps @@ -623,6 +618,7 @@ function _load_packages(requires, opt) -- load packages local packages = {} + local packages_nodeps = {} for _, requireitem in ipairs(load_requires(requires, opt.requires_extra, opt)) do -- load package @@ -635,21 +631,22 @@ function _load_packages(requires, opt) -- load dependent packages and save them first of this package if not package._DEPS then - local deps = package:get("deps") - if deps and opt.nodeps ~= true then + if package:get("deps") and opt.nodeps ~= true then -- load dependent packages and do not load system/3rd packages for package/deps() local packagedeps = {} - for _, dep in ipairs(_load_packages(deps, {requirepath = requirepath, - requires_extra = package:extraconf("deps") or {}, - parentinfo = requireinfo, - nodeps = opt.nodeps, - system = false})) do + local deps, plaindeps = _load_packages(package:get("deps"), {requirepath = requirepath, + requires_extra = package:extraconf("deps") or {}, + parentinfo = requireinfo, + nodeps = opt.nodeps, + system = false}) + for _, dep in ipairs(deps) do dep:parents_add(package) table.insert(packages, dep) packagedeps[dep:name()] = dep end package._DEPS = packagedeps + package._PLAINDEPS = plaindeps package._ORDERDEPS = table.unique(_sort_packagedeps(package)) package._LINKDEPS = table.unique(_sort_packagedeps(package, true)) end @@ -657,9 +654,10 @@ function _load_packages(requires, opt) -- save this package table.insert(packages, package) + table.insert(packages_nodeps, package) end end - return packages + return packages, packages_nodeps end -- get package parents string @@ -788,7 +786,7 @@ function load_packages(requires, opt) opt = opt or {} local unique = {} local packages = {} - for _, package in ipairs(_load_packages(requires, opt)) do + for _, package in ipairs((_load_packages(requires, opt))) do if package:is_toplevel() then _check_package_depconflicts(package) end |
