diff options
author | Nico Weber <thakis@chromium.org> | 2013-06-03 23:37:57 (GMT) |
---|---|---|
committer | Nico Weber <thakis@chromium.org> | 2013-06-03 23:37:57 (GMT) |
commit | d2d0429489a77f8a61f4fb082e74db11f0bdfc43 (patch) | |
tree | a018542a4b4d80e4f63f1e83b98f03c0d163bcce /src/graph.cc | |
parent | 4df15104d532ad91b7a9d3c54985180a6c2f2533 (diff) | |
download | Ninja-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.cc | 1 |
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; |