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, 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 | |
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 445 of file graph.cc.
References Node::in_edge(), State::kPhonyRule, Edge::outputs_, Edge::outputs_ready_, and Node::set_in_edge().
|
private |
Load implicit dependencies for edge from a depfile attribute.
Definition at line 361 of file graph.cc.
References Node::AddOutEdge(), StringPiece::AsString(), CanonicalizePath(), EXPLAIN, DepfileParser::ins_, METRIC_RECORD, DepfileParser::out_, Edge::outputs_, DepfileParser::Parse(), and Node::path().
bool ImplicitDepLoader::LoadDeps | ( | Edge * | edge, |
string * | err | ||
) |
Load implicit dependencies for edge.
Definition at line 348 of file graph.cc.
References Edge::GetBinding(), and Edge::GetUnescapedDepfile().
|
private |
Load implicit dependencies for edge from the DepsLog.
Definition at line 410 of file graph.cc.
References Node::AddOutEdge(), EXPLAIN, Node::mtime(), DepsLog::Deps::mtime, DepsLog::Deps::node_count, DepsLog::Deps::nodes, Edge::outputs_, and Node::path().
Preallocate count spaces in the input array on edge, returning an iterator pointing at the first new space.
Definition at line 437 of file graph.cc.
References Edge::implicit_deps_, Edge::inputs_, and Edge::order_only_deps_.
|
private |