Xcode: Support XCODE_ATTRIBUTE_ with [variant=<config>] (#12532)
Since commit c519bb2b
(XCode: Also qoute [] as needed to set
build-configurations, 2011-04-05) we escape "[]" conditions for
XCODE_ATTRIBUTE_ settings. However, we need to handle the "variant"
condition with a special case to map it only into the settings for the
matching configuration.
This commit is contained in:
parent
4825d70e83
commit
332350b9c4
|
@ -2241,8 +2241,39 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
|
||||||
{
|
{
|
||||||
if(i->first.find("XCODE_ATTRIBUTE_") == 0)
|
if(i->first.find("XCODE_ATTRIBUTE_") == 0)
|
||||||
{
|
{
|
||||||
buildSettings->AddAttribute(i->first.substr(16).c_str(),
|
cmStdString attribute = i->first.substr(16);
|
||||||
this->CreateString(i->second.GetValue()));
|
// Handle [variant=<config>] condition explicitly here.
|
||||||
|
cmStdString::size_type beginVariant =
|
||||||
|
attribute.find("[variant=");
|
||||||
|
if (beginVariant != cmStdString::npos)
|
||||||
|
{
|
||||||
|
cmStdString::size_type endVariant =
|
||||||
|
attribute.find("]", beginVariant+9);
|
||||||
|
if (endVariant != cmStdString::npos)
|
||||||
|
{
|
||||||
|
// Compare the variant to the configuration.
|
||||||
|
cmStdString variant =
|
||||||
|
attribute.substr(beginVariant+9, endVariant-beginVariant-9);
|
||||||
|
if (variant == configName)
|
||||||
|
{
|
||||||
|
// The variant matches the configuration so use this
|
||||||
|
// attribute but drop the [variant=<config>] condition.
|
||||||
|
attribute.erase(beginVariant, endVariant-beginVariant+1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// The variant does not match the configuration so
|
||||||
|
// do not use this attribute.
|
||||||
|
attribute.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!attribute.empty())
|
||||||
|
{
|
||||||
|
buildSettings->AddAttribute(attribute.c_str(),
|
||||||
|
this->CreateString(i->second.GetValue()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue