diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2016-08-31 12:22:46 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-08-31 12:22:46 +0200 |
commit | 89a2881d1128fd799479aca1883687553a359395 (patch) | |
tree | 8cd310eb41ac60bdcd05ba41c293bed6a44a94e8 | |
parent | 3d8f2b3779ae32a16627a0f09f1798224cdaf68f (diff) |
Compile first source file, not last
Some source files may include other files of the same type which can get
injected at the end.
-rw-r--r-- | build2/algorithm | 12 | ||||
-rw-r--r-- | build2/algorithm.cxx | 2 |
2 files changed, 7 insertions, 7 deletions
diff --git a/build2/algorithm b/build2/algorithm index 9f43475..db2ccca 100644 --- a/build2/algorithm +++ b/build2/algorithm @@ -190,12 +190,12 @@ namespace build2 bool execute_prerequisites (action, target&, const timestamp&); - // Another version of the above that does two extra things for the - // caller: it determines whether the action needs to be executed on - // 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 - // is returned. + // Another version of the above that does two extra things for the caller: + // it determines whether the action needs to be executed on 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 first is returned (this can become important if additional + // prerequisites of the same type may get injected). // template <typename T> T* diff --git a/build2/algorithm.cxx b/build2/algorithm.cxx index 6b28232..8dc5621 100644 --- a/build2/algorithm.cxx +++ b/build2/algorithm.cxx @@ -494,7 +494,7 @@ namespace build2 } } - if (pt->is_a (tt)) + if (r == nullptr && pt->is_a (tt)) r = pt; } |