[4] Meson is written in Python and runs on Unix-like (including Linux and macOS), Windows and other operating systems.
It supports building C, C++, C#, CUDA, Objective-C, D, Fortran, Java, Rust, and Vala.
[9] Instead, arbitrary build steps beyond compiling supported languages can be represented as custom targets.
Unlike bare Make, the separate configure step ensures that changes to arguments, environment variables and command output are not partially applied in subsequent builds, which would lead to a stale build.
Meson can automatically find and use external dependencies installed on the users system via pkg-config, CMake, and project-specific lookups.
[18] Alternatively, or as a fallback, a dependency can be provided as a subproject – a Meson project within another, either contained or as a download link, possibly with patches.
[21] Setting the library installation directory on x86_64 Unix is handled automatically by Meson, but not by other tools such as Autotools.
[clarification needed] GNOME has made it a goal to port its projects to Meson.