The release of the CMake 3.21 and Meson 0.59 build systems

The release of the cross-platform open-source build script generator CMake 3.21 has been introduced, serving as an alternative to Autotools and used in projects such as KDE, LLVM/Clang, MySQL, MariaDB, ReactOS, and Blender. The CMake code is written in C++ and distributed under the BSD license.

CMake is notable for providing a simple scripting language, functionality extension through modules, minimal dependencies (no coupling with M4, Perl, or Python), caching support, tools for cross-compilation, support for generating build files for a wide range of build systems and compilers, as well as ctest and cpack utilities for defining test scripts and package builds, and a cmake-gui utility for interactive building parameter configuration.

Key Improvements:

  • Full support has been added for the HIP programming language (Heterogeneous-Computing Interface for Portability), a dialect of C++ aimed at simplifying the conversion of CUDA applications to portable C++ code.
  • A build script generator for Visual Studio 17 2022 has been added, based on the preview release of Visual Studio 2022 Preview 1.1.
  • The Makefile and Ninja build script generators have gained C_LINKER_LAUNCHER and CXX_LINKER_LAUNCHER properties, allowing for the organization of the execution of auxiliary utilities that launch linkers, such as static analyzers. The generator will run the specified utilities, passing them the name of the linker and its arguments.
  • Support for C17 and C23 specifications has been added to the 'C_STANDARD' and 'OBJC_STANDARD' properties, as well as in the tools for setting compiler options (Compile Features).
  • An option has been added to the cmake utility: '--toolchain ' to define the path to the toolchain.
  • Type highlighting for messages output to the terminal has been provided.
  • Support for the Fujitsu compiler has been added.
  • In the 'foreach()' command, isolation of loop variables within the loop has been ensured.

Additionally, it's worth noting the release of the Meson build system 0.59, which is used for building projects such as X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME, and GTK. The Meson code is written in Python and is distributed under the Apache 2.0 license. It supports cross-compilation and building on Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS, and Windows using GCC, Clang, Visual Studio, and other compilers. Projects can be built in various programming languages, including C, C++, Fortran, Java, and Rust. Instead of the make utility, Ninja is used by default during the build, but other backends like xcode and VisualStudio can also be applied.

The system includes a multi-platform dependency handler that allows the use of Meson for building packages for distributions. Build rules are specified in a simplified domain-specific language, characterized by good readability and clarity for the user (the authors intended for developers to spend minimal time writing rules). Incremental build mode is supported, where only components directly associated with changes made since the last build are rebuilt. Meson can be used to create repeatable builds, where running the build in different environments results in generating completely identical executable files.

Key features of Meson 0.59:

  • Added support for the Cython language (an extended version of Python aimed at simplifying integration with C code).
  • Introduced the keywords "unescaped_variables" and "unescaped_uninstalled_variables" to define variables in pkgconfig without escaping spaces with the character "\".
  • Added support for wrc (Wine Resource Compiler).
  • Implemented the ability to generate projects for Visual Studio 2012 and Visual Studio 2013.
  • All commands related to subproject processing now run each subproject in parallel by default. The number of parallel processes is determined by the "—num-processes" parameter.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster