[cmake-developers] [CMake 0011570]: CMake generates older Xcode project versions; must always be upgraded

Mantis Bug Tracker mantis at public.kitware.com
Sat Dec 4 03:21:58 EST 2010


The following issue has been SUBMITTED. 
====================================================================== 
http://public.kitware.com/Bug/view.php?id=11570 
====================================================================== 
Reported By:                Matthew Firlik
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   11570
Category:                   CMake
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
====================================================================== 
Date Submitted:             2010-12-04 03:21 EST
Last Modified:              2010-12-04 03:21 EST
====================================================================== 
Summary:                    CMake generates older Xcode project versions;  must
always be upgraded
Description: 
When using CMake to generate an Xcode project, the resulting project uses the
Xcode v3.1 compatibility format.  The current project format is v3.2.

While all of the Xcode IDE v3.2 releases will read the v3.1 format, and using
that format provides wide-ranging compatibility for developers who may not have
upgraded their tool chain, it also forces the IDE and command-line build tool
(xcodebuild) to always upgrade the project format in memory ... every time the
project is opened or built.  The upgrade logic is optimized to be efficient, but
not performing it at all is better: for large projects (like LLVM, which has 200
targets and thousands of files), avoiding the upgrade is beneficial.  (And while
developer's can upgrade the format from within the IDE, most will not know to.)

Xcode v3.2 was provided with Snow Leopard, released in August of 2009:  it is
required for all current iOS development, and with the addition of features like
static analysis it is the tool chain most Cocoa developers have moved to. 
(Obviously, Xcode v3.2.x is the currently recommended tool chain.)

The forthcoming Xcode 4.0 release will use the same project format as Xcode v3.2
(for complete build compatibility during migration.)  Moving the project
compatibility format used in the CMake conversion to v3.2 it will further reduce
the upgrade need for projects.

Steps to Reproduce: 
- Run the cmake conversion on a larger project (like LLVM) to output an Xcode
project
- In a text editor, open the embedded project.pbxproj file
- Look for the following keys:

	objectVersion = 45;
	compatibilityVersion = "Xcode 3.1"

- Launch Xcode v3.2.x
- Open the resulting project 

- Open the project inspector, and change the project compatibility format to
v3.2
- Close the project
- In a text editor, open the embedded project.pbxproj file
- Look for the following keys:

	objectVersion = 46;
	compatibilityVersion = "Xcode 3.2"

====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-12-04 03:21 Matthew Firlik New Issue                                    
======================================================================




More information about the cmake-developers mailing list