Xcode: Add function to conditionally add Xcode Attributes
This commit is contained in:
parent
025edea019
commit
82ebbf683e
|
@ -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) {
|
||||
|
|
|
@ -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); }
|
||||
|
|
Loading…
Reference in New Issue