| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/substitution_type.h" | 5 #include "tools/gn/substitution_type.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdlib.h> | 8 #include <stdlib.h> |
| 9 | 9 |
| 10 #include "tools/gn/err.h" | 10 #include "tools/gn/err.h" |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 "{{output_dir}}", // SUBSTITUTION_OUTPUT_DIR | 46 "{{output_dir}}", // SUBSTITUTION_OUTPUT_DIR |
| 47 "{{output_extension}}", // SUBSTITUTION_OUTPUT_EXTENSION | 47 "{{output_extension}}", // SUBSTITUTION_OUTPUT_EXTENSION |
| 48 "{{solibs}}", // SUBSTITUTION_SOLIBS | 48 "{{solibs}}", // SUBSTITUTION_SOLIBS |
| 49 | 49 |
| 50 "{{arflags}}", // SUBSTITUTION_ARFLAGS | 50 "{{arflags}}", // SUBSTITUTION_ARFLAGS |
| 51 | 51 |
| 52 "{{bundle_root_dir}}", // SUBSTITUTION_BUNDLE_ROOT_DIR | 52 "{{bundle_root_dir}}", // SUBSTITUTION_BUNDLE_ROOT_DIR |
| 53 "{{bundle_resources_dir}}", // SUBSTITUTION_BUNDLE_RESOURCES_DIR | 53 "{{bundle_resources_dir}}", // SUBSTITUTION_BUNDLE_RESOURCES_DIR |
| 54 "{{bundle_executable_dir}}", // SUBSTITUTION_BUNDLE_EXECUTABLE_DIR | 54 "{{bundle_executable_dir}}", // SUBSTITUTION_BUNDLE_EXECUTABLE_DIR |
| 55 "{{bundle_plugins_dir}}", // SUBSTITUTION_BUNDLE_PLUGINS_DIR | 55 "{{bundle_plugins_dir}}", // SUBSTITUTION_BUNDLE_PLUGINS_DIR |
| 56 "{{bundle_product_type}}", // SUBSTITUTION_BUNDLE_PRODUCT_TYPE |
| 56 | 57 |
| 57 "{{response_file_name}}", // SUBSTITUTION_RSP_FILE_NAME | 58 "{{response_file_name}}", // SUBSTITUTION_RSP_FILE_NAME |
| 58 }; | 59 }; |
| 59 | 60 |
| 60 const char* kSubstitutionNinjaNames[SUBSTITUTION_NUM_TYPES] = { | 61 const char* kSubstitutionNinjaNames[SUBSTITUTION_NUM_TYPES] = { |
| 61 nullptr, // SUBSTITUTION_LITERAL | 62 nullptr, // SUBSTITUTION_LITERAL |
| 62 | 63 |
| 63 "in", // SUBSTITUTION_SOURCE | 64 "in", // SUBSTITUTION_SOURCE |
| 64 "out", // SUBSTITUTION_OUTPUT | 65 "out", // SUBSTITUTION_OUTPUT |
| 65 | 66 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 "output_dir", // SUBSTITUTION_OUTPUT_DIR | 98 "output_dir", // SUBSTITUTION_OUTPUT_DIR |
| 98 "output_extension", // SUBSTITUTION_OUTPUT_EXTENSION | 99 "output_extension", // SUBSTITUTION_OUTPUT_EXTENSION |
| 99 "solibs", // SUBSTITUTION_SOLIBS | 100 "solibs", // SUBSTITUTION_SOLIBS |
| 100 | 101 |
| 101 "arflags", // SUBSTITUTION_ARFLAGS | 102 "arflags", // SUBSTITUTION_ARFLAGS |
| 102 | 103 |
| 103 "bundle_root_dir", // SUBSTITUTION_BUNDLE_ROOT_DIR | 104 "bundle_root_dir", // SUBSTITUTION_BUNDLE_ROOT_DIR |
| 104 "bundle_resources_dir", // SUBSTITUTION_BUNDLE_RESOURCES_DIR | 105 "bundle_resources_dir", // SUBSTITUTION_BUNDLE_RESOURCES_DIR |
| 105 "bundle_executable_dir", // SUBSTITUTION_BUNDLE_EXECUTABLE_DIR | 106 "bundle_executable_dir", // SUBSTITUTION_BUNDLE_EXECUTABLE_DIR |
| 106 "bundle_plugins_dir", // SUBSTITUTION_BUNDLE_PLUGINS_DIR | 107 "bundle_plugins_dir", // SUBSTITUTION_BUNDLE_PLUGINS_DIR |
| 108 "product_type", // SUBSTITUTION_BUNDLE_PRODUCT_TYPE |
| 107 | 109 |
| 108 "rspfile", // SUBSTITUTION_RSP_FILE_NAME | 110 "rspfile", // SUBSTITUTION_RSP_FILE_NAME |
| 109 }; | 111 }; |
| 110 | 112 |
| 111 SubstitutionBits::SubstitutionBits() : used() { | 113 SubstitutionBits::SubstitutionBits() : used() { |
| 112 } | 114 } |
| 113 | 115 |
| 114 void SubstitutionBits::MergeFrom(const SubstitutionBits& other) { | 116 void SubstitutionBits::MergeFrom(const SubstitutionBits& other) { |
| 115 for (size_t i = 0; i < SUBSTITUTION_NUM_TYPES; i++) | 117 for (size_t i = 0; i < SUBSTITUTION_NUM_TYPES; i++) |
| 116 used[i] |= other.used[i]; | 118 used[i] |= other.used[i]; |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 type == SUBSTITUTION_OUTPUT_EXTENSION; | 222 type == SUBSTITUTION_OUTPUT_EXTENSION; |
| 221 } | 223 } |
| 222 | 224 |
| 223 bool IsValidCopySubstitution(SubstitutionType type) { | 225 bool IsValidCopySubstitution(SubstitutionType type) { |
| 224 return IsValidToolSubstitution(type) || | 226 return IsValidToolSubstitution(type) || |
| 225 type == SUBSTITUTION_SOURCE; | 227 type == SUBSTITUTION_SOURCE; |
| 226 } | 228 } |
| 227 | 229 |
| 228 bool IsValidCompileXCassetsSubstitution(SubstitutionType type) { | 230 bool IsValidCompileXCassetsSubstitution(SubstitutionType type) { |
| 229 return IsValidToolSubstitution(type) || | 231 return IsValidToolSubstitution(type) || |
| 230 type == SUBSTITUTION_LINKER_INPUTS; | 232 type == SUBSTITUTION_LINKER_INPUTS || |
| 233 type == SUBSTITUTION_BUNDLE_PRODUCT_TYPE; |
| 231 } | 234 } |
| 232 | 235 |
| 233 bool EnsureValidSourcesSubstitutions( | 236 bool EnsureValidSourcesSubstitutions( |
| 234 const std::vector<SubstitutionType>& types, | 237 const std::vector<SubstitutionType>& types, |
| 235 const ParseNode* origin, | 238 const ParseNode* origin, |
| 236 Err* err) { | 239 Err* err) { |
| 237 for (size_t i = 0; i < types.size(); i++) { | 240 for (size_t i = 0; i < types.size(); i++) { |
| 238 if (!IsValidSourceSubstitution(types[i])) { | 241 if (!IsValidSourceSubstitution(types[i])) { |
| 239 *err = Err(origin, "Invalid substitution type.", | 242 *err = Err(origin, "Invalid substitution type.", |
| 240 "The substitution " + std::string(kSubstitutionNames[types[i]]) + | 243 "The substitution " + std::string(kSubstitutionNames[types[i]]) + |
| 241 " isn't valid for something\n" | 244 " isn't valid for something\n" |
| 242 "operating on a source file such as this."); | 245 "operating on a source file such as this."); |
| 243 return false; | 246 return false; |
| 244 } | 247 } |
| 245 } | 248 } |
| 246 return true; | 249 return true; |
| 247 } | 250 } |
| OLD | NEW |