aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/config/operation.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'libbuild2/config/operation.cxx')
-rw-r--r--libbuild2/config/operation.cxx25
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 */);