Generate Xcode project files.

Changed in version 3.15: This generator supports Xcode 5.0 and above.

Toolset and Build System Selection

By default Xcode is allowed to select its own default toolchain. The CMAKE_GENERATOR_TOOLSET option may be set, perhaps via the cmake -T option, to specify another toolset.

New in version 3.19: This generator supports toolset specification using one of these forms:

  • toolset

  • toolset[,key=value]*

  • key=value[,key=value]*

The toolset specifies the toolset name. The selected toolset name is provided in the CMAKE_XCODE_PLATFORM_TOOLSET variable.

The key=value pairs form a comma-separated list of options to specify generator-specific details of the toolset selection. Supported pairs are:


Specify the buildsystem variant to use. See the CMAKE_XCODE_BUILD_SYSTEM variable for allowed values.

For example, to select the original build system under Xcode 12, run cmake(1) with the option -T buildsystem=1.

Swift Support

New in version 3.4.

When using the Xcode generator with Xcode 6.1 or higher, one may enable the Swift language with the enable_language() command or the project().


The Xcode generator does not support per-configuration sources. Code like the following will result in a generation error:

add_executable(MyApp mymain-$<CONFIG>.cpp)