| 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/deps_iterator.h" | 8 #include "tools/gn/deps_iterator.h" |
| 9 #include "tools/gn/err.h" | 9 #include "tools/gn/err.h" |
| 10 #include "tools/gn/loader.h" | 10 #include "tools/gn/loader.h" |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 } | 81 } |
| 82 | 82 |
| 83 record->set_item(item.Pass()); | 83 record->set_item(item.Pass()); |
| 84 | 84 |
| 85 // Do target-specific dependency setup. This will also schedule dependency | 85 // Do target-specific dependency setup. This will also schedule dependency |
| 86 // loads for targets that are required. | 86 // loads for targets that are required. |
| 87 switch (type) { | 87 switch (type) { |
| 88 case BuilderRecord::ITEM_TARGET: | 88 case BuilderRecord::ITEM_TARGET: |
| 89 TargetDefined(record, &err); | 89 TargetDefined(record, &err); |
| 90 break; | 90 break; |
| 91 case BuilderRecord::ITEM_CONFIG: |
| 92 ConfigDefined(record, &err); |
| 93 break; |
| 91 case BuilderRecord::ITEM_TOOLCHAIN: | 94 case BuilderRecord::ITEM_TOOLCHAIN: |
| 92 ToolchainDefined(record, &err); | 95 ToolchainDefined(record, &err); |
| 93 break; | 96 break; |
| 94 default: | 97 default: |
| 95 break; | 98 break; |
| 96 } | 99 } |
| 97 if (err.has_error()) { | 100 if (err.has_error()) { |
| 98 g_scheduler->FailWithError(err); | 101 g_scheduler->FailWithError(err); |
| 99 return; | 102 return; |
| 100 } | 103 } |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 226 // All targets in the default toolchain get generated by default. We also | 229 // All targets in the default toolchain get generated by default. We also |
| 227 // check if this target was previously marked as "required" and force setting | 230 // check if this target was previously marked as "required" and force setting |
| 228 // the bit again so the target's dependencies (which we now know) get the | 231 // the bit again so the target's dependencies (which we now know) get the |
| 229 // required bit pushed to them. | 232 // required bit pushed to them. |
| 230 if (record->should_generate() || target->settings()->is_default()) | 233 if (record->should_generate() || target->settings()->is_default()) |
| 231 RecursiveSetShouldGenerate(record, true); | 234 RecursiveSetShouldGenerate(record, true); |
| 232 | 235 |
| 233 return true; | 236 return true; |
| 234 } | 237 } |
| 235 | 238 |
| 239 bool Builder::ConfigDefined(BuilderRecord* record, Err* err) { |
| 240 Config* config = record->item()->AsConfig(); |
| 241 if (!AddDeps(record, config->configs(), err)) |
| 242 return false; |
| 243 return true; |
| 244 } |
| 245 |
| 236 bool Builder::ToolchainDefined(BuilderRecord* record, Err* err) { | 246 bool Builder::ToolchainDefined(BuilderRecord* record, Err* err) { |
| 237 Toolchain* toolchain = record->item()->AsToolchain(); | 247 Toolchain* toolchain = record->item()->AsToolchain(); |
| 238 | 248 |
| 239 if (!AddDeps(record, toolchain->deps(), err)) | 249 if (!AddDeps(record, toolchain->deps(), err)) |
| 240 return false; | 250 return false; |
| 241 | 251 |
| 242 // The default toolchain gets generated by default. Also propogate the | 252 // The default toolchain gets generated by default. Also propogate the |
| 243 // generate flag if it depends on items in a non-default toolchain. | 253 // generate flag if it depends on items in a non-default toolchain. |
| 244 if (record->should_generate() || | 254 if (record->should_generate() || |
| 245 toolchain->settings()->default_toolchain_label() == toolchain->label()) | 255 toolchain->settings()->default_toolchain_label() == toolchain->label()) |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 391 Target* target = record->item()->AsTarget(); | 401 Target* target = record->item()->AsTarget(); |
| 392 if (!ResolveDeps(&target->public_deps(), err) || | 402 if (!ResolveDeps(&target->public_deps(), err) || |
| 393 !ResolveDeps(&target->private_deps(), err) || | 403 !ResolveDeps(&target->private_deps(), err) || |
| 394 !ResolveDeps(&target->data_deps(), err) || | 404 !ResolveDeps(&target->data_deps(), err) || |
| 395 !ResolveConfigs(&target->configs(), err) || | 405 !ResolveConfigs(&target->configs(), err) || |
| 396 !ResolveConfigs(&target->all_dependent_configs(), err) || | 406 !ResolveConfigs(&target->all_dependent_configs(), err) || |
| 397 !ResolveConfigs(&target->public_configs(), err) || | 407 !ResolveConfigs(&target->public_configs(), err) || |
| 398 !ResolveForwardDependentConfigs(target, err) || | 408 !ResolveForwardDependentConfigs(target, err) || |
| 399 !ResolveToolchain(target, err)) | 409 !ResolveToolchain(target, err)) |
| 400 return false; | 410 return false; |
| 411 } else if (record->type() == BuilderRecord::ITEM_CONFIG) { |
| 412 Config* config = record->item()->AsConfig(); |
| 413 if (!ResolveConfigs(&config->configs(), err)) |
| 414 return false; |
| 401 } else if (record->type() == BuilderRecord::ITEM_TOOLCHAIN) { | 415 } else if (record->type() == BuilderRecord::ITEM_TOOLCHAIN) { |
| 402 Toolchain* toolchain = record->item()->AsToolchain(); | 416 Toolchain* toolchain = record->item()->AsToolchain(); |
| 403 if (!ResolveDeps(&toolchain->deps(), err)) | 417 if (!ResolveDeps(&toolchain->deps(), err)) |
| 404 return false; | 418 return false; |
| 405 } | 419 } |
| 406 | 420 |
| 407 record->set_resolved(true); | 421 record->set_resolved(true); |
| 408 | 422 |
| 409 if (!record->item()->OnResolved(err)) | 423 if (!record->item()->OnResolved(err)) |
| 410 return false; | 424 return false; |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 510 std::string ret; | 524 std::string ret; |
| 511 for (size_t i = 0; i < cycle.size(); i++) { | 525 for (size_t i = 0; i < cycle.size(); i++) { |
| 512 ret += " " + cycle[i]->label().GetUserVisibleName(false); | 526 ret += " " + cycle[i]->label().GetUserVisibleName(false); |
| 513 if (i != cycle.size() - 1) | 527 if (i != cycle.size() - 1) |
| 514 ret += " ->"; | 528 ret += " ->"; |
| 515 ret += "\n"; | 529 ret += "\n"; |
| 516 } | 530 } |
| 517 | 531 |
| 518 return ret; | 532 return ret; |
| 519 } | 533 } |
| OLD | NEW |