|
Ninja
|
DyndepLoader loads dynamically discovered dependencies, as referenced via the "dyndep" attribute in build files. More...
#include <dyndep.h>
Public Member Functions | |
| DyndepLoader (State *state, DiskInterface *disk_interface, Explanations *explanations=nullptr) | |
| bool | LoadDyndeps (Node *node, DyndepFile *ddf, std::string *err) const |
| bool | LoadDyndeps (Node *node, std::string *err) const |
| Load a dyndep file from the given node's path and update the build graph with the new information. | |
Private Member Functions | |
| bool | LoadDyndepFile (Node *file, DyndepFile *ddf, std::string *err) const |
| bool | UpdateEdge (Edge *edge, Dyndeps const *dyndeps, std::string *err) const |
Private Attributes | |
| DiskInterface * | disk_interface_ |
| OptionalExplanations | explanations_ |
| State * | state_ |
DyndepLoader loads dynamically discovered dependencies, as referenced via the "dyndep" attribute in build files.
|
inline |
Definition at line 47 of file dyndep.h.
References disk_interface_, explanations_, and state_.
|
private |
Definition at line 118 of file dyndep.cc.
References disk_interface_, Parser::Load(), Node::path(), and state_.
Referenced by LoadDyndeps().
| bool DyndepLoader::LoadDyndeps | ( | Node * | node, |
| DyndepFile * | ddf, | ||
| std::string * | err ) const |
Definition at line 35 of file dyndep.cc.
References explanations_, LoadDyndepFile(), Node::out_edges(), Edge::outputs_, Node::path(), Node::set_dyndep_pending(), and UpdateEdge().
| bool DyndepLoader::LoadDyndeps | ( | Node * | node, |
| std::string * | err ) const |
Load a dyndep file from the given node's path and update the build graph with the new information.
One overload accepts a caller-owned 'DyndepFile' object in which to store the information loaded from the dyndep file.
Definition at line 30 of file dyndep.cc.
References LoadDyndeps().
Referenced by LoadDyndeps().
|
private |
Definition at line 81 of file dyndep.cc.
References BindingEnv::AddBinding(), Node::AddOutEdge(), Edge::env_, Edge::implicit_deps_, Dyndeps::implicit_inputs_, Dyndeps::implicit_outputs_, Edge::implicit_outs_, Node::in_edge(), Edge::inputs_, Edge::order_only_deps_, Edge::outputs_, Node::path(), Dyndeps::restat_, and Node::set_in_edge().
Referenced by LoadDyndeps().
|
private |
Definition at line 65 of file dyndep.h.
Referenced by DyndepLoader(), and LoadDyndepFile().
|
mutableprivate |
Definition at line 66 of file dyndep.h.
Referenced by DyndepLoader(), and LoadDyndeps().
|
private |
Definition at line 64 of file dyndep.h.
Referenced by DyndepLoader(), and LoadDyndepFile().