Selects the compiler, linker, etc. which are used to build a project or configuration.

```lua
toolset ("identifier")
```

If no toolset is specified for a configuration, the system or IDE default will be used.

### Parameters ###

`identifier` is a string identifier for the toolset. Premake includes the following toolsets by default.

| **Toolset identifier**   |  **Description**                                |
|------------|---------------------------------------------------------------|
| `clang`    | [Clang](http://clang.llvm.org)                                |
| `dmd`      | [Reference D Compiler](https://dlang.org/dmd-windows.html)    |
| `dotnet`   | The system's default C# compiler                              |
| `gcc`      | [GNU Compiler Collection](https://gcc.gnu.org)                |
| `gdc`      | [GNU Compiler Collection D Compiler](https://gdcproject.org/) |
| `ldc`      | [LLVM D Compiler](https://wiki.dlang.org/LDC)                 |
| `msc`      | Microsoft C/C++ compiler                                      |

If a specific toolset version is desired, it may be specified as part of the identifer, separated by a dash. See the examples below.

### Applies To ###

Project configurations.

### Availability ###

Premake 5.0 and later. Versions are currently only implemented for Visual Studio 2010+.

### Examples ###

Specify version 110 of the Windows platform toolset.

```lua
toolset "msc-v110" -- or...
toolset "v100"    -- for those more familiar with Visual Studio's way
```

Use [Clang/C2](http://llvm.org/builds/) with Visual Studio
```lua
toolset "msc-llvm-vs2014"
```

Use the toolset for Windows XP
```lua
toolset "v140_xp"
```