| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "tools/gn/builder.h" | 5 #include "tools/gn/builder.h" |
| 6 | 6 |
| 7 #include "tools/gn/config.h" | 7 #include "tools/gn/config.h" |
| 8 #include "tools/gn/err.h" | 8 #include "tools/gn/err.h" |
| 9 #include "tools/gn/loader.h" | 9 #include "tools/gn/loader.h" |
| 10 #include "tools/gn/scheduler.h" | 10 #include "tools/gn/scheduler.h" |
| (...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 !ResolveForwardDependentConfigs(target, err) || | 411 !ResolveForwardDependentConfigs(target, err) || |
| 412 !ResolveToolchain(target, err)) | 412 !ResolveToolchain(target, err)) |
| 413 return false; | 413 return false; |
| 414 } else if (record->type() == BuilderRecord::ITEM_TOOLCHAIN) { | 414 } else if (record->type() == BuilderRecord::ITEM_TOOLCHAIN) { |
| 415 Toolchain* toolchain = record->item()->AsToolchain(); | 415 Toolchain* toolchain = record->item()->AsToolchain(); |
| 416 if (!ResolveDeps(&toolchain->deps(), err)) | 416 if (!ResolveDeps(&toolchain->deps(), err)) |
| 417 return false; | 417 return false; |
| 418 } | 418 } |
| 419 | 419 |
| 420 record->set_resolved(true); | 420 record->set_resolved(true); |
| 421 record->item()->OnResolved(); | 421 |
| 422 if (!record->item()->OnResolved(err)) |
| 423 return false; |
| 422 if (!resolved_callback_.is_null()) | 424 if (!resolved_callback_.is_null()) |
| 423 resolved_callback_.Run(record); | 425 resolved_callback_.Run(record); |
| 424 | 426 |
| 425 // Recursively update everybody waiting on this item to be resolved. | 427 // Recursively update everybody waiting on this item to be resolved. |
| 426 BuilderRecordSet& waiting_set = record->waiting_on_resolution(); | 428 BuilderRecordSet& waiting_set = record->waiting_on_resolution(); |
| 427 for (BuilderRecordSet::iterator i = waiting_set.begin(); | 429 for (BuilderRecordSet::iterator i = waiting_set.begin(); |
| 428 i != waiting_set.end(); ++i) { | 430 i != waiting_set.end(); ++i) { |
| 429 BuilderRecord* waiting = *i; | 431 BuilderRecord* waiting = *i; |
| 430 DCHECK(waiting->unresolved_deps().find(record) != | 432 DCHECK(waiting->unresolved_deps().find(record) != |
| 431 waiting->unresolved_deps().end()); | 433 waiting->unresolved_deps().end()); |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 527 // Walk backwards since the dependency arrows point in the reverse direction. | 529 // Walk backwards since the dependency arrows point in the reverse direction. |
| 528 std::string ret; | 530 std::string ret; |
| 529 for (int i = static_cast<int>(cycle.size()) - 1; i >= 0; i--) { | 531 for (int i = static_cast<int>(cycle.size()) - 1; i >= 0; i--) { |
| 530 ret += " " + cycle[i]->label().GetUserVisibleName(false); | 532 ret += " " + cycle[i]->label().GetUserVisibleName(false); |
| 531 if (i != 0) | 533 if (i != 0) |
| 532 ret += " ->\n"; | 534 ret += " ->\n"; |
| 533 } | 535 } |
| 534 | 536 |
| 535 return ret; | 537 return ret; |
| 536 } | 538 } |
| OLD | NEW |