The Meson Build System http://mesonbuild.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.9 KiB

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