|
Ninja
|
ImplicitDepLoader loads implicit dependencies, as referenced via the "depfile" attribute in build files. More...
#include <graph.h>
Public Member Functions | |
| DepsLog * | deps_log () const |
| ImplicitDepLoader (State *state, DepsLog *deps_log, DiskInterface *disk_interface, DepfileParserOptions const *depfile_parser_options) | |
| bool | LoadDeps (Edge *edge, string *err) |
| Load implicit dependencies for edge. More... | |
Private Member Functions | |
| void | CreatePhonyInEdge (Node *node) |
| If we don't have a edge that generates this input already, create one; this makes us not abort if the input is missing, but instead will rebuild in that circumstance. More... | |
| bool | LoadDepFile (Edge *edge, const string &path, string *err) |
| Load implicit dependencies for edge from a depfile attribute. More... | |
| bool | LoadDepsFromLog (Edge *edge, string *err) |
| Load implicit dependencies for edge from the DepsLog. More... | |
| vector< Node * >::iterator | PreallocateSpace (Edge *edge, int count) |
| Preallocate count spaces in the input array on edge, returning an iterator pointing at the first new space. More... | |
Private Attributes | |
| DepfileParserOptions const * | depfile_parser_options_ |
| DepsLog * | deps_log_ |
| DiskInterface * | disk_interface_ |
| State * | state_ |
ImplicitDepLoader loads implicit dependencies, as referenced via the "depfile" attribute in build files.
|
inline |
|
private |
If we don't have a edge that generates this input already, create one; this makes us not abort if the input is missing, but instead will rebuild in that circumstance.
Definition at line 576 of file graph.cc.
References State::AddEdge(), Node::in_edge(), State::kPhonyRule, Edge::outputs_, Edge::outputs_ready_, Node::set_in_edge(), and state_.
Referenced by LoadDepFile(), and LoadDepsFromLog().
|
private |
Load implicit dependencies for edge from a depfile attribute.
Definition at line 473 of file graph.cc.
References Node::AddOutEdge(), StringPiece::AsString(), CanonicalizePath(), CreatePhonyInEdge(), depfile_parser_options_, disk_interface_, EXPLAIN, State::GetNode(), DepfileParser::ins_, StringPiece::len_, METRIC_RECORD, FileReader::NotFound, FileReader::Okay, FileReader::OtherError, DepfileParser::out_, Edge::outputs_, DepfileParser::Parse(), Node::path(), PreallocateSpace(), FileReader::ReadFile(), state_, and StringPiece::str_.
Referenced by LoadDeps().
| bool ImplicitDepLoader::LoadDeps | ( | Edge * | edge, |
| string * | err | ||
| ) |
Load implicit dependencies for edge.
Definition at line 460 of file graph.cc.
References Edge::GetBinding(), Edge::GetUnescapedDepfile(), LoadDepFile(), and LoadDepsFromLog().
Referenced by DependencyScan::RecomputeDirty().
|
private |
Load implicit dependencies for edge from the DepsLog.
Definition at line 541 of file graph.cc.
References Node::AddOutEdge(), CreatePhonyInEdge(), deps_log_, EXPLAIN, DepsLog::GetDeps(), DepsLog::Deps::mtime, Node::mtime(), DepsLog::Deps::node_count, DepsLog::Deps::nodes, Edge::outputs_, Node::path(), PreallocateSpace(), and PRId64.
Referenced by LoadDeps().
Preallocate count spaces in the input array on edge, returning an iterator pointing at the first new space.
Definition at line 568 of file graph.cc.
References Edge::implicit_deps_, Edge::inputs_, and Edge::order_only_deps_.
Referenced by LoadDepFile(), and LoadDepsFromLog().
|
private |
Definition at line 248 of file graph.h.
Referenced by LoadDepFile().
|
private |
Definition at line 247 of file graph.h.
Referenced by LoadDepsFromLog().
|
private |
Definition at line 246 of file graph.h.
Referenced by LoadDepFile().
|
private |
Definition at line 245 of file graph.h.
Referenced by CreatePhonyInEdge(), and LoadDepFile().
1.8.14