New in version 3.1.

Generator-specific target platform specification provided by user.

Some CMake generators support a target platform name to be given to the native build system to choose a compiler toolchain. If the user specifies a platform name (e.g. via the cmake -A option or via the CMAKE_GENERATOR_PLATFORM environment variable) the value will be available in this variable.

The value of this variable should never be modified by project code. A toolchain file specified by the CMAKE_TOOLCHAIN_FILE variable may initialize CMAKE_GENERATOR_PLATFORM. Once a given build tree has been initialized with a particular value for this variable, changing the value has undefined behavior.

Platform specification is supported only on specific generators:

See native build system documentation for allowed platform names.

Visual Studio Platform Selection

The Visual Studio Generators support platform specification using one of these forms:

  • platform

  • platform[,key=value]*

  • key=value[,key=value]*

The platform specifies the target platform (VS target architecture), such as x64, ARM64, or Win32. The selected platform name is provided in the CMAKE_VS_PLATFORM_NAME variable.

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


New in version 3.27.

Specify the Windows SDK version to use. This is supported by VS 2015 and above when targeting Windows or Windows Store. CMake will set the CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION variable to the selected SDK version.

The <version> may be one of:


Specify that any 10.0 SDK version may be used, and let Visual Studio pick one. This is supported by VS 2019 and above.


Specify the exact 4-component SDK version, e.g., 10.0.19041.0. The specified version of the SDK must be installed. It may not exceed the value of CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM, if that variable is set.


Specify the 8.1 SDK version. This is always supported by VS 2015. On VS 2017 and above the 8.1 SDK must be installed.

If the version field is not specified, CMake selects a version as described in the CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION variable documentation.