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

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

Issue 516703005: Remove built-in component and test targets from GN. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
« no previous file with comments | « tools/gn/functions.cc ('k') | tools/gn/variables.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "tools/gn/config_values_generator.h" 7 #include "tools/gn/config_values_generator.h"
8 #include "tools/gn/err.h" 8 #include "tools/gn/err.h"
9 #include "tools/gn/parse_tree.h" 9 #include "tools/gn/parse_tree.h"
10 #include "tools/gn/scope.h" 10 #include "tools/gn/scope.h"
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 "\n"; 224 "\n";
225 Value RunActionForEach(Scope* scope, 225 Value RunActionForEach(Scope* scope,
226 const FunctionCallNode* function, 226 const FunctionCallNode* function,
227 const std::vector<Value>& args, 227 const std::vector<Value>& args,
228 BlockNode* block, 228 BlockNode* block,
229 Err* err) { 229 Err* err) {
230 return ExecuteGenericTarget(functions::kActionForEach, scope, function, args, 230 return ExecuteGenericTarget(functions::kActionForEach, scope, function, args,
231 block, err); 231 block, err);
232 } 232 }
233 233
234 // component -------------------------------------------------------------------
235
236 const char kComponent[] = "component";
237 const char kComponent_HelpShort[] =
238 "component: Declare a component target.";
239 const char kComponent_Help[] =
240 "component: Declare a component target.\n"
241 "\n"
242 " A component is a shared library, static library, or source set\n"
243 " depending on the component mode. This allows a project to separate\n"
244 " out a build into shared libraries for faster development (link time is\n"
245 " reduced) but to switch to a static build for releases (for better\n"
246 " performance).\n"
247 "\n"
248 " To use this function you must set the value of the \"component_mode\"\n"
249 " variable to one of the following strings:\n"
250 " - \"shared_library\"\n"
251 " - \"static_library\"\n"
252 " - \"source_set\"\n"
253 " It is an error to call \"component\" without defining the mode\n"
254 " (typically this is done in the master build configuration file).\n";
255
256 Value RunComponent(Scope* scope,
257 const FunctionCallNode* function,
258 const std::vector<Value>& args,
259 BlockNode* block,
260 Err* err) {
261 // A component is either a shared or static library, depending on the value
262 // of |component_mode|.
263 const Value* component_mode_value =
264 scope->GetValue(variables::kComponentMode);
265
266 static const char helptext[] =
267 "You're declaring a component here but have not defined "
268 "\"component_mode\" to\neither \"shared_library\" or \"static_library\".";
269 if (!component_mode_value) {
270 *err = Err(function->function(), "No component mode set.", helptext);
271 return Value();
272 }
273 if (component_mode_value->type() != Value::STRING ||
274 (component_mode_value->string_value() != functions::kSharedLibrary &&
275 component_mode_value->string_value() != functions::kStaticLibrary &&
276 component_mode_value->string_value() != functions::kSourceSet)) {
277 *err = Err(function->function(), "Invalid component mode set.", helptext);
278 return Value();
279 }
280 const std::string& component_mode = component_mode_value->string_value();
281
282 if (!EnsureNotProcessingImport(function, scope, err))
283 return Value();
284 Scope block_scope(scope);
285 if (!FillTargetBlockScope(scope, function, component_mode.c_str(), block,
286 args, &block_scope, err))
287 return Value();
288
289 block->ExecuteBlockInScope(&block_scope, err);
290 if (err->has_error())
291 return Value();
292
293 TargetGenerator::GenerateTarget(&block_scope, function, args,
294 component_mode, err);
295
296 block_scope.CheckForUnusedVars(err);
297 return Value();
298 }
299
300 // copy ------------------------------------------------------------------------ 234 // copy ------------------------------------------------------------------------
301 235
302 const char kCopy[] = "copy"; 236 const char kCopy[] = "copy";
303 const char kCopy_HelpShort[] = 237 const char kCopy_HelpShort[] =
304 "copy: Declare a target that copies files."; 238 "copy: Declare a target that copies files.";
305 const char kCopy_Help[] = 239 const char kCopy_Help[] =
306 "copy: Declare a target that copies files.\n" 240 "copy: Declare a target that copies files.\n"
307 "\n" 241 "\n"
308 "File name handling\n" 242 "File name handling\n"
309 "\n" 243 "\n"
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 449
516 Value RunStaticLibrary(Scope* scope, 450 Value RunStaticLibrary(Scope* scope,
517 const FunctionCallNode* function, 451 const FunctionCallNode* function,
518 const std::vector<Value>& args, 452 const std::vector<Value>& args,
519 BlockNode* block, 453 BlockNode* block,
520 Err* err) { 454 Err* err) {
521 return ExecuteGenericTarget(functions::kStaticLibrary, scope, function, args, 455 return ExecuteGenericTarget(functions::kStaticLibrary, scope, function, args,
522 block, err); 456 block, err);
523 } 457 }
524 458
525 // test ------------------------------------------------------------------------
526
527 const char kTest[] = "test";
528 const char kTest_HelpShort[] =
529 "test: Declares a test target.";
530 const char kTest_Help[] =
531 "test: Declares a test target.\n"
532 "\n"
533 " This is like an executable target, but is named differently to make\n"
534 " the purpose of the target more obvious. It's possible in the future\n"
535 " we can do some enhancements like \"list all of the tests in a given\n"
536 " directory\".\n"
537 "\n"
538 " See \"gn help executable\" for usage.\n";
539
540 Value RunTest(Scope* scope,
541 const FunctionCallNode* function,
542 const std::vector<Value>& args,
543 BlockNode* block,
544 Err* err) {
545 return ExecuteGenericTarget(functions::kExecutable, scope, function, args,
546 block, err);
547 }
548
549 } // namespace functions 459 } // namespace functions
OLDNEW
« no previous file with comments | « tools/gn/functions.cc ('k') | tools/gn/variables.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698