[Cmake-commits] [cmake-commits] king committed cmGlobalXCodeGenerator.cxx 1.237 1.238

cmake-commits at cmake.org cmake-commits at cmake.org
Wed Oct 28 09:12:41 EDT 2009


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

Modified Files:
	cmGlobalXCodeGenerator.cxx 
Log Message:
Keep Xcode intermediate files away from output dir

Previously the Xcode generator set SYMROOT to be the target output
directory.  This told Xcode to put the "<proj>.build" directory in the
output path too.

This commit sets SYMROOT, CONFIGURATION_BUILD_DIR, and OBJROOT to put
intermediate files in the build directory corresponding to the source
directory that created each target.  This is more consistent with the VS
IDE generators.  Now only the build output files (actual targets) go to
the target output directory.


Index: cmGlobalXCodeGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmGlobalXCodeGenerator.cxx,v
retrieving revision 1.237
retrieving revision 1.238
diff -C 2 -d -r1.237 -r1.238
*** cmGlobalXCodeGenerator.cxx	26 Oct 2009 14:05:46 -0000	1.237
--- cmGlobalXCodeGenerator.cxx	28 Oct 2009 13:12:38 -0000	1.238
***************
*** 1565,1569 ****
       target.GetType() == cmTarget::EXECUTABLE)
      {
!     pndir = target.GetDirectory();
      buildSettings->AddAttribute("EXECUTABLE_PREFIX", 
                                  this->CreateString(pnprefix.c_str()));
--- 1565,1580 ----
       target.GetType() == cmTarget::EXECUTABLE)
      {
!     if(this->XcodeVersion >= 21)
!       {
!       std::string pncdir = target.GetDirectory(configName);
!       buildSettings->AddAttribute("CONFIGURATION_BUILD_DIR",
!                                   this->CreateString(pncdir.c_str()));
!       }
!     else
!       {
!       buildSettings->AddAttribute("OBJROOT",
!                                   this->CreateString(pndir.c_str()));
!       pndir = target.GetDirectory(configName);
!       }
      buildSettings->AddAttribute("EXECUTABLE_PREFIX", 
                                  this->CreateString(pnprefix.c_str()));
***************
*** 2911,2915 ****
          if(this->Architectures.size() > 1)
            {
!           std::string universal = t->GetDirectory();
            universal += "/";
            universal += this->CurrentProject;
--- 2922,2927 ----
          if(this->Architectures.size() > 1)
            {
!           std::string universal =
!             t->GetMakefile()->GetCurrentOutputDirectory();
            universal += "/";
            universal += this->CurrentProject;



More information about the Cmake-commits mailing list