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

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

Issue 2926013002: Support explicit pools in actions (Closed)
Patch Set: Created 3 years, 6 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 <algorithm> 5 #include <algorithm>
6 #include <limits> 6 #include <limits>
7 #include <utility> 7 #include <utility>
8 8
9 #include "tools/gn/err.h" 9 #include "tools/gn/err.h"
10 #include "tools/gn/functions.h" 10 #include "tools/gn/functions.h"
(...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 "objc": Objective C compiler 521 "objc": Objective C compiler
522 "objcxx": Objective C++ compiler 522 "objcxx": Objective C++ compiler
523 "rc": Resource compiler (Windows .rc files) 523 "rc": Resource compiler (Windows .rc files)
524 "asm": Assembler 524 "asm": Assembler
525 525
526 Linker tools: 526 Linker tools:
527 "alink": Linker for static libraries (archives) 527 "alink": Linker for static libraries (archives)
528 "solink": Linker for shared libraries 528 "solink": Linker for shared libraries
529 "link": Linker for executables 529 "link": Linker for executables
530 530
531 Other tools: 531 Other tools:
brettw 2017/06/08 18:36:20 I think you want "action" here.
Petr Hosek 2017/06/09 03:24:32 Done.
532 "stamp": Tool for creating stamp files 532 "stamp": Tool for creating stamp files
533 "copy": Tool to copy files. 533 "copy": Tool to copy files.
534 534
535 Platform specific tools: 535 Platform specific tools:
536 "copy_bundle_data": [iOS, OS X] Tool to copy files in a bundle. 536 "copy_bundle_data": [iOS, OS X] Tool to copy files in a bundle.
537 "compile_xcassets": [iOS, OS X] Tool to compile asset catalogs. 537 "compile_xcassets": [iOS, OS X] Tool to compile asset catalogs.
538 538
539 Tool variables 539 Tool variables
540 540
541 command [string with substitutions] 541 command [string with substitutions]
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 631
632 Example for a linker tool that produces a .dll and a .lib. The use of 632 Example for a linker tool that produces a .dll and a .lib. The use of
633 {{target_output_name}}, {{output_extension}} and {{output_dir}} allows 633 {{target_output_name}}, {{output_extension}} and {{output_dir}} allows
634 the target to override these values. 634 the target to override these values.
635 outputs = [ 635 outputs = [
636 "{{output_dir}}/{{target_output_name}}" 636 "{{output_dir}}/{{target_output_name}}"
637 "{{output_extension}}", 637 "{{output_extension}}",
638 "{{output_dir}}/{{target_output_name}}.lib", 638 "{{output_dir}}/{{target_output_name}}.lib",
639 ] 639 ]
640 640
641 pool [label, optional] 641 pool [label, optional]
brettw 2017/06/08 18:36:19 I think this is valid for all tools. Can you add a
Petr Hosek 2017/06/09 03:24:32 Done.
642 642
643 Label of the pool to use for the tool. Pools are used to limit the 643 Label of the pool to use for the tool. Pools are used to limit the
644 number of tasks that can execute concurrently during the build. 644 number of tasks that can execute concurrently during the build.
645 645
646 See also "gn help pool". 646 See also "gn help pool".
647 647
648 link_output [string with substitutions] 648 link_output [string with substitutions]
649 depend_output [string with substitutions] 649 depend_output [string with substitutions]
650 Valid for: "solink" only (optional) 650 Valid for: "solink" only (optional)
651 651
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
702 702
703 Normally, Ninja will assume that when a tool runs the output be new and 703 Normally, Ninja will assume that when a tool runs the output be new and
704 downstream dependents must be rebuild. When this is set to trye, Ninja 704 downstream dependents must be rebuild. When this is set to trye, Ninja
705 can skip rebuilding downstream dependents for input changes that don't 705 can skip rebuilding downstream dependents for input changes that don't
706 actually affect the output. 706 actually affect the output.
707 707
708 Example: 708 Example:
709 restat = true 709 restat = true
710 710
711 rspfile [string with substitutions] 711 rspfile [string with substitutions]
712 Valid for: all tools (optional) 712 Valid for: all tools (optional)
brettw 2017/06/08 18:36:20 This and the next one I think don't apply to actio
Petr Hosek 2017/06/09 03:24:33 Done.
713 713
714 Name of the response file. If empty, no response file will be 714 Name of the response file. If empty, no response file will be
715 used. See "rspfile_content". 715 used. See "rspfile_content".
716 716
717 rspfile_content [string with substitutions] 717 rspfile_content [string with substitutions]
718 Valid for: all tools (required when "rspfile" is specified) 718 Valid for: all tools (required when "rspfile" is specified)
719 719
720 The contents to be written to the response file. This may include all 720 The contents to be written to the response file. This may include all
721 or part of the command to send to the tool which allows you to get 721 or part of the command to send to the tool which allows you to get
722 around OS command-line length limits. 722 around OS command-line length limits.
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
1044 !ReadBool(&block_scope, "restat", tool.get(), &Tool::set_restat, err) || 1044 !ReadBool(&block_scope, "restat", tool.get(), &Tool::set_restat, err) ||
1045 !ReadPattern(&block_scope, "rspfile", subst_validator, tool.get(), 1045 !ReadPattern(&block_scope, "rspfile", subst_validator, tool.get(),
1046 &Tool::set_rspfile, err) || 1046 &Tool::set_rspfile, err) ||
1047 !ReadPattern(&block_scope, "rspfile_content", subst_validator, tool.get(), 1047 !ReadPattern(&block_scope, "rspfile_content", subst_validator, tool.get(),
1048 &Tool::set_rspfile_content, err) || 1048 &Tool::set_rspfile_content, err) ||
1049 !ReadLabel(&block_scope, "pool", tool.get(), toolchain->label(), 1049 !ReadLabel(&block_scope, "pool", tool.get(), toolchain->label(),
1050 &Tool::set_pool, err)) { 1050 &Tool::set_pool, err)) {
1051 return Value(); 1051 return Value();
1052 } 1052 }
1053 1053
1054 if (tool_type != Toolchain::TYPE_COPY && 1054 if (tool_type != Toolchain::TYPE_COPY && tool_type != Toolchain::TYPE_STAMP &&
1055 tool_type != Toolchain::TYPE_STAMP &&
1056 tool_type != Toolchain::TYPE_COPY_BUNDLE_DATA && 1055 tool_type != Toolchain::TYPE_COPY_BUNDLE_DATA &&
1057 tool_type != Toolchain::TYPE_COMPILE_XCASSETS) { 1056 tool_type != Toolchain::TYPE_COMPILE_XCASSETS &&
1057 tool_type != Toolchain::TYPE_ACTION) {
1058 // All tools should have outputs, except the copy, stamp, copy_bundle_data 1058 // All tools should have outputs, except the copy, stamp, copy_bundle_data
1059 // and compile_xcassets tools that generate their outputs internally. 1059 // compile_xcassets and action tools that generate their outputs internally.
1060 if (!ReadPatternList(&block_scope, "outputs", subst_output_validator, 1060 if (!ReadPatternList(&block_scope, "outputs", subst_output_validator,
1061 tool.get(), &Tool::set_outputs, err) || 1061 tool.get(), &Tool::set_outputs, err) ||
1062 !ValidateOutputs(tool.get(), err)) 1062 !ValidateOutputs(tool.get(), err))
1063 return Value(); 1063 return Value();
1064 } 1064 }
1065 if (!ValidateRuntimeOutputs(tool.get(), tool_type, err)) 1065 if (!ValidateRuntimeOutputs(tool.get(), tool_type, err))
1066 return Value(); 1066 return Value();
1067 1067
1068 // Validate link_output and depend_output. 1068 // Validate link_output and depend_output.
1069 if (!ValidateLinkAndDependOutput(tool.get(), tool_type, tool->link_output(), 1069 if (!ValidateLinkAndDependOutput(tool.get(), tool_type, tool->link_output(),
(...skipping 11 matching lines...) Expand all
1081 1081
1082 // Make sure there weren't any vars set in this tool that were unused. 1082 // Make sure there weren't any vars set in this tool that were unused.
1083 if (!block_scope.CheckForUnusedVars(err)) 1083 if (!block_scope.CheckForUnusedVars(err))
1084 return Value(); 1084 return Value();
1085 1085
1086 toolchain->SetTool(tool_type, std::move(tool)); 1086 toolchain->SetTool(tool_type, std::move(tool));
1087 return Value(); 1087 return Value();
1088 } 1088 }
1089 1089
1090 } // namespace functions 1090 } // namespace functions
OLDNEW
« no previous file with comments | « tools/gn/builder.cc ('k') | tools/gn/functions.cc » ('j') | tools/gn/functions.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698