Bladeren bron

Xcode: Fix single-configuration generation for version 1.5

In commit 84fdc992 (stringapi: Pass configuration names as strings,
2014-02-09) a few code paths for the Xcode 1.5 single-configuration
generator were not updated to use an empty configuration name instead of
a NULL pointer when no configuration is specified in CMAKE_BUILD_TYPE.
Fix them now.
Brad King 11 jaren geleden
bovenliggende
commit
23dc6aa194
1 gewijzigde bestanden met toevoegingen van 5 en 13 verwijderingen
  1. 5 13
      Source/cmGlobalXCodeGenerator.cxx

+ 5 - 13
Source/cmGlobalXCodeGenerator.cxx

@@ -2442,8 +2442,8 @@ cmGlobalXCodeGenerator::CreateUtilityTarget(cmTarget& cmtarget)
     }
   else
     {
-    const char* theConfig =
-      this->CurrentMakefile->GetDefinition("CMAKE_BUILD_TYPE");
+    std::string theConfig =
+      this->CurrentMakefile->GetSafeDefinition("CMAKE_BUILD_TYPE");
     cmXCodeObject* buildSettings =
       this->CreateObject(cmXCodeObject::ATTRIBUTE_GROUP);
     this->CreateBuildSettings(cmtarget, buildSettings, theConfig);
@@ -2821,11 +2821,7 @@ void cmGlobalXCodeGenerator
       i != this->CurrentConfigurationTypes.end(); ++i)
     {
     // Get the current configuration name.
-    const char* configName = i->c_str();
-    if(!*configName)
-      {
-      configName = 0;
-      }
+    std::string configName = *i;
 
     if(this->XcodeVersion >= 50)
       {
@@ -3512,11 +3508,7 @@ cmGlobalXCodeGenerator::CreateXCodeDependHackTarget(
         ct = this->CurrentConfigurationTypes.begin();
       ct != this->CurrentConfigurationTypes.end(); ++ct)
     {
-    const char* configName = 0;
-    if(!ct->empty())
-      {
-      configName = ct->c_str();
-      }
+    std::string configName = *ct;
     for(std::vector<cmXCodeObject*>::iterator i = targets.begin();
         i != targets.end(); ++i)
       {
@@ -3969,7 +3961,7 @@ bool cmGlobalXCodeGenerator::IsMultiConfig()
 void cmGlobalXCodeGenerator
 ::ComputeTargetObjectDirectory(cmGeneratorTarget* gt) const
 {
-  const char* configName = this->GetCMakeCFGIntDir();
+  std::string configName = this->GetCMakeCFGIntDir();
   std::string dir = this->GetObjectsNormalDirectory(
     "$(PROJECT_NAME)", configName, gt->Target);
   if(this->XcodeVersion >= 21)