[CMake] CMake cvs TOT and Xcode

Bill Hoffman bill.hoffman at kitware.com
Fri Oct 2 11:32:52 EDT 2009


Sean McBride wrote:
> On 10/2/09 10:40 AM, Bill Hoffman said:
> 
>> We did change CMake.  Before we used to hard code the build archs into 
>> the file (i386, ppc, etc.).   We now use a variable that Xcode uses, 
>> something like $(DEFAULT_ARCH) different name, but you get the idea. If 
>> that is not defined for some reason for this version of Xcode we can fix 
>> it.  CMake knows what version it is building for.  We did have this same 
>> problem with Xcode 1.5 and did a fix.   So, since this is most likely a 
>> regression, I would like to fix it.   However, I don't have access to 
>> Xcode 3.0 so it is hard to fix... :)
> 
> Xcode 3.0 is free to download, though you do need a (free) ADC account:
> https://connect.apple.com
> 
> You can also have multiple versions of Xcode installed simultaneously,
> so you could have 3.0 and 3.1.4 installed.  (I'm not sure how well CMake
> itself would deal with this though.)
> 
> And the Xcode release notes have a detailed account of what changed when:
> <http://developer.apple.com/mac/library/releasenotes/DeveloperTools/RN-
> Xcode/index.html>
> 
> I bet if you searched it for 'something like $(DEFAULT_ARCH)' you'd find
> when that was added (probably 3.1). 
> 
Well, let me rephrase that....  I don't want to install Xcode 3.0 if I 
don't have to...  :)

Hmmm, looking at the code:

cmGlobalXcodeGenerator.cxx line 2645:

  if(this->XcodeVersion >= 32)
       {
       osxArch = "$(ARCHS_STANDARD_32_64_BIT)";
       }
   else if(this->XcodeVersion <= 25)
       {
#ifdef __i386
       osxArch = "i386";
#endif
#ifdef __ppc__
       osxArch = "ppc";
#endif
       }
     else
       {
       osxArch = "$(ARCHS_STANDARD_32_BIT)";
       }


I bet 30 had the ARCHS_STANDARD_32_64_BIT.  So, James, can you try 
changing CMake to have  if(this->XcodeVersion >= 30) and see if it fixes 
the problem?

-Bill



More information about the CMake mailing list