Veröffentlichung der Build-Systeme CMake 3.21 und Meson 0.59

Vorgestellt wird die Veröffentlichung des plattformübergreifenden offenen Build-Skriptgenerators CMake 3.21, der als Alternative zu Autotools fungiert und in Projekten wie KDE, LLVM/Clang, MySQL, MariaDB, ReactOS und Blender zum Einsatz kommt. Der CMake-Code ist in C++ geschrieben und wird unter der BSD-Lizenz vertrieben.

CMake zeichnet sich durch die Bereitstellung einer einfachen Skriptsprache, einer Möglichkeit zur Erweiterung der Funktionalität durch Module, einer minimalen Anzahl von Abhängigkeiten (keine Bindung an M4, Perl oder Python), Caching-Unterstützung, dem Vorhandensein von Tools für die Kreuzkompilierung und Unterstützung für die Generierung von Builds aus Dateien für eine Vielzahl von Build-Systemen und Compilern, das Vorhandensein der Dienstprogramme ctest und cpack zum Definieren von Testskripten und Erstellen von Paketen sowie das Dienstprogramm cmake-gui zum interaktiven Festlegen von Build-Parametern.

Wichtigste Verbesserungen:

  • Vollständige Unterstützung für die Programmiersprache Heterogeneous-Computing Interface for Portability (HIP) hinzugefügt, ein Dialekt der C++-Sprache, der die Konvertierung von CUDA-Anwendungen in portablen C++-Code erleichtern soll.
  • Build-Skriptgenerator für Visual Studio 17 2022 hinzugefügt, basierend auf Visual Studio 2022 Preview 1.1.
  • Die Build-Skriptgeneratoren Makefile und Ninja haben die Eigenschaften C_LINKER_LAUNCHER und CXX_LINKER_LAUNCHER hinzugefügt, die zum Starten von Hilfsdienstprogrammen verwendet werden können, die den Linker starten, z. B. statische Analyseprogramme. Der Generator führt die angegebenen Dienstprogramme aus und übergibt ihnen den Namen des Linkers und seine Argumente.
  • In den Eigenschaften „C_STANDARD“ und „OBJC_STANDARD“ sowie in den Tools zum Setzen von Compiler-Parametern (Compile Features) wurde Unterstützung für die C17- und C23-Spezifikationen hinzugefügt.
  • Die Option „—toolchain“ wurde dem cmake-Dienstprogramm hinzugefügt > um den Pfad zum Toolkit zu bestimmen.
  • Die auf dem Terminal angezeigten Nachrichtentypen werden hervorgehoben.
  • Unterstützung für den Fujitsu-Compiler hinzugefügt.
  • Der Befehl „foreach()“ sorgt dafür, dass Schleifenvariablen innerhalb einer Schleife isoliert werden.

Darüber hinaus können wir die Veröffentlichung des Build-Systems Meson 0.59 vermerken, das zum Erstellen von Projekten wie X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME und GTK verwendet wird. Der Code von Meson ist in Python geschrieben und steht unter der Apache 2.0-Lizenz. Unterstützt Cross-Compilation und Build auf Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS und Windows mit GCC, Clang, Visual Studio und anderen Compilern. Es ist möglich, Projekte in verschiedenen Programmiersprachen zu erstellen, darunter C, C++, Fortran, Java und Rust. Anstelle des Make-Dienstprogramms wird beim Erstellen standardmäßig das Ninja-Toolkit verwendet, es können jedoch auch andere Backends wie xcode und VisualStudio verwendet werden.

Das System verfügt über einen integrierten Multiplattform-Abhängigkeitshandler, der es Ihnen ermöglicht, Meson zum Erstellen von Paketen für Distributionen zu verwenden. Assemblerregeln werden in einer vereinfachten domänenspezifischen Sprache spezifiziert, sind für den Benutzer gut lesbar und verständlich (wie von den Autoren beabsichtigt, sollte der Entwickler möglichst wenig Zeit mit dem Schreiben von Regeln verbringen). Der inkrementelle Build-Modus wird unterstützt, bei dem nur Komponenten neu erstellt werden, die in direktem Zusammenhang mit den seit dem letzten Build vorgenommenen Änderungen stehen. Meson kann zum Generieren wiederholbarer Builds verwendet werden, wobei die Ausführung des Builds in verschiedenen Umgebungen zur Generierung völlig identischer ausführbarer Dateien führt.

Wichtigste Neuerungen von Meson 0.59:

  • Unterstützung für die Cython-Sprache hinzugefügt (eine erweiterte Version von Python zur Vereinfachung der Integration mit C-Code).
  • Schlüsselwörter „unescaped_variables“ und „unescaped_uninstalled_variables“ hinzugefügt, um Variablen in pkgconfig zu definieren, ohne Leerzeichen mit dem Zeichen „\“ zu maskieren.
  • Unterstützung für wrc (Wine Resource Compiler) hinzugefügt.
  • Die Möglichkeit, Projekte für Visual Studio 2012 und Visual Studio 2013 zu generieren, wurde implementiert.
  • Alle unterprojektbezogenen Befehle führen jetzt standardmäßig jedes Unterprojekt parallel aus. Die Anzahl der parallelen Prozesse wird durch den Parameter „--num-processes“ bestimmt.

Source: opennet.ru

Kommentar hinzufügen