 Chromium Code Reviews
 Chromium Code Reviews Issue 2926013002:
  Support explicit pools in actions  (Closed)
    
  
    Issue 2926013002:
  Support explicit pools in actions  (Closed) 
  | 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 <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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 | 
| OLD | NEW |