Veröffentlichung des Build-Systems Meson 1.11.0

Die Version 1.11.0 des Build-Systems Meson wurde veröffentlicht, das für die Entwicklung von Projekten wie X.Org Server, Mesa, QEMU, Lighttpd, systemd, GStreamer, Wayland, GNOME und GTK verwendet wird. Der Meson-Code ist in Python geschrieben und wird unter der Apache-2.0-Lizenz angeboten.

Ein zentrales Ziel der Entwicklung von Meson ist es, einen schnellen Build-Prozess zu gewährleisten, kombiniert mit Benutzerfreundlichkeit und Einfachheit. Anstelle des Tools make wird standardmäßig das Ninja-Tooling verwendet, jedoch können auch andere Backends wie Xcode und Visual Studio eingesetzt werden. Das System enthält einen plattformübergreifenden Abhängigkeitsmanager, der es ermöglicht, Meson zur Erstellung von Paketen für verschiedene Distributionen zu verwenden. Die Build-Regeln werden in einer vereinfachten, domänenspezifischen Sprache festgelegt, die eine gute Lesbarkeit aufweist und für den Benutzer verständlich ist (die Autoren beabsichtigen, dass Entwickler möglichst wenig Zeit mit dem Schreiben von Regeln verbringen).

Es wird Cross-Compilation und Build unter Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS und Windows mit GCC, Clang, Visual Studio und anderen Compilern unterstützt. Projekte in verschiedenen Programmiersprachen, einschließlich C, C++, Fortran, Java, D und Rust, können gebaut werden. Ein inkrementeller Build-Modus wird unterstützt, bei dem nur die Komponenten neu gebaut werden, die direkt mit den seit dem letzten Build vorgenommenen Änderungen verbunden sind. Meson kann zur Erstellung reproduzierbarer Builds verwendet werden, bei denen das Ausführen des Builds in verschiedenen Umgebungen zu identischen ausführbaren Dateien führt.

Die wichtigsten Neuheiten von Meson 1.11:

  • Beim Aufruf der Meson-Methode rust.workspace() wird die Parsing des Haupt-Cargo.toml-Datei innerhalb des Projekts durchgeführt, um die korrekte Aktivierung von feature-Flags, die im gemeinsamen Cargo.toml-Datei für alle Arbeitsbereiche definiert sind, während des Builds zu gewährleisten. Darüber hinaus gibt die Methode rust.workspace() jetzt ein Objekt zurück, über das eine Liste der feature-Flags und Abhängigkeiten für Subprojekte abgerufen sowie Builds für Ziele, die in den Cargo.toml-Dateien deklariert sind, gestartet werden können.
  • Im Befehl «meson dist» wurden die Option «-j» (—num-processes) und die Umgebungsvariable MESON_NUM_PROCESSES hinzugefügt, um die Anzahl der Prozesse zu bestimmen, die parallel beim Bau und Testen von Paketen ausgeführt werden.
  • Der Parameter should_fail, der das Bestehen eines Tests bei einem Fehler ermöglicht, wurde als veraltet erklärt und in expected_fail umbenannt. Ein neuer Parameter expected_exitcode wurde hinzugefügt, um einen erfolgreichen Testabschluss mit einem Code ungleich 0 festzulegen.
  • Im Modul external_project wird auf der Windows-Plattform der Befehl cygpath verwendet, um Windows-spezifische Dateipfade in Unix-ähnliche Pfade umzuwandeln (zum Beispiel von C:/path/to/configure zu /path/to/configure).
  • In den Befehlen install_man und install_headers wurde die Unterstützung des Arguments install_tag hinzugefügt, um die zu installierenden Dateien nach beliebigen Tags auszuwählen, und nicht nur nach man- und devel-Tags.
  • Der Parameter link_early_args wurde hinzugefügt, über den Optionen (zum Beispiel „-u“ oder „—defsym“) in die Befehlszeile beim Start des Linkers eingefügt werden können, bevor die Objekte und Bibliotheken aufgelistet werden.
  • Eine Konstante „~“ wurde hinzugefügt, die im Beschreibungstext der Umgebung (Machine Files) durch das Home-Verzeichnis ersetzt wird.
  • Im Befehl „meson format“ ist die Sortierung der Dateien, die in der Funktion files() als Argumente angegeben sind, standardmäßig deaktiviert. Um die Sortierung zu aktivieren, sollte die Option sort_files verwendet werden.
  • Die Unterstützung von Versionen von Python bis einschließlich 3.10 wird eingestellt. Meson 1.11.0 ist die letzte Version, die die Zweige Python 3.7, 3.8 und 3.9 unterstützt.
  • Die Unterstützung neuer Funktionen des C/C++-Compilers MPLAB XC32, die in Version 5.0 erschienen sind, wie automatische Aktivierung von LTO-Optimierungen und Unterstützung der Standards C2x und CPP23, wurde hinzugefügt.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster