Published release of the Meson 1.12.0 assembly system, which is used to build projects such as X.Org Server, Mesa, QEMU, Lighttpd, systemd, GStreamer, Wayland, GNOME and GTK. The Meson code is written in Python and is distributed under the Apache 2.0 license.
The key goal of Meson development is to provide high speed of the assembly process, combined with convenience and ease of use. Instead of the make utility, the default build uses the Ninja toolkit, but other backends such as Xcode and Visual Studio can also be used. The system has a built-in multi-platform dependency handler that allows you to use Meson to build packages for distributions. Build rules are set in a simplified domain-specific language, are highly readable and understandable to the user (as conceived by the authors, the developer should spend a minimum of time writing rules).
Cross-compilation and assembly in Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly are supported BSD, Haiku, macOS, and Windows using GCC, Clang, Visual Studio, and other compilers. It is possible to build projects in various programming languages, including C, C++, Fortran, Java, D, and Rust. Incremental build mode is supported, in which only components directly related to changes made since the last build are rebuilt. Meson can be used to generate repeatable builds, in which running the build in different environments results in the generation of completely identical executable files.
Main innovations Meson 1.12:
- Added support for the CACHEDIR.TAG, placed in the build directory to exclude temporary files created during the build during backup.
- Added the clippy-json build target, which runs the Clippy linter and generates information about warnings and errors in JSON format for Rust-analyzer.
- Added the default() object and function, intended for Resetting named arguments to default values.
- The “depends” argument has been added