# Visual Studio 16 2019

Added in version 3.14.

Generates Visual Studio 16 (VS 2019) project files.

## Project Types

Only Visual C++ and C# projects may be generated (and Fortran with Intel compiler integration). Other types of projects (JavaScript, Powershell, Python, etc.) are not supported.

## Instance Selection

VS 2019 supports multiple installations on the same machine. The `CMAKE_GENERATOR_INSTANCE` variable may be used to select one.

## Platform Selection

The default target platform name (architecture) is that of the host and is provided in the `CMAKE_VS_PLATFORM_NAME_DEFAULT` variable.

The `CMAKE_GENERATOR_PLATFORM` variable may be set, perhaps via the `cmake -A` option, to specify a target platform name (architecture). For example:

- `cmake -G "Visual Studio 16 2019" -A Win32`

- `cmake -G "Visual Studio 16 2019" -A x64`

- `cmake -G "Visual Studio 16 2019" -A ARM`

- `cmake -G "Visual Studio 16 2019" -A ARM64`

## Toolset Selection

The `v142` toolset that comes with Visual Studio 16 2019 is selected by default. The `CMAKE_GENERATOR_TOOLSET` option may be set, perhaps via the `cmake -T` option, to specify another toolset.

For each toolset that comes with this version of Visual Studio, there are variants that are themselves compiled for 32-bit (`x86`) and 64-bit (`x64`) hosts (independent of the architecture they target). By default this generator uses the 64-bit variant on x64 hosts and the 32-bit variant otherwise. One may explicitly request use of either the 32-bit or 64-bit host tools by adding either `host=x86` or `host=x64` to the toolset specification. See the `CMAKE_GENERATOR_TOOLSET` variable for details.