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

Side by Side Diff: tools/gn/functions.cc

Issue 2940873002: Implement tracking of BUILD.gn files used to define target, toolchain or (Closed)
Patch Set: Use base::flat_set instead of std::set. Created 3 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 unified diff | Download patch
OLDNEW
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/functions.h" 5 #include "tools/gn/functions.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <iostream> 8 #include <iostream>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 if (!EnsureSingleStringArg(function, args, err) || 330 if (!EnsureSingleStringArg(function, args, err) ||
331 !EnsureNotProcessingImport(function, scope, err)) 331 !EnsureNotProcessingImport(function, scope, err))
332 return Value(); 332 return Value();
333 333
334 Label label(MakeLabelForScope(scope, function, args[0].string_value())); 334 Label label(MakeLabelForScope(scope, function, args[0].string_value()));
335 335
336 if (g_scheduler->verbose_logging()) 336 if (g_scheduler->verbose_logging())
337 g_scheduler->Log("Defining config", label.GetUserVisibleName(true)); 337 g_scheduler->Log("Defining config", label.GetUserVisibleName(true));
338 338
339 // Create the new config. 339 // Create the new config.
340 std::unique_ptr<Config> config(new Config(scope->settings(), label)); 340 std::unique_ptr<Config> config(
341 new Config(scope->settings(), label, scope->input_files()));
341 config->set_defined_from(function); 342 config->set_defined_from(function);
342 if (!Visibility::FillItemVisibility(config.get(), scope, err)) 343 if (!Visibility::FillItemVisibility(config.get(), scope, err))
343 return Value(); 344 return Value();
344 345
345 // Fill the flags and such. 346 // Fill the flags and such.
346 const SourceDir& input_dir = scope->GetSourceDir(); 347 const SourceDir& input_dir = scope->GetSourceDir();
347 ConfigValuesGenerator gen(&config->own_values(), scope, input_dir, err); 348 ConfigValuesGenerator gen(&config->own_values(), scope, input_dir, err);
348 gen.Run(); 349 gen.Run();
349 if (err->has_error()) 350 if (err->has_error())
350 return Value(); 351 return Value();
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after
785 786
786 if (!depth->VerifyTypeIs(Value::INTEGER, err)) 787 if (!depth->VerifyTypeIs(Value::INTEGER, err))
787 return Value(); 788 return Value();
788 789
789 if (depth->int_value() < 0) { 790 if (depth->int_value() < 0) {
790 *err = Err(function, "depth must be positive or nul."); 791 *err = Err(function, "depth must be positive or nul.");
791 return Value(); 792 return Value();
792 } 793 }
793 794
794 // Create the new pool. 795 // Create the new pool.
795 std::unique_ptr<Pool> pool(new Pool(scope->settings(), label)); 796 std::unique_ptr<Pool> pool(
797 new Pool(scope->settings(), label, scope->input_files()));
796 pool->set_depth(depth->int_value()); 798 pool->set_depth(depth->int_value());
797 799
798 // Save the generated item. 800 // Save the generated item.
799 Scope::ItemVector* collector = scope->GetItemCollector(); 801 Scope::ItemVector* collector = scope->GetItemCollector();
800 if (!collector) { 802 if (!collector) {
801 *err = Err(function, "Can't define a pool in this context."); 803 *err = Err(function, "Can't define a pool in this context.");
802 return Value(); 804 return Value();
803 } 805 }
804 collector->push_back(pool.release()); 806 collector->push_back(pool.release());
805 807
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
1137 } 1139 }
1138 1140
1139 // Otherwise it's a no-block function. 1141 // Otherwise it's a no-block function.
1140 if (!VerifyNoBlockForFunctionCall(function, block, err)) 1142 if (!VerifyNoBlockForFunctionCall(function, block, err))
1141 return Value(); 1143 return Value();
1142 return found_function->second.no_block_runner(scope, function, 1144 return found_function->second.no_block_runner(scope, function,
1143 args.list_value(), err); 1145 args.list_value(), err);
1144 } 1146 }
1145 1147
1146 } // namespace functions 1148 } // namespace functions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698