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

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

Issue 2779833002: [iOS] Add application target as dependency of xctest module target. (Closed)
Patch Set: Update comments Created 3 years, 8 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
« no previous file with comments | « tools/gn/xcode_object.h ('k') | tools/gn/xcode_writer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/xcode_object.h" 5 #include "tools/gn/xcode_object.h"
6 6
7 #include <iomanip> 7 #include <iomanip>
8 #include <sstream> 8 #include <sstream>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 } // namespace 237 } // namespace
238 238
239 // PBXObjectClass ------------------------------------------------------------- 239 // PBXObjectClass -------------------------------------------------------------
240 240
241 const char* ToString(PBXObjectClass cls) { 241 const char* ToString(PBXObjectClass cls) {
242 switch (cls) { 242 switch (cls) {
243 case PBXAggregateTargetClass: 243 case PBXAggregateTargetClass:
244 return "PBXAggregateTarget"; 244 return "PBXAggregateTarget";
245 case PBXBuildFileClass: 245 case PBXBuildFileClass:
246 return "PBXBuildFile"; 246 return "PBXBuildFile";
247 case PBXContainerItemProxyClass:
248 return "PBXContainerItemProxy";
247 case PBXFileReferenceClass: 249 case PBXFileReferenceClass:
248 return "PBXFileReference"; 250 return "PBXFileReference";
249 case PBXFrameworksBuildPhaseClass: 251 case PBXFrameworksBuildPhaseClass:
250 return "PBXFrameworksBuildPhase"; 252 return "PBXFrameworksBuildPhase";
251 case PBXGroupClass: 253 case PBXGroupClass:
252 return "PBXGroup"; 254 return "PBXGroup";
253 case PBXNativeTargetClass: 255 case PBXNativeTargetClass:
254 return "PBXNativeTarget"; 256 return "PBXNativeTarget";
255 case PBXProjectClass: 257 case PBXProjectClass:
256 return "PBXProject"; 258 return "PBXProject";
257 case PBXShellScriptBuildPhaseClass: 259 case PBXShellScriptBuildPhaseClass:
258 return "PBXShellScriptBuildPhase"; 260 return "PBXShellScriptBuildPhase";
259 case PBXSourcesBuildPhaseClass: 261 case PBXSourcesBuildPhaseClass:
260 return "PBXSourcesBuildPhase"; 262 return "PBXSourcesBuildPhase";
263 case PBXTargetDependencyClass:
264 return "PBXTargetDependency";
261 case XCBuildConfigurationClass: 265 case XCBuildConfigurationClass:
262 return "XCBuildConfiguration"; 266 return "XCBuildConfiguration";
263 case XCConfigurationListClass: 267 case XCConfigurationListClass:
264 return "XCConfigurationList"; 268 return "XCConfigurationList";
265 } 269 }
266 NOTREACHED(); 270 NOTREACHED();
267 return nullptr; 271 return nullptr;
268 } 272 }
269 273
270 // PBXObjectVisitor ----------------------------------------------------------- 274 // PBXObjectVisitor -----------------------------------------------------------
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 : configurations_(new XCConfigurationList(config_name, attributes, this)), 320 : configurations_(new XCConfigurationList(config_name, attributes, this)),
317 name_(name) { 321 name_(name) {
318 if (!shell_script.empty()) { 322 if (!shell_script.empty()) {
319 build_phases_.push_back( 323 build_phases_.push_back(
320 base::MakeUnique<PBXShellScriptBuildPhase>(name, shell_script)); 324 base::MakeUnique<PBXShellScriptBuildPhase>(name, shell_script));
321 } 325 }
322 } 326 }
323 327
324 PBXTarget::~PBXTarget() {} 328 PBXTarget::~PBXTarget() {}
325 329
330 void PBXTarget::AddDependency(std::unique_ptr<PBXTargetDependency> dependency) {
331 DCHECK(dependency);
332 dependencies_.push_back(std::move(dependency));
333 }
334
326 std::string PBXTarget::Name() const { 335 std::string PBXTarget::Name() const {
327 return name_; 336 return name_;
328 } 337 }
329 338
330 void PBXTarget::Visit(PBXObjectVisitor& visitor) { 339 void PBXTarget::Visit(PBXObjectVisitor& visitor) {
331 PBXObject::Visit(visitor); 340 PBXObject::Visit(visitor);
332 configurations_->Visit(visitor); 341 configurations_->Visit(visitor);
333 for (const auto& build_phase : build_phases_) { 342 for (const auto& dependency : dependencies_)
343 dependency->Visit(visitor);
344 for (const auto& build_phase : build_phases_)
334 build_phase->Visit(visitor); 345 build_phase->Visit(visitor);
335 }
336 } 346 }
337 347
338 // PBXAggregateTarget --------------------------------------------------------- 348 // PBXAggregateTarget ---------------------------------------------------------
339 349
340 PBXAggregateTarget::PBXAggregateTarget(const std::string& name, 350 PBXAggregateTarget::PBXAggregateTarget(const std::string& name,
341 const std::string& shell_script, 351 const std::string& shell_script,
342 const std::string& config_name, 352 const std::string& config_name,
343 const PBXAttributes& attributes) 353 const PBXAttributes& attributes)
344 : PBXTarget(name, shell_script, config_name, attributes) {} 354 : PBXTarget(name, shell_script, config_name, attributes) {}
345 355
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 PrintProperty(out, rules, "fileRef", file_reference_); 402 PrintProperty(out, rules, "fileRef", file_reference_);
393 if (compiler_flag_ == CompilerFlags::HELP) { 403 if (compiler_flag_ == CompilerFlags::HELP) {
394 std::map<std::string, std::string> settings = { 404 std::map<std::string, std::string> settings = {
395 {"COMPILER_FLAGS", "--help"}, 405 {"COMPILER_FLAGS", "--help"},
396 }; 406 };
397 PrintProperty(out, rules, "settings", settings); 407 PrintProperty(out, rules, "settings", settings);
398 } 408 }
399 out << "};\n"; 409 out << "};\n";
400 } 410 }
401 411
412 // PBXContainerItemProxy ------------------------------------------------------
413 PBXContainerItemProxy::PBXContainerItemProxy(const PBXProject* project,
414 const PBXTarget* target)
415 : project_(project), target_(target) {}
416
417 PBXContainerItemProxy::~PBXContainerItemProxy() {}
418
419 PBXObjectClass PBXContainerItemProxy::Class() const {
420 return PBXContainerItemProxyClass;
421 }
422
423 void PBXContainerItemProxy::Visit(PBXObjectVisitor& visitor) {
424 PBXObject::Visit(visitor);
425 }
426
427 std::string PBXContainerItemProxy::Name() const {
428 return "PBXContainerItemProxy";
429 }
430
431 void PBXContainerItemProxy::Print(std::ostream& out, unsigned indent) const {
432 const std::string indent_str(indent, '\t');
433 const IndentRules rules = {true, 0};
434 out << indent_str << Reference() << " = {";
435 PrintProperty(out, rules, "isa", ToString(Class()));
436 PrintProperty(out, rules, "containerPortal", project_);
437 PrintProperty(out, rules, "proxyType", 1u);
438 PrintProperty(out, rules, "remoteGlobalIDString", target_);
439 PrintProperty(out, rules, "remoteInfo", target_->Name());
440 out << indent_str << "};\n";
441 }
442
402 // PBXFileReference ----------------------------------------------------------- 443 // PBXFileReference -----------------------------------------------------------
403 444
404 PBXFileReference::PBXFileReference(const std::string& name, 445 PBXFileReference::PBXFileReference(const std::string& name,
405 const std::string& path, 446 const std::string& path,
406 const std::string& type) 447 const std::string& type)
407 : name_(name), path_(path), type_(type) {} 448 : name_(name), path_(path), type_(type) {}
408 449
409 PBXFileReference::~PBXFileReference() {} 450 PBXFileReference::~PBXFileReference() {}
410 451
411 PBXObjectClass PBXFileReference::Class() const { 452 PBXObjectClass PBXFileReference::Class() const {
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 } 638 }
598 639
599 void PBXNativeTarget::Print(std::ostream& out, unsigned indent) const { 640 void PBXNativeTarget::Print(std::ostream& out, unsigned indent) const {
600 const std::string indent_str(indent, '\t'); 641 const std::string indent_str(indent, '\t');
601 const IndentRules rules = {false, indent + 1}; 642 const IndentRules rules = {false, indent + 1};
602 out << indent_str << Reference() << " = {\n"; 643 out << indent_str << Reference() << " = {\n";
603 PrintProperty(out, rules, "isa", ToString(Class())); 644 PrintProperty(out, rules, "isa", ToString(Class()));
604 PrintProperty(out, rules, "buildConfigurationList", configurations_); 645 PrintProperty(out, rules, "buildConfigurationList", configurations_);
605 PrintProperty(out, rules, "buildPhases", build_phases_); 646 PrintProperty(out, rules, "buildPhases", build_phases_);
606 PrintProperty(out, rules, "buildRules", EmptyPBXObjectVector()); 647 PrintProperty(out, rules, "buildRules", EmptyPBXObjectVector());
607 PrintProperty(out, rules, "dependencies", EmptyPBXObjectVector()); 648 PrintProperty(out, rules, "dependencies", dependencies_);
608 PrintProperty(out, rules, "name", name_); 649 PrintProperty(out, rules, "name", name_);
609 PrintProperty(out, rules, "productName", product_name_); 650 PrintProperty(out, rules, "productName", product_name_);
610 PrintProperty(out, rules, "productReference", product_reference_); 651 PrintProperty(out, rules, "productReference", product_reference_);
611 PrintProperty(out, rules, "productType", product_type_); 652 PrintProperty(out, rules, "productType", product_type_);
612 out << indent_str << "};\n"; 653 out << indent_str << "};\n";
613 } 654 }
614 655
615 // PBXProject ----------------------------------------------------------------- 656 // PBXProject -----------------------------------------------------------------
616 657
617 PBXProject::PBXProject(const std::string& name, 658 PBXProject::PBXProject(const std::string& name,
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 const std::string indent_str(indent, '\t'); 877 const std::string indent_str(indent, '\t');
837 const IndentRules rules = {false, indent + 1}; 878 const IndentRules rules = {false, indent + 1};
838 out << indent_str << Reference() << " = {\n"; 879 out << indent_str << Reference() << " = {\n";
839 PrintProperty(out, rules, "isa", ToString(Class())); 880 PrintProperty(out, rules, "isa", ToString(Class()));
840 PrintProperty(out, rules, "buildActionMask", 0x7fffffffu); 881 PrintProperty(out, rules, "buildActionMask", 0x7fffffffu);
841 PrintProperty(out, rules, "files", files_); 882 PrintProperty(out, rules, "files", files_);
842 PrintProperty(out, rules, "runOnlyForDeploymentPostprocessing", 0u); 883 PrintProperty(out, rules, "runOnlyForDeploymentPostprocessing", 0u);
843 out << indent_str << "};\n"; 884 out << indent_str << "};\n";
844 } 885 }
845 886
887 PBXTargetDependency::PBXTargetDependency(
888 const PBXTarget* target,
889 std::unique_ptr<PBXContainerItemProxy> container_item_proxy)
890 : target_(target), container_item_proxy_(std::move(container_item_proxy)) {}
891
892 PBXTargetDependency::~PBXTargetDependency() {}
893
894 PBXObjectClass PBXTargetDependency::Class() const {
895 return PBXTargetDependencyClass;
896 }
897 std::string PBXTargetDependency::Name() const {
898 return "PBXTargetDependency";
899 }
900 void PBXTargetDependency::Visit(PBXObjectVisitor& visitor) {
901 PBXObject::Visit(visitor);
902 container_item_proxy_->Visit(visitor);
903 }
904 void PBXTargetDependency::Print(std::ostream& out, unsigned indent) const {
905 const std::string indent_str(indent, '\t');
906 const IndentRules rules = {false, indent + 1};
907 out << indent_str << Reference() << " = {\n";
908 PrintProperty(out, rules, "isa", ToString(Class()));
909 PrintProperty(out, rules, "target", target_);
910 PrintProperty(out, rules, "targetProxy", container_item_proxy_);
911 out << indent_str << "};\n";
912 }
913
846 // XCBuildConfiguration ------------------------------------------------------- 914 // XCBuildConfiguration -------------------------------------------------------
847 915
848 XCBuildConfiguration::XCBuildConfiguration(const std::string& name, 916 XCBuildConfiguration::XCBuildConfiguration(const std::string& name,
849 const PBXAttributes& attributes) 917 const PBXAttributes& attributes)
850 : attributes_(attributes), name_(name) {} 918 : attributes_(attributes), name_(name) {}
851 919
852 XCBuildConfiguration::~XCBuildConfiguration() {} 920 XCBuildConfiguration::~XCBuildConfiguration() {}
853 921
854 PBXObjectClass XCBuildConfiguration::Class() const { 922 PBXObjectClass XCBuildConfiguration::Class() const {
855 return XCBuildConfigurationClass; 923 return XCBuildConfigurationClass;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
905 const std::string indent_str(indent, '\t'); 973 const std::string indent_str(indent, '\t');
906 const IndentRules rules = {false, indent + 1}; 974 const IndentRules rules = {false, indent + 1};
907 out << indent_str << Reference() << " = {\n"; 975 out << indent_str << Reference() << " = {\n";
908 PrintProperty(out, rules, "isa", ToString(Class())); 976 PrintProperty(out, rules, "isa", ToString(Class()));
909 PrintProperty(out, rules, "buildConfigurations", configurations_); 977 PrintProperty(out, rules, "buildConfigurations", configurations_);
910 PrintProperty(out, rules, "defaultConfigurationIsVisible", 1u); 978 PrintProperty(out, rules, "defaultConfigurationIsVisible", 1u);
911 PrintProperty(out, rules, "defaultConfigurationName", 979 PrintProperty(out, rules, "defaultConfigurationName",
912 configurations_[0]->Name()); 980 configurations_[0]->Name());
913 out << indent_str << "};\n"; 981 out << indent_str << "};\n";
914 } 982 }
OLDNEW
« no previous file with comments | « tools/gn/xcode_object.h ('k') | tools/gn/xcode_writer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698