| /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
| file Copyright.txt or https://cmake.org/licensing for details. */ |
| #include "cmXCode21Object.h" |
| |
| #include <ostream> |
| #include <string> |
| #include <utility> |
| |
| #include "cmSystemTools.h" |
| |
| cmXCode21Object::cmXCode21Object(PBXType ptype, Type type, std::string id) |
| : cmXCodeObject(ptype, type, std::move(id)) |
| { |
| this->Version = 21; |
| } |
| |
| void cmXCode21Object::PrintComment(std::ostream& out) |
| { |
| if (this->Comment.empty()) { |
| cmXCodeObject* n = this->GetAttribute("name"); |
| if (n) { |
| this->Comment = n->GetString(); |
| cmSystemTools::ReplaceString(this->Comment, "\"", ""); |
| } |
| } |
| if (this->Comment.empty()) { |
| return; |
| } |
| out << " /* "; |
| out << this->Comment; |
| out << " */"; |
| } |
| |
| void cmXCode21Object::PrintList( |
| std::vector<std::unique_ptr<cmXCodeObject>> const& v, std::ostream& out, |
| PBXType t) |
| { |
| bool hasOne = false; |
| for (const auto& obj : v) { |
| if (obj->GetType() == OBJECT && obj->GetIsA() == t) { |
| hasOne = true; |
| break; |
| } |
| } |
| if (!hasOne) { |
| return; |
| } |
| out << "\n/* Begin " << PBXTypeNames[t] << " section */\n"; |
| for (const auto& obj : v) { |
| if (obj->GetType() == OBJECT && obj->GetIsA() == t) { |
| obj->Print(out); |
| } |
| } |
| out << "/* End " << PBXTypeNames[t] << " section */\n"; |
| } |
| |
| void cmXCode21Object::PrintList( |
| std::vector<std::unique_ptr<cmXCodeObject>> const& v, std::ostream& out) |
| { |
| cmXCodeObject::Indent(1, out); |
| out << "objects = {\n"; |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXAggregateTarget); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXBuildFile); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXBuildStyle); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXContainerItemProxy); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXFileReference); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXFrameworksBuildPhase); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXGroup); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXHeadersBuildPhase); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXNativeTarget); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXProject); |
| cmXCode21Object::PrintList(v, out, |
| cmXCode21Object::PBXShellScriptBuildPhase); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXResourcesBuildPhase); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXSourcesBuildPhase); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXCopyFilesBuildPhase); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXApplicationReference); |
| cmXCode21Object::PrintList(v, out, |
| cmXCode21Object::PBXExecutableFileReference); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXLibraryReference); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXToolTarget); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXLibraryTarget); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::PBXTargetDependency); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::XCBuildConfiguration); |
| cmXCode21Object::PrintList(v, out, cmXCode21Object::XCConfigurationList); |
| cmXCodeObject::Indent(1, out); |
| out << "};\n"; |
| } |