diff options
| author | ruki <[email protected]> | 2024-01-03 23:47:53 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-01-03 23:47:53 +0800 |
| commit | 76f21280af93d9826fb2ec43bf19df16cfd7f29e (patch) | |
| tree | b5a81686d28153399322be60632aa31b66616915 | |
| parent | 817dbbb9766ec2dc22665346dccd624db27b3645 (diff) | |
| parent | 1208a32b30687ede7acacc129d1b2019aae5eaed (diff) | |
Merge pull request #4562 from xmake-io/packagedeps
fix package deps #4522
| -rw-r--r-- | xmake/modules/private/action/require/impl/package.lua | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua index a06698a02..8bbeeee45 100644 --- a/xmake/modules/private/action/require/impl/package.lua +++ b/xmake/modules/private/action/require/impl/package.lua @@ -951,24 +951,26 @@ function _load_packages(requires, opt) if package:get("deps") and opt.nodeps ~= true then -- load dependent packages and do not load system/3rd packages for package/deps() - local packagedeps = {} - local deps, plaindeps = _load_packages(package:get("deps"), {requirepath = requirepath, + local _, 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 - table.insert(packages, dep) - packagedeps[dep:name()] = dep - end for _, dep in ipairs(plaindeps) do dep:parents_add(package) end - package._DEPS = packagedeps package._PLAINDEPS = plaindeps package._ORDERDEPS = table.unique(_sort_packagedeps(package)) package._LIBRARYDEPS = table.reverse_unique(_sort_librarydeps(package)) package._LIBRARYDEPS_WITH_PRIVATE = table.reverse_unique(_sort_librarydeps(package, {private = true})) + -- we always need load dependences everytime + -- @see https://github.com/xmake-io/xmake/issues/4522 + local packagedeps = {} + for _, dep in ipairs(package._ORDERDEPS) do + table.insert(packages, dep) + packagedeps[dep:name()] = dep + end + package._DEPS = packagedeps end end |
