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) | |
bool | LoadDeps (Edge *edge, TimeStamp *mtime, 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, TimeStamp *mtime, 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 | |
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 435 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 362 of file graph.cc.
References Node::AddOutEdge(), StringPiece::AsString(), CanonicalizePath(), CreatePhonyInEdge(), disk_interface_, State::GetNode(), DepfileParser::ins_, METRIC_RECORD, DepfileParser::out_, Edge::outputs_, DepfileParser::Parse(), Node::path(), PreallocateSpace(), DiskInterface::ReadFile(), and state_.
Referenced by LoadDeps().
Load implicit dependencies for edge.
May fill in mtime with the timestamp of the loaded information.
Definition at line 335 of file graph.cc.
References EXPLAIN, Edge::GetBinding(), LoadDepFile(), LoadDepsFromLog(), and Edge::outputs_.
Referenced by DependencyScan::RecomputeDirty().
Load implicit dependencies for edge from the DepsLog.
Definition at line 409 of file graph.cc.
References Node::AddOutEdge(), CreatePhonyInEdge(), deps_log_, DepsLog::GetDeps(), DepsLog::Deps::mtime, DepsLog::Deps::node_count, DepsLog::Deps::nodes, Edge::outputs_, and PreallocateSpace().
Referenced by LoadDeps().
Preallocate count spaces in the input array on edge, returning an iterator pointing at the first new space.
Definition at line 427 of file graph.cc.
References Edge::implicit_deps_, Edge::inputs_, and Edge::order_only_deps_.
Referenced by LoadDepFile(), and LoadDepsFromLog().
|
private |
Definition at line 224 of file graph.h.
Referenced by LoadDepsFromLog().
|
private |
Definition at line 223 of file graph.h.
Referenced by LoadDepFile().
|
private |
Definition at line 222 of file graph.h.
Referenced by CreatePhonyInEdge(), and LoadDepFile().