diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-04-26 09:53:41 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-04-26 09:53:41 +0200 |
commit | 54e24990203f5e123396a44297ea4656ed3b6101 (patch) | |
tree | d6581a15fa0fea6a5de7c7c7e5147f3d7c865cc9 /build/algorithm | |
parent | 478c521c09f1962e9d82a3fc4297e5cafb8c0758 (diff) |
Rework resolved prerequisite targets storage
Diffstat (limited to 'build/algorithm')
-rw-r--r-- | build/algorithm | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/build/algorithm b/build/algorithm index 7d82285..161baa2 100644 --- a/build/algorithm +++ b/build/algorithm @@ -14,7 +14,7 @@ namespace build class prerequisite; class prerequisite_key; - // The default prerequsite search implementation. It first calls the + // The default prerequisite search implementation. It first calls the // target-type-specific search function. If that doesn't yeld anything, // it creates a new target. // @@ -41,23 +41,19 @@ namespace build void search_and_match (action, target&); - // As above but ignores (does not match) prerequsites that are not + // As above but ignores (does not match) prerequisites that are not // in the same or a subdirectory of dir. // void search_and_match (action, target&, const dir_path& dir); - // Inject dependency on the parent directory fsdir{}, unless it is - // the project's out_root (or is outside of any project; think, for - // example, install directories). + // Inject dependency on the parent directory's fsdir{}, unless it is + // the project's out_root (or is outside of any project; say, for + // example, an install directory). // void inject_parent_fsdir (action, target&); - // Executor function type. - // - using executor_function = target_state (action, target&); - // Execute the action on target, assuming a rule has been matched // and the recipe for this action has been set. This is the default // executor implementation. @@ -66,27 +62,24 @@ namespace build execute (action, target&); // The default prerequisite execute implementation. It calls execute() - // on each non-ignored (non-NULL target) prerequisite in a loop. If this + // 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 // prerequisites. Returns target_state::changed if any of them were // changed and target_state::unchanged otherwise. It treats targets // with postponed execution the same as ignored. Note that this // function can be used as a recipe. // - template <executor_function* E = execute> target_state execute_prerequisites (action, target&); // As above but iterates over the prerequisites in reverse. // - template <executor_function* E = execute> target_state reverse_execute_prerequisites (action, target&); // A version of the above that also determines whether the action // needs to be executed on the target based on the passed timestamp. // - template <executor_function* E = execute> bool execute_prerequisites (action, target&, const timestamp&); @@ -95,9 +88,9 @@ namespace build // the target based on the passed timestamp and, if so, finds a // prerequisite of the specified type (e.g., a source file). If // there are multiple prerequisites of this type, then the last - // one returned. + // is returned. // - template <typename T, executor_function* E = execute> + template <typename T> T* execute_find_prerequisites (action, target&, const timestamp&); @@ -106,17 +99,15 @@ namespace build target_state noop_action (action, target&); - // Default action implementation which forwards to the prerequsites. - // Use default_recipe for the standard executor. + // Default action implementation which forwards to the prerequisites. + // Use default_recipe instead of using this function directly. // - template <executor_function* E = execute> target_state default_action (action, target&); // Standard perform(clean) action implementation for the file target // or derived. // - template <executor_function* E = execute> target_state perform_clean (action, target&); } |