Chromium Code Reviews| 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/loader.h" | 5 #include "tools/gn/loader.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
| 9 #include "base/threading/thread_task_runner_handle.h" | 9 #include "base/threading/thread_task_runner_handle.h" |
| 10 #include "tools/gn/build_settings.h" | 10 #include "tools/gn/build_settings.h" |
| 11 #include "tools/gn/err.h" | 11 #include "tools/gn/err.h" |
| 12 #include "tools/gn/filesystem_utils.h" | 12 #include "tools/gn/filesystem_utils.h" |
| 13 #include "tools/gn/functions.h" | |
| 13 #include "tools/gn/input_file_manager.h" | 14 #include "tools/gn/input_file_manager.h" |
| 14 #include "tools/gn/parse_tree.h" | 15 #include "tools/gn/parse_tree.h" |
| 16 #include "tools/gn/pool.h" | |
| 15 #include "tools/gn/scheduler.h" | 17 #include "tools/gn/scheduler.h" |
| 16 #include "tools/gn/scope_per_file_provider.h" | 18 #include "tools/gn/scope_per_file_provider.h" |
| 17 #include "tools/gn/settings.h" | 19 #include "tools/gn/settings.h" |
| 18 #include "tools/gn/source_dir.h" | 20 #include "tools/gn/source_dir.h" |
| 19 #include "tools/gn/source_file.h" | 21 #include "tools/gn/source_file.h" |
| 20 #include "tools/gn/trace.h" | 22 #include "tools/gn/trace.h" |
| 23 #include "tools/gn/variables.h" | |
| 21 | 24 |
| 22 namespace { | 25 namespace { |
| 23 | 26 |
| 24 struct SourceFileAndOrigin { | 27 struct SourceFileAndOrigin { |
| 25 SourceFileAndOrigin(const SourceFile& f, const LocationRange& o) | 28 SourceFileAndOrigin(const SourceFile& f, const LocationRange& o) |
| 26 : file(f), | 29 : file(f), |
| 27 origin(o) { | 30 origin(o) { |
| 28 } | 31 } |
| 29 | 32 |
| 30 SourceFile file; | 33 SourceFile file; |
| (...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 332 g_scheduler->FailWithError(Err(Location(), | 335 g_scheduler->FailWithError(Err(Location(), |
| 333 "The default build config file did not call set_default_toolchain()", | 336 "The default build config file did not call set_default_toolchain()", |
| 334 "If you don't call this, I can't figure out what toolchain to use\n" | 337 "If you don't call this, I can't figure out what toolchain to use\n" |
| 335 "for all of this code.")); | 338 "for all of this code.")); |
| 336 } else { | 339 } else { |
| 337 DCHECK(settings->toolchain_label().is_null()); | 340 DCHECK(settings->toolchain_label().is_null()); |
| 338 settings->set_toolchain_label(default_toolchain_label); | 341 settings->set_toolchain_label(default_toolchain_label); |
| 339 } | 342 } |
| 340 } | 343 } |
| 341 | 344 |
| 345 // Create the predefined console pool object. | |
|
brettw
2017/06/28 21:23:27
This seems weird to me. It looks like this will be
Petr Hosek
2017/06/28 23:42:32
It has "//:console" label but it's accessible thro
| |
| 346 Label label(MakeLabelForScope(base_config, nullptr, "console")); | |
| 347 std::unique_ptr<Pool> pool(new Pool(base_config->settings(), label)); | |
| 348 pool->set_console(true); | |
| 349 Value console_val(nullptr, label.GetUserVisibleName(true)); | |
| 350 base_config->SetValue(variables::kConsole, console_val, nullptr); | |
| 351 settings->build_settings()->ItemDefined(std::move(pool)); | |
| 352 | |
| 342 task_runner_->PostTask(FROM_HERE, | 353 task_runner_->PostTask(FROM_HERE, |
| 343 base::Bind(&LoaderImpl::DidLoadBuildConfig, this, | 354 base::Bind(&LoaderImpl::DidLoadBuildConfig, this, |
| 344 settings->toolchain_label())); | 355 settings->toolchain_label())); |
| 345 } | 356 } |
| 346 | 357 |
| 347 void LoaderImpl::DidLoadFile() { | 358 void LoaderImpl::DidLoadFile() { |
| 348 DecrementPendingLoads(); | 359 DecrementPendingLoads(); |
| 349 } | 360 } |
| 350 | 361 |
| 351 void LoaderImpl::DidLoadBuildConfig(const Label& label) { | 362 void LoaderImpl::DidLoadBuildConfig(const Label& label) { |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 421 const SourceFile& file_name, | 432 const SourceFile& file_name, |
| 422 const base::Callback<void(const ParseNode*)>& callback, | 433 const base::Callback<void(const ParseNode*)>& callback, |
| 423 Err* err) { | 434 Err* err) { |
| 424 if (async_load_file_.is_null()) { | 435 if (async_load_file_.is_null()) { |
| 425 return g_scheduler->input_file_manager()->AsyncLoadFile( | 436 return g_scheduler->input_file_manager()->AsyncLoadFile( |
| 426 origin, build_settings, file_name, callback, err); | 437 origin, build_settings, file_name, callback, err); |
| 427 } | 438 } |
| 428 return async_load_file_.Run( | 439 return async_load_file_.Run( |
| 429 origin, build_settings, file_name, callback, err); | 440 origin, build_settings, file_name, callback, err); |
| 430 } | 441 } |
| OLD | NEW |