diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2023-07-19 15:14:45 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2023-07-19 16:47:00 +0300 |
commit | fb8c6c683463a1c18e29d4801bc4f5a33552bf0e (patch) | |
tree | f73afb261fb47f619fe7a7fd79d42e95f46506d0 /bpkg/pkg-build-collect.cxx | |
parent | c279979af18d59d935512d91c7e75762b914bdfd (diff) |
Don't reconfigure re-evaluated dependent if it's dependencies are not reconfigured
Diffstat (limited to 'bpkg/pkg-build-collect.cxx')
-rw-r--r-- | bpkg/pkg-build-collect.cxx | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/bpkg/pkg-build-collect.cxx b/bpkg/pkg-build-collect.cxx index c8173b2..729c145 100644 --- a/bpkg/pkg-build-collect.cxx +++ b/bpkg/pkg-build-collect.cxx @@ -4716,6 +4716,16 @@ namespace bpkg lazy_shared_ptr<repository_fragment>> rp ( find_available_fragment (o, pk.db, ed.selected)); + // Note that a re-evaluated package doesn't necessarily needs to + // be reconfigured and thus we don't add the + // build_package::adjust_reconfigure flag here. + // + // Specifically, if none of its dependencies get reconfigured, + // then it doesn't need to be reconfigured either since nothing + // changes for its config clauses. Otherwise, the + // build_package::adjust_reconfigure flag will be added normally + // by collect_order_dependents(). + // build_package p { build_package::build, pk.db, @@ -4740,7 +4750,6 @@ namespace bpkg set<package_key> ( // Required by (dependency). ds.begin (), ds.end ()), false, // Required by dependents. - build_package::adjust_reconfigure | build_package::build_reevaluate}; // Note: not recursive. @@ -5005,9 +5014,6 @@ namespace bpkg // Unless the dependency is already being reconfigured, reconfigure // it if its configuration changes. // - // Note that for configured dependents which belong to the - // configuration cluster this flag is already set (see above). - // if (!b->reconfigure ()) { const shared_ptr<selected_package>& sp (b->selected); |