[Cmake-commits] [cmake-commits] king committed cmGlobalXCodeGenerator.cxx 1.213 1.214 cmGlobalXCodeGenerator.h 1.58 1.59

cmake-commits at cmake.org cmake-commits at cmake.org
Thu Jul 2 14:14:06 EDT 2009


Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv20313/Source

Modified Files:
	cmGlobalXCodeGenerator.cxx cmGlobalXCodeGenerator.h 
Log Message:
BUG: Do not generate "global" Xcode config

Xcode 2.0 and below supported only one configuration, but 2.1 and above
support multiple configurations.  In projects for the latter version we
have been generating a "global" set of buildSettings for each target in
addition to the per-configuration settings.  These global settings are
not used by Xcode 2.1 and above, so we should not generate them.


Index: cmGlobalXCodeGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmGlobalXCodeGenerator.cxx,v
retrieving revision 1.213
retrieving revision 1.214
diff -C 2 -d -r1.213 -r1.214
*** cmGlobalXCodeGenerator.cxx	2 Jul 2009 18:13:46 -0000	1.213
--- cmGlobalXCodeGenerator.cxx	2 Jul 2009 18:14:01 -0000	1.214
***************
*** 1840,1846 ****
                               cmtarget);
    target->AddAttribute("buildPhases", buildPhases);
-   cmXCodeObject* buildSettings =
-     this->CreateObject(cmXCodeObject::ATTRIBUTE_GROUP);
-   const char* globalConfig = 0;
    if(this->XcodeVersion > 20)
      {
--- 1840,1843 ----
***************
*** 1849,1856 ****
    else
      {
!     globalConfig = this->CurrentMakefile->GetDefinition("CMAKE_BUILD_TYPE");  
      }
-   this->CreateBuildSettings(cmtarget, buildSettings, globalConfig);
-   target->AddAttribute("buildSettings", buildSettings);
    cmXCodeObject* dependencies = 
      this->CreateObject(cmXCodeObject::OBJECT_LIST);
--- 1846,1856 ----
    else
      {
!     const char* theConfig =
!       this->CurrentMakefile->GetDefinition("CMAKE_BUILD_TYPE");
!     cmXCodeObject* buildSettings =
!       this->CreateObject(cmXCodeObject::ATTRIBUTE_GROUP);
!     this->CreateBuildSettings(cmtarget, buildSettings, theConfig);
!     target->AddAttribute("buildSettings", buildSettings);
      }
    cmXCodeObject* dependencies = 
      this->CreateObject(cmXCodeObject::OBJECT_LIST);
***************
*** 1878,1883 ****
  
  //----------------------------------------------------------------------------
! void cmGlobalXCodeGenerator::AddConfigurations(cmXCodeObject* target,
!                                                cmTarget& cmtarget)
  {
    std::string configTypes = 
--- 1878,1883 ----
  
  //----------------------------------------------------------------------------
! std::string cmGlobalXCodeGenerator::AddConfigurations(cmXCodeObject* target,
!                                                       cmTarget& cmtarget)
  {
    std::string configTypes = 
***************
*** 1919,1923 ****
--- 1919,1925 ----
      configlist->AddAttribute("defaultConfigurationIsVisible", 
                               this->CreateString("0"));
+     return configVector[0];
      }
+   return "";
  }
  
***************
*** 1975,1991 ****
    cmXCodeObject* buildRules = this->CreateObject(cmXCodeObject::OBJECT_LIST);
    target->AddAttribute("buildRules", buildRules);
!   cmXCodeObject* buildSettings =
!     this->CreateObject(cmXCodeObject::ATTRIBUTE_GROUP);
!   const char* globalConfig = 0;
    if(this->XcodeVersion > 20)
      {
!     this->AddConfigurations(target, cmtarget);
      }
    else
      {
!     globalConfig = this->CurrentMakefile->GetDefinition("CMAKE_BUILD_TYPE");  
      }
-   this->CreateBuildSettings(cmtarget, buildSettings, globalConfig);
-   target->AddAttribute("buildSettings", buildSettings);
    cmXCodeObject* dependencies = 
      this->CreateObject(cmXCodeObject::OBJECT_LIST);
--- 1977,1993 ----
    cmXCodeObject* buildRules = this->CreateObject(cmXCodeObject::OBJECT_LIST);
    target->AddAttribute("buildRules", buildRules);
!   std::string defConfig;
    if(this->XcodeVersion > 20)
      {
!     defConfig = this->AddConfigurations(target, cmtarget);
      }
    else
      {
!     cmXCodeObject* buildSettings =
!       this->CreateObject(cmXCodeObject::ATTRIBUTE_GROUP);
!     defConfig = this->CurrentMakefile->GetSafeDefinition("CMAKE_BUILD_TYPE");
!     this->CreateBuildSettings(cmtarget, buildSettings, defConfig.c_str());
!     target->AddAttribute("buildSettings", buildSettings);
      }
    cmXCodeObject* dependencies = 
      this->CreateObject(cmXCodeObject::OBJECT_LIST);
***************
*** 2000,2004 ****
      fileRef->AddAttribute("explicitFileType", this->CreateString(fileType));
      }
!   std::string fullName = cmtarget.GetFullName(globalConfig);
    fileRef->AddAttribute("path", this->CreateString(fullName.c_str()));
    fileRef->AddAttribute("refType", this->CreateString("0"));
--- 2002,2006 ----
      fileRef->AddAttribute("explicitFileType", this->CreateString(fileType));
      }
!   std::string fullName = cmtarget.GetFullName(defConfig.c_str());
    fileRef->AddAttribute("path", this->CreateString(fullName.c_str()));
    fileRef->AddAttribute("refType", this->CreateString("0"));

Index: cmGlobalXCodeGenerator.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmGlobalXCodeGenerator.h,v
retrieving revision 1.58
retrieving revision 1.59
diff -C 2 -d -r1.58 -r1.59
*** cmGlobalXCodeGenerator.h	2 Jul 2009 18:13:46 -0000	1.58
--- cmGlobalXCodeGenerator.h	2 Jul 2009 18:14:03 -0000	1.59
***************
*** 131,136 ****
    const char* GetTargetFileType(cmTarget& cmtarget);
    const char* GetTargetProductType(cmTarget& cmtarget);
!   void AddConfigurations(cmXCodeObject* target,
!                          cmTarget& cmtarget);
    void AppendOrAddBuildSetting(cmXCodeObject* settings, const char* attr, 
                                 const char* value);
--- 131,135 ----
    const char* GetTargetFileType(cmTarget& cmtarget);
    const char* GetTargetProductType(cmTarget& cmtarget);
!   std::string AddConfigurations(cmXCodeObject* target, cmTarget& cmtarget);
    void AppendOrAddBuildSetting(cmXCodeObject* settings, const char* attr, 
                                 const char* value);



More information about the Cmake-commits mailing list