42 DelayedEdges::iterator it =
delayed_.begin();
47 ready_queue->insert(edge);
56 for (DelayedEdges::const_iterator it =
delayed_.begin();
68 return ((weight_diff < 0) || (weight_diff == 0 && a < b));
85 map<string, const Rule*>::iterator i =
rules_.find(rule_name);
97 map<string, Pool*>::iterator i =
pools_.find(pool_name);
123 Paths::iterator i =
paths_.find(path);
130 const bool kAllowReplacements =
true;
131 const int kMaxValidEditDistance = 3;
133 int min_distance = kMaxValidEditDistance + 1;
135 for (Paths::iterator i =
paths_.begin(); i !=
paths_.end(); ++i) {
137 i->first, path, kAllowReplacements, kMaxValidEditDistance);
138 if (distance < min_distance && i->second) {
139 min_distance = distance;
156 Warning(
"multiple rules generate %s. "
157 "builds involving this target will not be correct; "
167 *err =
"unknown target '" + path.
AsString() +
"'";
175 vector<Node*> root_nodes;
177 for (vector<Edge*>::iterator e =
edges_.begin(); e !=
edges_.end(); ++e) {
178 for (vector<Node*>::iterator out = (*e)->outputs_.begin();
179 out != (*e)->outputs_.end(); ++out) {
180 if ((*out)->out_edges().empty())
181 root_nodes.push_back(*out);
185 if (!
edges_.empty() && root_nodes.empty())
186 *err =
"could not determine root nodes of build graph";
188 assert(
edges_.empty() || !root_nodes.empty());
197 for (Paths::iterator i =
paths_.begin(); i !=
paths_.end(); ++i)
198 i->second->ResetState();
199 for (vector<Edge*>::iterator e =
edges_.begin(); e !=
edges_.end(); ++e)
200 (*e)->outputs_ready_ =
false;
204 for (Paths::iterator i =
paths_.begin(); i !=
paths_.end(); ++i) {
205 Node* node = i->second;
206 printf(
"%s %s [id:%d]\n",
207 node->
path().c_str(),
213 printf(
"resource_pools:\n");
214 for (map<string, Pool*>::const_iterator it =
pools_.begin();
217 if (!it->second->name().empty()) {