aboutsummaryrefslogtreecommitdiff
path: root/build/algorithm
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-06-26 17:25:10 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-06-26 17:25:10 +0200
commit18568ff0ff3dce89d694b494c5dfc9a32e63c9e6 (patch)
treecd36895fdab3b30b8b61fcc3e12f8a92bb292203 /build/algorithm
parent95239b7c5404965d4f5ef997b5b75bf542a25192 (diff)
Part two of dependency injection with auto-generation support
Diffstat (limited to 'build/algorithm')
-rw-r--r--build/algorithm11
1 files changed, 10 insertions, 1 deletions
diff --git a/build/algorithm b/build/algorithm
index 59021f5..ad53b95 100644
--- a/build/algorithm
+++ b/build/algorithm
@@ -66,7 +66,7 @@ namespace build
// in the same or a subdirectory of dir.
//
void
- search_and_match (action, target&, const dir_path& dir);
+ search_and_match (action, target&, const dir_path&);
// Unless already available, match, and, if necessary, execute
// (not yet implemented) the group in order to obtain its members
@@ -90,6 +90,15 @@ namespace build
target_state
execute (action, target&);
+ // A special version of the above that should be used for "direct"
+ // and "now" execution, that is, side-stepping the normal target-
+ // prerequisite relationship (so no dependents count is decremented)
+ // and execution order (so this function will never return postponed
+ // target state).
+ //
+ target_state
+ execute_direct (action, target&);
+
// The default prerequisite execute implementation. It calls execute()
// on each non-ignored (non-NULL) prerequisite target in a loop. If this
// target is a member of a group, then it first does this to the group's