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.

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