Xcode: Add function to conditionally add Xcode Attributes

This commit is contained in:
Gregor Jasny 2016-06-12 21:39:16 +02:00 committed by Brad King
parent 025edea019
commit 82ebbf683e
2 changed files with 25 additions and 0 deletions

View File

@ -83,6 +83,22 @@ cmXCodeObject::cmXCodeObject(PBXType ptype, Type type)
}
}
bool cmXCodeObject::IsEmpty() const
{
switch (this->TypeValue) {
case OBJECT_LIST:
return this->List.empty();
case STRING:
return this->String.empty();
case ATTRIBUTE_GROUP:
return this->ObjectAttributes.empty();
case OBJECT_REF:
case OBJECT:
return this->Object == 0;
}
return true; // unreachable, but quiets warnings
}
void cmXCodeObject::Indent(int level, std::ostream& out)
{
while (level) {

View File

@ -62,6 +62,8 @@ public:
Type GetType() const { return this->TypeValue; }
PBXType GetIsA() const { return this->IsA; }
bool IsEmpty() const;
void SetString(const std::string& s);
const std::string& GetString() const { return this->String; }
@ -70,6 +72,13 @@ public:
this->ObjectAttributes[name] = value;
}
void AddAttributeIfNotEmpty(const std::string& name, cmXCodeObject* value)
{
if (value && !value->IsEmpty()) {
AddAttribute(name, value);
}
}
void SetObject(cmXCodeObject* value) { this->Object = value; }
cmXCodeObject* GetObject() { return this->Object; }
void AddObject(cmXCodeObject* value) { this->List.push_back(value); }