summaryrefslogtreecommitdiffstats
path: root/src/graph.cc
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2015-03-12 16:06:50 (GMT)
committerNico Weber <nicolasweber@gmx.de>2015-03-12 16:06:50 (GMT)
commit157a71f39b19d4fac43c814211c2093de205adab (patch)
tree99160d1b33ed65cb3c98f5062ead5af5ee4b0654 /src/graph.cc
parent8bab23be060ef6c79e35daa8e6deca18d00341f6 (diff)
downloadNinja-157a71f39b19d4fac43c814211c2093de205adab.zip
Ninja-157a71f39b19d4fac43c814211c2093de205adab.tar.gz
Ninja-157a71f39b19d4fac43c814211c2093de205adab.tar.bz2
On unexpected output in a .d file, rebuild instead erroring.
Fixes #417.
Diffstat (limited to 'src/graph.cc')
-rw-r--r--src/graph.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/graph.cc b/src/graph.cc
index cbf7921..76c4e9a 100644
--- a/src/graph.cc
+++ b/src/graph.cc
@@ -390,12 +390,13 @@ bool ImplicitDepLoader::LoadDepFile(Edge* edge, const string& path,
&depfile.out_.len_, &unused, err))
return false;
- // Check that this depfile matches the edge's output.
+ // Check that this depfile matches the edge's output, if not return false to
+ // mark the edge as dirty.
Node* first_output = edge->outputs_[0];
StringPiece opath = StringPiece(first_output->path());
if (opath != depfile.out_) {
- *err = "expected depfile '" + path + "' to mention '" +
- first_output->path() + "', got '" + depfile.out_.AsString() + "'";
+ EXPLAIN("expected depfile '%s' to mention '%s', got '%s'", path.c_str(),
+ first_output->path().c_str(), depfile.out_.AsString().c_str());
return false;
}