Meson reaches its version 1.0.0 and these are its news

Meson is a software tool to automate the construction of software. It is free and open source written in Python.

The release of the new version of the Meson 1.0.0 build system was announced in a publication , which comes with new features, as well as stability for compiling projects in Rust, among other things.

For those unfamiliar with Meson, it's worth noting that this build system is used to compile well-known projects such as X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME, and GTK.

Meson's key development goal is to provide a high-speed compilation process combined with convenience and ease of use. Instead of doing, the build uses the Ninja Toolkit by default, but other backends like xcode and VisualStudio can also be used.

The system has a built-in cross-platform dependency manager that allows you to use Meson to create packages for distributions. The compilation rules are written in a simplified, domain-specific language, making them easily readable and understandable for the user (according to the authors' vision, developers should spend minimal time writing rules).

Cross-compilation is supported , as well as compilation on Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS, and Windows using GCC, Clang, Visual Studio, and other compilers.

It is possible to build projects in several programming languages , including C, C++, Fortran, Java, and Rust. An incremental compilation mode is supported, in which only the components directly related to changes made since the last compilation are rebuilt.

Meson can be used to generate repeatable builds, where running the build in different environments results in completely identical executables.

Main novelties of Meson 1.0

In this new release of Meson 1.0 it is highlighted that The module for building projects in the Rust language has been declared stable. This module is used in the Mesa project to build components written in Rust.
Supported by most compiler check functions, the prefix option implements the ability to handle arrays other than strings.

Another change that stands out in this release is the introduction of new "in" and "not in" operators to determine the occurrence of a substring in a string, similar to the previously available check for the occurrence of an element in an array or dictionary.

In addition, we can also find that the option " warning-level=everything" has been added to activate the output of all available compiler warnings (in clang and MSVC it ​​uses -Weverything and /Wall, and in GCC separate warnings are included, which roughly correspond to clang's -Weverything mode).

It is also worth noting that a new argument, "--workdir", has been added to allow you to override the working directory . For example, to use the current directory instead of the working directory.

The rust.bindgen method implements the ability to process the "dependencies" argument to pass paths to dependencies to be processed by the compiler and the java.generate_native_headers function has been deprecated and renamed to java.native_headers to match Meson's general function naming style.

Furthermore, it's also mentioned that when cross-compiling, the developer environment now sets all environment variables for the host machine. It now also sets QEMU_LD_PREFIX and the sys_root value of the cross-file if the property is defined. This means that cross-compiled executables can often run transparently on the compilation machine, for example, when cross-compiling for aarch64 Linux from x86_64 Linux.

Finally, if you are interested in learning more, you can find the details at the following link.

How to install Meson on Linux?

For those who are interested in being able to install this build system on their system, they can do so by following the instructions we share below.

They should know that Meson is available on PyPi, so it can be installed with the command:

pip3 install meson

As a note, you should know that the exact command to type to install pip can vary between systems, so it is recommended that you use the Python 3 version of pip.


Add as preferred source in Google