summaryrefslogtreecommitdiffstats
path: root/src/graph.cc
diff options
context:
space:
mode:
authorNico Weber <thakis@chromium.org>2013-06-03 23:37:57 (GMT)
committerNico Weber <thakis@chromium.org>2013-06-03 23:37:57 (GMT)
commitd2d0429489a77f8a61f4fb082e74db11f0bdfc43 (patch)
treea018542a4b4d80e4f63f1e83b98f03c0d163bcce /src/graph.cc
parent4df15104d532ad91b7a9d3c54985180a6c2f2533 (diff)
downloadNinja-d2d0429489a77f8a61f4fb082e74db11f0bdfc43.zip
Ninja-d2d0429489a77f8a61f4fb082e74db11f0bdfc43.tar.gz
Ninja-d2d0429489a77f8a61f4fb082e74db11f0bdfc43.tar.bz2
Fix restat builds with edges generating headers depended on through deps files
in deps mode. `ImplicitDepLoader::LoadDepFile()` already adds a depfile edge from every file mentioned in a depfile to the depfile's output. `ImplicitDepLoader::LoadDepsFromLog()` didn't do this yet, so add it. Else, if a restat rule clears a generated .h file, this wouldn't propagate to cc files depending on that .h file through a depfile. Fixues issue #590.
Diffstat (limited to 'src/graph.cc')
-rw-r--r--src/graph.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/graph.cc b/src/graph.cc
index b245e52..7a57753 100644
--- a/src/graph.cc
+++ b/src/graph.cc
@@ -418,6 +418,7 @@ bool ImplicitDepLoader::LoadDepsFromLog(Edge* edge, TimeStamp* deps_mtime,
PreallocateSpace(edge, deps->node_count);
for (int i = 0; i < deps->node_count; ++i, ++implicit_dep) {
*implicit_dep = deps->nodes[i];
+ deps->nodes[i]->AddOutEdge(edge);
CreatePhonyInEdge(*implicit_dep);
}
return true;