| --- |
| short-description: How to use Meson in Visual Studio |
| ... |
| |
| # Using with Visual Studio |
| |
| In order to generate Visual Studio projects, Meson needs to know the |
| settings of your installed version of Visual Studio. The only way to |
| get this information is to run Meson under the Visual Studio Command |
| Prompt. |
| |
| You can always find the Visual Studio Command Prompt by searching from |
| the Start Menu. However, the name is different for each Visual Studio |
| version. With Visual Studio 2019, look for "x64 Native Tools Command |
| Prompt for VS 2019". The next steps are [the same as |
| always](https://mesonbuild.com/Running-Meson.html#configuring-the-build-directory): |
| |
| 1. `cd` into your source directory |
| 1. `meson setup builddir`, which will create and setup the build directory |
| 1. `meson compile -C builddir`, to compile your code. You can also use `ninja -C builddir` here if you are using the default Ninja backend. |
| |
| If you wish to generate Visual Studio project files, pass `--backend |
| vs`. At the time of writing the Ninja backend is more mature than the |
| VS backend so you might want to use it for serious work. |
| |
| # Using Clang-CL with Visual Studio |
| |
| *(new in 0.52.0)* |
| |
| You will first need to get a copy of llvm+clang for Windows, such versions |
| are available from a number of sources, including the llvm website. Then you |
| will need the [llvm toolset extension for visual |
| studio](https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.llvm-toolchain). |
| You then need to either use a [native file](Native-environments.md#binaries) |
| or `set CC=clang-cl`, and `set CXX=clang-cl` to use those compilers, Meson |
| will do the rest. |
| |
| This only works with visual studio 2017 and 2019. |
| |
| There is currently no support in Meson for clang/c2. |
| |
| # Using Intel-CL (ICL) with Visual Studio |
| |
| *(new in 0.52.0)* |
| |
| To use ICL you need only have ICL installed and launch an ICL development |
| shell like you would for the ninja backend and Meson will take care of it. |