| 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 <stddef.h> |    7 #include <stddef.h> | 
|    8 #include <utility> |    8 #include <utility> | 
|    9  |    9  | 
|   10 #include "tools/gn/config.h" |   10 #include "tools/gn/config.h" | 
| (...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  397       BuilderRecord::ITEM_TOOLCHAIN, err); |  397       BuilderRecord::ITEM_TOOLCHAIN, err); | 
|  398   if (!toolchain_record) |  398   if (!toolchain_record) | 
|  399     return false; |  399     return false; | 
|  400   record->AddDep(toolchain_record); |  400   record->AddDep(toolchain_record); | 
|  401  |  401  | 
|  402   return true; |  402   return true; | 
|  403 } |  403 } | 
|  404  |  404  | 
|  405 void Builder::RecursiveSetShouldGenerate(BuilderRecord* record, |  405 void Builder::RecursiveSetShouldGenerate(BuilderRecord* record, | 
|  406                                          bool force) { |  406                                          bool force) { | 
|  407   if (!force && record->should_generate()) |  407   if (!record->should_generate()) { | 
|  408     return;  // Already set. |  408     record->set_should_generate(true); | 
|  409   record->set_should_generate(true); |  409  | 
 |  410     // This may have caused the item to go into "resolved and generated" state. | 
 |  411     if (record->resolved() && !resolved_and_generated_callback_.is_null()) | 
 |  412       resolved_and_generated_callback_.Run(record); | 
 |  413   } else if (!force) { | 
 |  414     return;  // Already set and we're not required to iterate dependencies. | 
 |  415   } | 
|  410  |  416  | 
|  411   for (auto* cur : record->all_deps()) { |  417   for (auto* cur : record->all_deps()) { | 
|  412     if (!cur->should_generate()) { |  418     if (!cur->should_generate()) { | 
|  413       ScheduleItemLoadIfNecessary(cur); |  419       ScheduleItemLoadIfNecessary(cur); | 
|  414       RecursiveSetShouldGenerate(cur, false); |  420       RecursiveSetShouldGenerate(cur, false); | 
|  415     } |  421     } | 
|  416   } |  422   } | 
|  417 } |  423 } | 
|  418  |  424  | 
|  419 void Builder::ScheduleItemLoadIfNecessary(BuilderRecord* record) { |  425 void Builder::ScheduleItemLoadIfNecessary(BuilderRecord* record) { | 
| (...skipping 24 matching lines...) Expand all  Loading... | 
|  444     if (!ResolveDeps(&toolchain->deps(), err)) |  450     if (!ResolveDeps(&toolchain->deps(), err)) | 
|  445       return false; |  451       return false; | 
|  446     if (!ResolvePools(toolchain, err)) |  452     if (!ResolvePools(toolchain, err)) | 
|  447       return false; |  453       return false; | 
|  448   } |  454   } | 
|  449  |  455  | 
|  450   record->set_resolved(true); |  456   record->set_resolved(true); | 
|  451  |  457  | 
|  452   if (!record->item()->OnResolved(err)) |  458   if (!record->item()->OnResolved(err)) | 
|  453     return false; |  459     return false; | 
|  454   if (!resolved_callback_.is_null()) |  460   if (record->should_generate() && !resolved_and_generated_callback_.is_null()) | 
|  455     resolved_callback_.Run(record); |  461     resolved_and_generated_callback_.Run(record); | 
|  456  |  462  | 
|  457   // Recursively update everybody waiting on this item to be resolved. |  463   // Recursively update everybody waiting on this item to be resolved. | 
|  458   for (BuilderRecord* waiting : record->waiting_on_resolution()) { |  464   for (BuilderRecord* waiting : record->waiting_on_resolution()) { | 
|  459     DCHECK(waiting->unresolved_deps().find(record) != |  465     DCHECK(waiting->unresolved_deps().find(record) != | 
|  460            waiting->unresolved_deps().end()); |  466            waiting->unresolved_deps().end()); | 
|  461     waiting->unresolved_deps().erase(record); |  467     waiting->unresolved_deps().erase(record); | 
|  462  |  468  | 
|  463     if (waiting->can_resolve()) { |  469     if (waiting->can_resolve()) { | 
|  464       if (!ResolveItem(waiting, err)) |  470       if (!ResolveItem(waiting, err)) | 
|  465         return false; |  471         return false; | 
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  545   std::string ret; |  551   std::string ret; | 
|  546   for (size_t i = 0; i < cycle.size(); i++) { |  552   for (size_t i = 0; i < cycle.size(); i++) { | 
|  547     ret += "  " + cycle[i]->label().GetUserVisibleName(false); |  553     ret += "  " + cycle[i]->label().GetUserVisibleName(false); | 
|  548     if (i != cycle.size() - 1) |  554     if (i != cycle.size() - 1) | 
|  549       ret += " ->"; |  555       ret += " ->"; | 
|  550     ret += "\n"; |  556     ret += "\n"; | 
|  551   } |  557   } | 
|  552  |  558  | 
|  553   return ret; |  559   return ret; | 
|  554 } |  560 } | 
| OLD | NEW |