Xcode: Store configuration name along with XcodeObject (#14947)

This commit is contained in:
Gregor Jasny 2016-01-03 11:58:52 +01:00
parent 28f98ceef1
commit dc0ddb9e34
1 changed files with 9 additions and 10 deletions

View File

@ -3440,18 +3440,19 @@ bool cmGlobalXCodeGenerator
this->CreateObject(cmXCodeObject::XCConfigurationList); this->CreateObject(cmXCodeObject::XCConfigurationList);
cmXCodeObject* buildConfigurations = cmXCodeObject* buildConfigurations =
this->CreateObject(cmXCodeObject::OBJECT_LIST); this->CreateObject(cmXCodeObject::OBJECT_LIST);
std::vector<cmXCodeObject*> configs; typedef std::vector<std::pair<std::string, cmXCodeObject*> > Configs;
Configs configs;
const char *defaultConfigName = "Debug"; const char *defaultConfigName = "Debug";
if(this->XcodeVersion == 15) if(this->XcodeVersion == 15)
{ {
cmXCodeObject* configDebug = cmXCodeObject* configDebug =
this->CreateObject(cmXCodeObject::XCBuildConfiguration); this->CreateObject(cmXCodeObject::XCBuildConfiguration);
configDebug->AddAttribute("name", this->CreateString("Debug")); configDebug->AddAttribute("name", this->CreateString("Debug"));
configs.push_back(configDebug); configs.push_back(std::make_pair("Debug", configDebug));
cmXCodeObject* configRelease = cmXCodeObject* configRelease =
this->CreateObject(cmXCodeObject::XCBuildConfiguration); this->CreateObject(cmXCodeObject::XCBuildConfiguration);
configRelease->AddAttribute("name", this->CreateString("Release")); configRelease->AddAttribute("name", this->CreateString("Release"));
configs.push_back(configRelease); configs.push_back(std::make_pair("Release", configRelease));
} }
else else
{ {
@ -3465,13 +3466,12 @@ bool cmGlobalXCodeGenerator
cmXCodeObject* config = cmXCodeObject* config =
this->CreateObject(cmXCodeObject::XCBuildConfiguration); this->CreateObject(cmXCodeObject::XCBuildConfiguration);
config->AddAttribute("name", this->CreateString(name)); config->AddAttribute("name", this->CreateString(name));
configs.push_back(config); configs.push_back(std::make_pair(name, config));
} }
} }
for(std::vector<cmXCodeObject*>::iterator c = configs.begin(); for(Configs::iterator c = configs.begin(); c != configs.end(); ++c)
c != configs.end(); ++c)
{ {
buildConfigurations->AddObject(*c); buildConfigurations->AddObject(c->second);
} }
configlist->AddAttribute("buildConfigurations", buildConfigurations); configlist->AddAttribute("buildConfigurations", buildConfigurations);
@ -3547,10 +3547,9 @@ bool cmGlobalXCodeGenerator
} }
} }
for( std::vector<cmXCodeObject*>::iterator i = configs.begin(); for(Configs::iterator i = configs.begin(); i != configs.end(); ++i)
i != configs.end(); ++i)
{ {
(*i)->AddAttribute("buildSettings", buildSettings); i->second->AddAttribute("buildSettings", buildSettings);
} }
this->RootObject->AddAttribute("buildConfigurationList", this->RootObject->AddAttribute("buildConfigurationList",