Merge topic 'xcode-attribute-conditions'
c519bb2
XCode: Also qoute [] as needed to set build-configurations.
This commit is contained in:
commit
89460b7fd7
|
@ -146,13 +146,15 @@ void cmXCodeObject::Print(std::ostream& out)
|
|||
|
||||
if(j->second->TypeValue == STRING)
|
||||
{
|
||||
out << j->first << " = ";
|
||||
cmXCodeObject::PrintString(out,j->first);
|
||||
out << " = ";
|
||||
j->second->PrintString(out);
|
||||
out << ";";
|
||||
}
|
||||
else if(j->second->TypeValue == OBJECT_LIST)
|
||||
{
|
||||
out << j->first << " = (";
|
||||
cmXCodeObject::PrintString(out,j->first);
|
||||
out << " = (";
|
||||
for(unsigned int k = 0; k < j->second->List.size(); k++)
|
||||
{
|
||||
if(j->second->List[k]->TypeValue == STRING)
|
||||
|
@ -169,7 +171,8 @@ void cmXCodeObject::Print(std::ostream& out)
|
|||
}
|
||||
else
|
||||
{
|
||||
out << j->first << " = error_unexpected_TypeValue_" <<
|
||||
cmXCodeObject::PrintString(out,j->first);
|
||||
out << " = error_unexpected_TypeValue_" <<
|
||||
j->second->TypeValue << ";";
|
||||
}
|
||||
|
||||
|
@ -180,7 +183,8 @@ void cmXCodeObject::Print(std::ostream& out)
|
|||
}
|
||||
else if(object->TypeValue == OBJECT_REF)
|
||||
{
|
||||
out << i->first << " = " << object->Object->Id;
|
||||
cmXCodeObject::PrintString(out,i->first);
|
||||
out << " = " << object->Object->Id;
|
||||
if(object->Object->HasComment() && i->first != "remoteGlobalIDString")
|
||||
{
|
||||
out << " ";
|
||||
|
@ -190,7 +194,8 @@ void cmXCodeObject::Print(std::ostream& out)
|
|||
}
|
||||
else if(object->TypeValue == STRING)
|
||||
{
|
||||
out << i->first << " = ";
|
||||
cmXCodeObject::PrintString(out,i->first);
|
||||
out << " = ";
|
||||
object->PrintString(out);
|
||||
out << ";" << separator;
|
||||
}
|
||||
|
@ -230,19 +235,19 @@ void cmXCodeObject::CopyAttributes(cmXCodeObject* copy)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmXCodeObject::PrintString(std::ostream& os) const
|
||||
void cmXCodeObject::PrintString(std::ostream& os,cmStdString String)
|
||||
{
|
||||
// The string needs to be quoted if it contains any characters
|
||||
// considered special by the Xcode project file parser.
|
||||
bool needQuote =
|
||||
(this->String.empty() ||
|
||||
this->String.find_first_of(" <>.+-=@$") != this->String.npos);
|
||||
(String.empty() ||
|
||||
String.find_first_of(" <>.+-=@$[]") != String.npos);
|
||||
const char* quote = needQuote? "\"" : "";
|
||||
|
||||
// Print the string, quoted and escaped as necessary.
|
||||
os << quote;
|
||||
for(std::string::const_iterator i = this->String.begin();
|
||||
i != this->String.end(); ++i)
|
||||
for(std::string::const_iterator i = String.begin();
|
||||
i != String.end(); ++i)
|
||||
{
|
||||
if(*i == '"')
|
||||
{
|
||||
|
@ -254,6 +259,11 @@ void cmXCodeObject::PrintString(std::ostream& os) const
|
|||
os << quote;
|
||||
}
|
||||
|
||||
void cmXCodeObject::PrintString(std::ostream& os) const
|
||||
{
|
||||
cmXCodeObject::PrintString(os,this->String);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmXCodeObject::SetString(const char* s)
|
||||
{
|
||||
|
|
|
@ -141,6 +141,7 @@ public:
|
|||
}
|
||||
std::vector<cmXCodeObject*> const& GetObjectList() { return this->List;}
|
||||
void SetComment(const char* c) { this->Comment = c;}
|
||||
static void PrintString(std::ostream& os,cmStdString String);
|
||||
protected:
|
||||
void PrintString(std::ostream& os) const;
|
||||
|
||||
|
|
Loading…
Reference in New Issue