| --- |
| 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. |