# Xcode

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.

Added 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:

`buildsystem=<variant>`

  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

Added 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()`.

## Limitations

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)