Release des Build-Systems CMake 3.21 und Meson 0.59

Die neueste Version des plattformübergreifenden Open-Source-Build-Skripterstellers CMake 3.21 bietet eine Alternative zu Autotools und wird in Projekten wie KDE, LLVM/Clang, MySQL, MariaDB, ReactOS und Blender verwendet. Der CMake-Code ist in C++ geschrieben und unter der BSD-Lizenz veröffentlicht.

CMake zeichnet sich durch eine einfache Skriptsprache, Erweiterungsmöglichkeiten durch Module, eine minimale Abhängigkeit (keine Bindung an M4, Perl oder Python), Unterstützung für Caching, Werkzeuge für Cross-Compiling, die Generierung von Build-Dateien für eine breite Palette von Build-Systemen und Compilern, sowie die Tools ctest und cpack zur Definition von Test- und Paketbuild-Skripts aus, sowie durch das cmake-gui-Tool für die interaktive Konfiguration von Build-Parametern.

Hauptverbesserungen:

  • Vollständige Unterstützung der Programmiersprache HIP (Heterogeneous-Computing Interface for Portability), einem Dialekt von C++, der darauf abzielt, die Umstellung von CUDA-Anwendungen auf portablen C++-Code zu vereinfachen.
  • Ein Generator für Build-Skripte für Visual Studio 17 2022, basierend auf der Vorabversion von Visual Studio 2022 Preview 1.1, wurde hinzugefügt.
  • In den Build-Skripterstellern Makefile und Ninja wurden die Eigenschaften C_LINKER_LAUNCHER und CXX_LINKER_LAUNCHER hinzugefügt, die es ermöglichen, Hilfsprogramme zu starten, die den Linker aufrufen, wie zum Beispiel statische Analysatoren. Der Generator wird die angegebenen Hilfsprogramme starten und ihnen den Namen des Linkers sowie dessen Argumente übergeben.
  • In den Eigenschaften „C_STANDARD“ und „OBJC_STANDARD“ sowie in den Werkzeugen zur Anpassung der Compiler-Parameter (Compile Features) wurde die Unterstützung für die Spezifikationen C17 und C23 hinzugefügt.
  • Dem cmake-Tool wurde die Option „—toolchain “ hinzugefügt, um den Pfad zum Toolchain zu definieren.
  • Die Hervorhebung der Nachrichtentypen, die im Terminal ausgegeben werden, wurde implementiert.
  • Die Unterstützung für den Fujitsu-Compiler wurde hinzugefügt.
  • In der Anweisung „foreach()“ wurden die Variablen des Schleifenbereichs innerhalb der Schleife isoliert.

Zusätzlich kann die Veröffentlichung des Build-Systems Meson 0.59 erwähnt werden, das für die Erstellung von Projekten wie X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME und GTK verwendet wird. Der Meson-Code ist in Python geschrieben und wird unter der Lizenz Apache 2.0 bereitgestellt. Es wird Cross-Compiling unterstützt und die Erstellung erfolgt in Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS und Windows unter Verwendung von GCC, Clang, Visual Studio und anderen Compilern. Die Erstellung von Projekten in verschiedenen Programmiersprachen, einschließlich C, C++, Fortran, Java und Rust, ist möglich. Anstelle des make-Tools wird standardmäßig das Ninja-Framework für den Build verwendet, aber auch andere Backends wie xcode und VisualStudio können verwendet werden.

Das System enthält einen plattformübergreifenden Abhängigkeits-Manager, der es ermöglicht, Meson für die Erstellung von Paketen für Distributionen zu verwenden. Die Build-Regeln werden in einer vereinfachten domänenspezifischen Sprache definiert, die eine hohe Lesbarkeit aufweist und für den Benutzer verständlich ist (laut den Autoren sollte der Entwickler möglichst wenig Zeit mit dem Schreiben von Regeln verbringen). Ein inkrementeller Build-Modus wird unterstützt, bei dem nur die Komponenten neu erstellt werden, die direkt mit Änderungen verbunden sind, die seit dem letzten Build vorgenommen wurden. Meson kann verwendet werden, um reproduzierbare Builds zu erstellen, bei denen das Ausführen des Builds in verschiedenen Umgebungen zur Generierung vollständig identischer ausführbarer Dateien führt.

Wesentliche Neuerungen in Meson 0.59:

  • Die Unterstützung für die Sprache Cython wurde hinzugefügt (eine erweiterte Version von Python, die darauf abzielt, die Integration mit C-Code zu erleichtern).
  • Die Schlüsselwörter „unescaped_variables“ und „unescaped_uninstalled_variables“ wurden hinzugefügt, um Variablen in pkgconfig ohne Escaping von Leerzeichen mit dem Zeichen „\“ zu definieren.
  • Unterstützung für wrc (Wine Resource Compiler) wurde hinzugefügt.
  • Die Möglichkeit zur Generierung von Projekten für Visual Studio 2012 und Visual Studio 2013 wurde implementiert.
  • Alle Befehle, die mit der Verarbeitung von Subprojekten verbunden sind, führen jetzt standardmäßig jedes Subprojekt parallel aus. Die Anzahl der parallel laufenden Prozesse wird durch den Parameter „—num-processes“ bestimmt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4