Meson 1.4 has already been released and these are its new features

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

It was recently announced release of the new version of the Meson 1.4 build system, version that comes with support improvements for certain functions of the FS module, as well as compatibility improvements, new functions and more.

For those who do not know about Meson, you should know that this is a compilation system used by notable projects such as X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME and GTK. Its main goal is to provide a fast and easy-to-use build process. It uses the Ninja toolkit by default but also supports other backends like xcode and VisualStudio.

This system has a built-in cross-platform dependency handler which makes it easy to create packages for distributions. Compilation rules are defined in a specific, readable language, minimizing the time required to write them.

Meson supports building projects in multiple languages ​​such as C, C++, Fortran, Java, and Rust, and offers an incremental build mode that rebuilds only components affected by changes since the last build. Additionally, Meson can generate repeatable builds, ensuring that running the build in different environments produces completely identical executables.

Main novelties of Meson 1.4

In this new version that is presented of Meson 1.4, the added support for FS module, which now supports build_tgt and custom_tgt build target objects, as well as a build target index (custom_idx) in the fs.name, fs.parent, fs.replace_suffix, and fs.stem functions.

Another change that stands out in this new version is that Meson now has the ability to read project version from CMake-based subprojects. This allows version restrictions to be checked correctly when calling a cmake subproject

In addition, now in the workss compile_ui, compile_moc and preprocessing of qt4, qt5 and qt6 modules, added preserve_paths argument to select the option to build the directory structure for the files being written.

Also of note is that Clang support was added to stldebug when debugstl is enabled, the unset() method was introduced to the env object, and the full_path() method was added to the File object to get the full path to the file.

Added support for the numpy-config tool and support for pkg-config as new dependencies personalized. This is available as of NumPy 2.0.0. Support for numpy-config will work automatically once NumPy is installed. On the other hand, the pkg-config file is located inside the Python site packages, which means that it cannot be used out of the box without setting PKG_CONFIG_PATH.

Of the other changes that stand out from this new version:

  • Ability to control assertion checks (GLIBCXX_ASSERTIONS) in C++ stdlib via ndebug configuration.
  • Added preserve_pathsun keyword argument to qt module functions
  • It is now possible to specify dependent targets with depends: for compiler.preprocess(). These targets must be constructed before preprocessing begins.
  • The bindgen binding generator now supports Meson heuristics for determining C++ header files.
  • Added the ability to override language settings for bindgen.
  • Tests now fail by default after encountering errors when running sanitizers like MemorySanitizer.
  • Added support for the Texas Instruments C/C++ compiler for the C6000 CPU family.

Finally, if you are interested in being able to know more about it, you can consult the details in 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.


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.