summaryrefslogtreecommitdiffstats
path: root/src/build.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/build.cc')
-rw-r--r--src/build.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/build.cc b/src/build.cc
index deef7aa..2549553 100644
--- a/src/build.cc
+++ b/src/build.cc
@@ -372,17 +372,24 @@ Node* Builder::AddTarget(const string& name, string* err) {
*err = "unknown target: '" + name + "'";
return NULL;
}
+ if (!AddTarget(node, err))
+ return NULL;
+ return node;
+}
+
+bool Builder::AddTarget(Node* node, string* err) {
node->file_->StatIfNecessary(disk_interface_);
if (node->in_edge_) {
if (!node->in_edge_->RecomputeDirty(state_, disk_interface_, err))
- return NULL;
+ return false;
}
if (!node->dirty_)
- return NULL; // Intentionally no error.
+ return false; // Intentionally no error.
if (!plan_.AddTarget(node, err))
- return NULL;
- return node;
+ return false;
+
+ return true;
}
bool Builder::Build(string* err) {