15 #ifndef NINJA_MISSING_DEPS_H_
16 #define NINJA_MISSING_DEPS_H_
22 #include <unordered_map>
35 const Rule& generator) = 0;
40 void OnStats(
int nodes_processed,
int nodes_missing_deps,
41 int missing_dep_path_count,
int generated_nodes,
void OnStats(int nodes_processed, int nodes_missing_deps, int missing_dep_path_count, int generated_nodes, int generator_rules)
void OnMissingDep(Node *node, const std::string &path, const Rule &generator)
virtual ~MissingDependencyScannerDelegate()
virtual void OnMissingDep(Node *node, const std::string &path, const Rule &generator)=0
As build commands run they can output extra dependency information (e.g.
Interface for accessing the disk.
An edge in the dependency graph; links between Nodes using Rules.
MissingDependencyScanner(MissingDependencyScannerDelegate *delegate, DepsLog *deps_log, State *state, DiskInterface *disk_interface)
std::set< const Rule * > generator_rules_
bool PathExistsBetween(Edge *from, Edge *to)
MissingDependencyScannerDelegate * delegate_
std::unordered_map< Edge *, InnerAdjacencyMap > AdjacencyMap
std::set< Node * > generated_nodes_
void ProcessNode(Node *node)
std::unordered_map< Edge *, bool > InnerAdjacencyMap
void ProcessNodeDeps(Node *node, Node **dep_nodes, int dep_nodes_count)
DiskInterface * disk_interface_
std::set< Node * > nodes_missing_deps_
AdjacencyMap adjacency_map_
int missing_dep_path_count_
Information about a node in the dependency graph: the file, whether it's dirty, mtime,...
An invocable build command and associated metadata (description, etc.).
Global state (file status) for a single run.