diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-07-20 17:35:47 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-07-20 17:35:47 +0200 |
commit | cb8399da1f0b1c5f28e443c98bfc3cb4e12b8cbf (patch) | |
tree | 434f2137e8ccac53bf6ec8a62bab501363d898f4 /build/config/operation.cxx | |
parent | f0aca8db08518ab7f66a8c86200616fed8bcc8d4 (diff) |
Implement pre/post operation support
Also, extend execution mode/postponed logic to propagate the postponed
target state. At the top, we now re-try postponed targets. This results
in the expected behavior when, for example, cleaning two targets with
one depending on the other.
Diffstat (limited to 'build/config/operation.cxx')
-rw-r--r-- | build/config/operation.cxx | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/build/config/operation.cxx b/build/config/operation.cxx index 48d4d19..a79ddbf 100644 --- a/build/config/operation.cxx +++ b/build/config/operation.cxx @@ -215,6 +215,7 @@ namespace build nullptr, // meta-operation pre &configure_operation_pre, &load, // normal load + &search, // normal search &match, // normal match &configure_execute, nullptr, // operation post @@ -244,17 +245,19 @@ namespace build } static void - disfigure_match (action, - scope& root, - const target_key&, - const location&, - action_targets& ts) + disfigure_search (scope& root, + const target_key&, + const location&, + action_targets& ts) { - tracer trace ("disfigure_match"); + tracer trace ("disfigure_search"); level5 ([&]{trace << "collecting " << root.path ();}); ts.push_back (&root); } + static void + disfigure_match (action, action_targets&) {} + static bool disfigure_project (action a, scope& root) { @@ -403,6 +406,7 @@ namespace build nullptr, // meta-operation pre &disfigure_operation_pre, &disfigure_load, + &disfigure_search, &disfigure_match, &disfigure_execute, nullptr, // operation post |