diff options
| author | ruki <[email protected]> | 2021-05-27 22:42:29 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-05-27 22:42:29 +0800 |
| commit | 57538bd32331d415730e0a82715d25f887bbc84a (patch) | |
| tree | 10eea582f96c0c827c05d0ace1273c7ac5749e81 | |
| parent | 9fad7ea8b4e495b011a5157e5666b76898b91882 (diff) | |
replace package deps and parents
| -rw-r--r-- | xmake/modules/private/action/require/impl/install_packages.lua | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/xmake/modules/private/action/require/impl/install_packages.lua b/xmake/modules/private/action/require/impl/install_packages.lua index 773e5fd6e..97d0d18ba 100644 --- a/xmake/modules/private/action/require/impl/install_packages.lua +++ b/xmake/modules/private/action/require/impl/install_packages.lua @@ -52,6 +52,43 @@ function _replace_package(packages, instance, extinstance) if rawinstance == instance then packages[idx] = extinstance end + local deps = rawinstance._DEPS + for name, dep in pairs(deps) do + if dep == instance then + deps[name] = nil + deps[extinstance:name()] = extinstance + break + end + end + local parents = rawinstance._PARENTS + for name, parent in pairs(parents) do + if parent == instance then + parents[name] = nil + parents[extinstance:name()] = extinstance + break + end + end + local orderdeps = rawinstance._ORDERDEPS + for depidx, dep in ipairs(orderdeps) do + if dep == instance then + orderdeps[depidx] = extinstance + break + end + end + local linkdeps = rawinstance._LINKDEPS + for depidx, dep in ipairs(linkdeps) do + if dep == instance then + linkdeps[depidx] = extinstance + break + end + end + local plaindeps = rawinstance._PLAINDEPS + for depidx, dep in ipairs(rawinstance._PLAINDEPS) do + if dep == instance then + plaindeps[depidx] = extinstance + break + end + end end end |
