Lines Matching refs:edge
159 /// For each edge, lookup in build log how long it took last time,
160 /// and record that in the edge itself. It will be used for ETA predicton.
176 // have an in edge if one of its inputs is another output that's in the deps
177 // log, but having a deps edge product an output that's input to another deps
178 // edge is rare, and the first recompaction will delete all old outputs from
297 for (Edge* edge : state_.edges_) {
298 for (Node* out : edge->outputs_) {
301 continue; // Maybe we'll have log entry for next output of this edge?
302 edge->prev_elapsed_time_millis =
304 break; // Onto next edge.
331 *err = "'" + path + "' has no out edge";
336 Edge* edge = node->out_edges()[0];
337 if (edge->outputs_.empty()) {
338 edge->Dump();
339 Fatal("edge has no outputs");
341 node = edge->outputs_[0];
412 if (Edge* edge = node->in_edge()) {
413 if (edge->dyndep_ && edge->dyndep_->dyndep_pending()) {
414 if (!dyndep_loader.LoadDyndeps(edge->dyndep_, &err)) {
418 printf(" input: %s\n", edge->rule_->name().c_str());
419 for (int in = 0; in < (int)edge->inputs_.size(); in++) {
421 if (edge->is_implicit(in))
423 else if (edge->is_order_only(in))
425 printf(" %s%s\n", label, edge->inputs_[in]->path().c_str());
427 if (!edge->validations_.empty()) {
429 for (std::vector<Node*>::iterator validation = edge->validations_.begin();
430 validation != edge->validations_.end(); ++validation) {
436 for (vector<Edge*>::const_iterator edge = node->out_edges().begin();
437 edge != node->out_edges().end(); ++edge) {
438 for (vector<Node*>::iterator out = (*edge)->outputs_.begin();
439 out != (*edge)->outputs_.end(); ++out) {
446 for (std::vector<Edge*>::const_iterator edge = validation_edges.begin();
447 edge != validation_edges.end(); ++edge) {
448 for (vector<Node*>::iterator out = (*edge)->outputs_.begin();
449 out != (*edge)->outputs_.end(); ++out) {
709 void PrintCommands(Edge* edge, EdgeSet* seen, PrintCommandMode mode) {
710 if (!edge)
712 if (!seen->insert(edge).second)
716 for (vector<Node*>::iterator in = edge->inputs_.begin();
717 in != edge->inputs_.end(); ++in)
721 if (!edge->is_phony())
722 puts(edge->EvaluateCommand().c_str());
767 void CollectInputs(Edge* edge, std::set<Edge*>* seen,
769 if (!edge)
771 if (!seen->insert(edge).second)
774 for (vector<Node*>::iterator in = edge->inputs_.begin();
775 in != edge->inputs_.end(); ++in)
778 if (!edge->is_phony()) {
779 edge->CollectInputs(true, result);
891 std::string EvaluateCommandWithRspfile(const Edge* edge,
893 string command = edge->EvaluateCommand();
897 string rspfile = edge->GetUnescapedRspfile();
908 string rspfile_content = edge->GetBinding("rspfile_content");
925 void printCompdb(const char* const directory, const Edge* const edge,
930 PrintJSONString(EvaluateCommandWithRspfile(edge, eval_mode));
932 PrintJSONString(edge->inputs_[0]->path());
934 PrintJSONString(edge->outputs_[0]->path());