| 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 #ifndef TOOLS_GN_TARGET_H_ | 5 #ifndef TOOLS_GN_TARGET_H_ |
| 6 #define TOOLS_GN_TARGET_H_ | 6 #define TOOLS_GN_TARGET_H_ |
| 7 | 7 |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 // Set to true when all sources are public. This is the default. In this case | 84 // Set to true when all sources are public. This is the default. In this case |
| 85 // the public headers list should be empty. | 85 // the public headers list should be empty. |
| 86 bool all_headers_public() const { return all_headers_public_; } | 86 bool all_headers_public() const { return all_headers_public_; } |
| 87 void set_all_headers_public(bool p) { all_headers_public_ = p; } | 87 void set_all_headers_public(bool p) { all_headers_public_ = p; } |
| 88 | 88 |
| 89 // When all_headers_public is false, this is the list of public headers. It | 89 // When all_headers_public is false, this is the list of public headers. It |
| 90 // could be empty which would mean no headers are public. | 90 // could be empty which would mean no headers are public. |
| 91 const FileList& public_headers() const { return public_headers_; } | 91 const FileList& public_headers() const { return public_headers_; } |
| 92 FileList& public_headers() { return public_headers_; } | 92 FileList& public_headers() { return public_headers_; } |
| 93 | 93 |
| 94 // Whether this target's includes should be checked by "gn check". |
| 95 bool check_includes() const { return check_includes_; } |
| 96 void set_check_includes(bool ci) { check_includes_ = ci; } |
| 97 |
| 94 // Compile-time extra dependencies. | 98 // Compile-time extra dependencies. |
| 95 const FileList& inputs() const { return inputs_; } | 99 const FileList& inputs() const { return inputs_; } |
| 96 FileList& inputs() { return inputs_; } | 100 FileList& inputs() { return inputs_; } |
| 97 | 101 |
| 98 // Runtime dependencies. | 102 // Runtime dependencies. |
| 99 const FileList& data() const { return data_; } | 103 const FileList& data() const { return data_; } |
| 100 FileList& data() { return data_; } | 104 FileList& data() { return data_; } |
| 101 | 105 |
| 102 // Returns true if targets depending on this one should have an order | 106 // Returns true if targets depending on this one should have an order |
| 103 // dependency. | 107 // dependency. |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 | 145 |
| 142 // A list of a subset of deps where we'll re-export direct_dependent_configs | 146 // A list of a subset of deps where we'll re-export direct_dependent_configs |
| 143 // as direct_dependent_configs of this target. | 147 // as direct_dependent_configs of this target. |
| 144 const UniqueVector<LabelTargetPair>& forward_dependent_configs() const { | 148 const UniqueVector<LabelTargetPair>& forward_dependent_configs() const { |
| 145 return forward_dependent_configs_; | 149 return forward_dependent_configs_; |
| 146 } | 150 } |
| 147 UniqueVector<LabelTargetPair>& forward_dependent_configs() { | 151 UniqueVector<LabelTargetPair>& forward_dependent_configs() { |
| 148 return forward_dependent_configs_; | 152 return forward_dependent_configs_; |
| 149 } | 153 } |
| 150 | 154 |
| 155 // Dependencies that can include files from this target. |
| 156 const std::set<Label>& allow_circular_includes_from() const { |
| 157 return allow_circular_includes_from_; |
| 158 } |
| 159 std::set<Label>& allow_circular_includes_from() { |
| 160 return allow_circular_includes_from_; |
| 161 } |
| 162 |
| 151 const UniqueVector<const Target*>& inherited_libraries() const { | 163 const UniqueVector<const Target*>& inherited_libraries() const { |
| 152 return inherited_libraries_; | 164 return inherited_libraries_; |
| 153 } | 165 } |
| 154 | 166 |
| 155 // This config represents the configuration set directly on this target. | 167 // This config represents the configuration set directly on this target. |
| 156 ConfigValues& config_values() { return config_values_; } | 168 ConfigValues& config_values() { return config_values_; } |
| 157 const ConfigValues& config_values() const { return config_values_; } | 169 const ConfigValues& config_values() const { return config_values_; } |
| 158 | 170 |
| 159 ActionValues& action_values() { return action_values_; } | 171 ActionValues& action_values() { return action_values_; } |
| 160 const ActionValues& action_values() const { return action_values_; } | 172 const ActionValues& action_values() const { return action_values_; } |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 210 // Fills the link and dependency output files when a target is resolved. | 222 // Fills the link and dependency output files when a target is resolved. |
| 211 void FillOutputFiles(); | 223 void FillOutputFiles(); |
| 212 | 224 |
| 213 OutputType output_type_; | 225 OutputType output_type_; |
| 214 std::string output_name_; | 226 std::string output_name_; |
| 215 std::string output_extension_; | 227 std::string output_extension_; |
| 216 | 228 |
| 217 FileList sources_; | 229 FileList sources_; |
| 218 bool all_headers_public_; | 230 bool all_headers_public_; |
| 219 FileList public_headers_; | 231 FileList public_headers_; |
| 232 bool check_includes_; |
| 220 FileList inputs_; | 233 FileList inputs_; |
| 221 FileList data_; | 234 FileList data_; |
| 222 | 235 |
| 223 bool hard_dep_; | 236 bool hard_dep_; |
| 224 | 237 |
| 225 // Note that if there are any groups in the deps, once the target is resolved | 238 // Note that if there are any groups in the deps, once the target is resolved |
| 226 // these vectors will list *both* the groups as well as the groups' deps. | 239 // these vectors will list *both* the groups as well as the groups' deps. |
| 227 // | 240 // |
| 228 // This is because, in general, groups should be "transparent" ways to add | 241 // This is because, in general, groups should be "transparent" ways to add |
| 229 // groups of dependencies, so adding the groups deps make this happen with | 242 // groups of dependencies, so adding the groups deps make this happen with |
| 230 // no additional complexity when iterating over a target's deps. | 243 // no additional complexity when iterating over a target's deps. |
| 231 // | 244 // |
| 232 // However, a group may also have specific settings and configs added to it, | 245 // However, a group may also have specific settings and configs added to it, |
| 233 // so we also need the group in the list so we find these things. But you | 246 // so we also need the group in the list so we find these things. But you |
| 234 // shouldn't need to look inside the deps of the group since those will | 247 // shouldn't need to look inside the deps of the group since those will |
| 235 // already be added. | 248 // already be added. |
| 236 LabelTargetVector deps_; | 249 LabelTargetVector deps_; |
| 237 LabelTargetVector datadeps_; | 250 LabelTargetVector datadeps_; |
| 238 | 251 |
| 239 UniqueVector<LabelConfigPair> configs_; | 252 UniqueVector<LabelConfigPair> configs_; |
| 240 UniqueVector<LabelConfigPair> all_dependent_configs_; | 253 UniqueVector<LabelConfigPair> all_dependent_configs_; |
| 241 UniqueVector<LabelConfigPair> direct_dependent_configs_; | 254 UniqueVector<LabelConfigPair> direct_dependent_configs_; |
| 242 UniqueVector<LabelTargetPair> forward_dependent_configs_; | 255 UniqueVector<LabelTargetPair> forward_dependent_configs_; |
| 243 | 256 |
| 257 std::set<Label> allow_circular_includes_from_; |
| 258 |
| 244 bool external_; | 259 bool external_; |
| 245 | 260 |
| 246 // Static libraries and source sets from transitive deps. These things need | 261 // Static libraries and source sets from transitive deps. These things need |
| 247 // to be linked only with the end target (executable, shared library). Source | 262 // to be linked only with the end target (executable, shared library). Source |
| 248 // sets do not get pushed beyond static library boundaries, and neither | 263 // sets do not get pushed beyond static library boundaries, and neither |
| 249 // source sets nor static libraries get pushed beyond sahred library | 264 // source sets nor static libraries get pushed beyond sahred library |
| 250 // boundaries. | 265 // boundaries. |
| 251 UniqueVector<const Target*> inherited_libraries_; | 266 UniqueVector<const Target*> inherited_libraries_; |
| 252 | 267 |
| 253 // These libs and dirs are inherited from statically linked deps and all | 268 // These libs and dirs are inherited from statically linked deps and all |
| (...skipping 28 matching lines...) Expand all Loading... |
| 282 }; | 297 }; |
| 283 #elif defined(COMPILER_MSVC) | 298 #elif defined(COMPILER_MSVC) |
| 284 inline size_t hash_value(const Target* t) { | 299 inline size_t hash_value(const Target* t) { |
| 285 return reinterpret_cast<size_t>(t); | 300 return reinterpret_cast<size_t>(t); |
| 286 } | 301 } |
| 287 #endif // COMPILER... | 302 #endif // COMPILER... |
| 288 | 303 |
| 289 } // namespace BASE_HASH_NAMESPACE | 304 } // namespace BASE_HASH_NAMESPACE |
| 290 | 305 |
| 291 #endif // TOOLS_GN_TARGET_H_ | 306 #endif // TOOLS_GN_TARGET_H_ |
| OLD | NEW |