diff options
Diffstat (limited to 'libbuild2/config/operation.cxx')
-rw-r--r-- | libbuild2/config/operation.cxx | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/libbuild2/config/operation.cxx b/libbuild2/config/operation.cxx index 6e7ef18..5c06f3c 100644 --- a/libbuild2/config/operation.cxx +++ b/libbuild2/config/operation.cxx @@ -302,8 +302,8 @@ namespace build2 continue; } - diag_record dr; - dr << warn (on) << "saving no longer used variable " << *var; + diag_record dr (warn (on)); + dr << "saving no longer used variable " << *var; info_import (dr, var->name); if (verb >= 2) info_value (dr, v); @@ -313,8 +313,8 @@ namespace build2 { if (r.second) // warn { - diag_record dr; - dr << warn (on) << "dropping no longer used variable " << *var; + diag_record dr (warn (on)); + dr << "dropping no longer used variable " << *var; info_import (dr, var->name); info_value (dr, v); } @@ -479,9 +479,8 @@ namespace build2 // if (checked && org == ovr) { - diag_record dr; - dr << warn (on) << "saving previously inherited variable " - << var; + diag_record dr (warn (on)); + dr << "saving previously inherited variable " << var; dr << info << "because project " << *r << " no longer uses " << "it in its configuration"; @@ -1018,8 +1017,20 @@ namespace build2 if (oif->operation_pre != nullptr) oif->operation_pre (ctx, {}, true /* inner */, location ()); + // Use perform_match() instead of direct match_sync() to handle + // posthoc targets (similar to dist). + // +#if 0 phase_lock pl (ctx, run_phase::match); match_sync (action (configure_id, id), t); +#else + action a (configure_id, id); + action_targets ts {&t}; + perform_match ({}, a, ts, + 1 /* diag (failures only) */, + false /* progress */); + perform_post_operation_callbacks (ctx, a, ts, false /*failed*/); +#endif if (oif->operation_post != nullptr) oif->operation_post (ctx, {}, true /* inner */); |