Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Unified Diff: tools/gn/setup.cc

Issue 2152413002: GN: don't write separate files for non-binary targets (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: typo Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/gn/setup.h ('k') | tools/gn/toolchain.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/gn/setup.cc
diff --git a/tools/gn/setup.cc b/tools/gn/setup.cc
index 60aeaa8adfb440616956d9e34363ddf04455f259..490204d3f2d91d78c3c5b303e44c51636d9fb601 100644
--- a/tools/gn/setup.cc
+++ b/tools/gn/setup.cc
@@ -142,11 +142,14 @@ base::FilePath FindDotFile(const base::FilePath& current_dir) {
// Called on any thread. Post the item to the builder on the main thread.
void ItemDefinedCallback(
scoped_refptr<base::SingleThreadTaskRunner> task_runner,
- scoped_refptr<Builder> builder,
+ Builder* builder_call_on_main_thread_only,
std::unique_ptr<Item> item) {
DCHECK(item);
- task_runner->PostTask(FROM_HERE, base::Bind(&Builder::ItemDefined, builder,
- base::Passed(&item)));
+ task_runner->PostTask(
+ FROM_HERE,
+ base::Bind(&Builder::ItemDefined,
+ base::Unretained(builder_call_on_main_thread_only),
+ base::Passed(&item)));
}
void DecrementWorkCount() {
@@ -251,7 +254,7 @@ const char Setup::kBuildArgFileName[] = "args.gn";
Setup::Setup()
: build_settings_(),
loader_(new LoaderImpl(&build_settings_)),
- builder_(new Builder(loader_.get())),
+ builder_(loader_.get()),
root_build_file_("//BUILD.gn"),
check_public_headers_(false),
dotfile_settings_(&build_settings_, std::string()),
@@ -259,7 +262,7 @@ Setup::Setup()
fill_arguments_(true) {
dotfile_settings_.set_toolchain_label(Label());
build_settings_.set_item_defined_callback(
- base::Bind(&ItemDefinedCallback, scheduler_.task_runner(), builder_));
+ base::Bind(&ItemDefinedCallback, scheduler_.task_runner(), &builder_));
loader_->set_complete_callback(base::Bind(&DecrementWorkCount));
// The scheduler's task runner wasn't created when the Loader was created, so
@@ -329,7 +332,7 @@ void Setup::RunPreMessageLoop() {
bool Setup::RunPostMessageLoop() {
Err err;
if (build_settings_.check_for_bad_items()) {
- if (!builder_->CheckForBadItems(&err)) {
+ if (!builder_.CheckForBadItems(&err)) {
err.PrintToStdout();
return false;
}
@@ -347,7 +350,7 @@ bool Setup::RunPostMessageLoop() {
}
if (check_public_headers_) {
- std::vector<const Target*> all_targets = builder_->GetAllResolvedTargets();
+ std::vector<const Target*> all_targets = builder_.GetAllResolvedTargets();
std::vector<const Target*> to_check;
if (check_patterns()) {
commands::FilterTargetsByPatterns(all_targets, *check_patterns(),
« no previous file with comments | « tools/gn/setup.h ('k') | tools/gn/toolchain.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698