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 "tools/gn/action_target_generator.h" | 5 #include "tools/gn/action_target_generator.h" |
6 | 6 |
| 7 #include "base/stl_util.h" |
7 #include "tools/gn/build_settings.h" | 8 #include "tools/gn/build_settings.h" |
8 #include "tools/gn/err.h" | 9 #include "tools/gn/err.h" |
9 #include "tools/gn/filesystem_utils.h" | 10 #include "tools/gn/filesystem_utils.h" |
10 #include "tools/gn/parse_tree.h" | 11 #include "tools/gn/parse_tree.h" |
11 #include "tools/gn/scope.h" | 12 #include "tools/gn/scope.h" |
12 #include "tools/gn/value.h" | 13 #include "tools/gn/value.h" |
13 #include "tools/gn/value_extractors.h" | 14 #include "tools/gn/value_extractors.h" |
14 #include "tools/gn/variables.h" | 15 #include "tools/gn/variables.h" |
15 | 16 |
16 ActionTargetGenerator::ActionTargetGenerator( | 17 ActionTargetGenerator::ActionTargetGenerator( |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 if (!CheckOutputs()) | 67 if (!CheckOutputs()) |
67 return; | 68 return; |
68 | 69 |
69 // Action outputs don't depend on the current toolchain so we can skip adding | 70 // Action outputs don't depend on the current toolchain so we can skip adding |
70 // that dependency. | 71 // that dependency. |
71 | 72 |
72 // response_file_contents and {{response_file_name}} in the args must go | 73 // response_file_contents and {{response_file_name}} in the args must go |
73 // together. | 74 // together. |
74 const auto& required_args_substitutions = | 75 const auto& required_args_substitutions = |
75 target_->action_values().args().required_types(); | 76 target_->action_values().args().required_types(); |
76 bool has_rsp_file_name = std::find(required_args_substitutions.begin(), | 77 bool has_rsp_file_name = base::ContainsValue(required_args_substitutions, |
77 required_args_substitutions.end(), | 78 SUBSTITUTION_RSP_FILE_NAME); |
78 SUBSTITUTION_RSP_FILE_NAME) != | |
79 required_args_substitutions.end(); | |
80 if (target_->action_values().uses_rsp_file() && !has_rsp_file_name) { | 79 if (target_->action_values().uses_rsp_file() && !has_rsp_file_name) { |
81 *err_ = Err(function_call_, "Missing {{response_file_name}} in args.", | 80 *err_ = Err(function_call_, "Missing {{response_file_name}} in args.", |
82 "This target defines response_file_contents but doesn't use\n" | 81 "This target defines response_file_contents but doesn't use\n" |
83 "{{response_file_name}} in the args, which means the response file\n" | 82 "{{response_file_name}} in the args, which means the response file\n" |
84 "will be unused."); | 83 "will be unused."); |
85 return; | 84 return; |
86 } | 85 } |
87 if (!target_->action_values().uses_rsp_file() && has_rsp_file_name) { | 86 if (!target_->action_values().uses_rsp_file() && has_rsp_file_name) { |
88 *err_ = Err(function_call_, "Missing response_file_contents definition.", | 87 *err_ = Err(function_call_, "Missing response_file_contents definition.", |
89 "This target uses {{response_file_name}} in the args, but does not\n" | 88 "This target uses {{response_file_name}} in the args, but does not\n" |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
193 *err_ = Err(function_call_, | 192 *err_ = Err(function_call_, |
194 "action_foreach should have a pattern in the output.", | 193 "action_foreach should have a pattern in the output.", |
195 "An action_foreach target should have a source expansion pattern in\n" | 194 "An action_foreach target should have a source expansion pattern in\n" |
196 "it to map source file to unique output file name. Otherwise, the\n" | 195 "it to map source file to unique output file name. Otherwise, the\n" |
197 "build system can't determine when your script needs to be run."); | 196 "build system can't determine when your script needs to be run."); |
198 return false; | 197 return false; |
199 } | 198 } |
200 } | 199 } |
201 return true; | 200 return true; |
202 } | 201 } |
OLD | NEW |