Veröffentlichung des Build-Systems Meson 1.7.0

Die Veröffentlichung von Meson 1.7.0, dem Build-System, das für Projekte wie X.Org Server, Mesa, QEMU, Lighttpd, systemd, GStreamer, Wayland, GNOME und GTK verwendet wird, ist erfolgt. Der Code von Meson ist in Python geschrieben und wird unter der Lizenz Apache 2.0 vertrieben.

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).

Cross-Compilation und Builds werden für Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS und Windows mit GCC, Clang, Visual Studio und anderen Compilern unterstützt. Es ist möglich, Projekte in verschiedenen Programmiersprachen, einschließlich C, C++, Fortran, Java und Rust, zu kompilieren. Der inkrementelle Build-Modus wird unterstützt, bei dem nur die Komponenten neu kompiliert werden, die direkt mit den seit dem letzten Build vorgenommenen Änderungen verbunden sind. Meson kann verwendet werden, um reproduzierbare Builds zu erstellen, bei denen das Ausführen des Builds in verschiedenen Umgebungen die Erzeugung vollständig identischer ausführbarer Dateien zur Folge hat.

Die wichtigsten Neuerungen in Meson 1.7:

  • Die Konstruktion «dependency(‘atomic’)» wurde hinzugefügt, um die Verfügbarkeit der Atomic-Bibliothek, die atomare Operationen für C++ bereitstellt, zu überprüfen.
  • Eine neue Programmiersprache «Linear Asm» (ein Dialekt von TI asm, der vom TI C6000 Compiler unterstützt wird) wurde hinzugefügt.
  • Unterstützung für die Rust-Sprachversion 2024 (rust_std=2024) wurde hinzugefügt, die mit der Veröffentlichung des Rust-Compilers 1.85.0 eingeführt wird.
  • Die Unterstützung für den TASKING VX-Toolset-Compiler, der für die Tricore CPU-Familie verwendet wird, wurde hinzugefügt.
  • Die Möglichkeit, den Linter Clippy für Rust-Projekte auszuführen, wurde hinzugefügt.
  • Bei der Einrichtung von Abhängigkeiten für Cargo wird nun der gesamte Abhängigkeitsbaum und alle verfügbaren Features definiert. Dieser Vorgang wird vor der Generierung des AST (abstrakten Syntaxbaums) für das Unterprojekt durchgeführt, was Probleme mit der Nichtberücksichtigung von für das Hauptprojekt über die Option «default_options» aktivierten Features im Unterprojekt beseitigt.
  • Im Modul external_project wurde die Festlegung der Umgebungsvariablen PATH und LD_LIBRARY_PATH für einen korrekten Programmstart sichergestellt.
  • Dem Befehl «format» wurde die Unterstützung des Arguments «stdin» hinzugefügt, um Daten aus dem Standard-Eingangsstrom anstelle einer Datei zu lesen.
  • Die Ausführung von «meson test» führt jetzt standardmäßig nicht mehr zu einer vollständigen Kompilierung (ruft nicht «ninja all» auf), und «ninja all» führt keine Neukompilierung aller Tests durch.
  • Dem Befehl vcs_tag() wurde die Unterstützung der Argumente «install», «install_dir», «install_tag» und «install_mode» für die Installation der generierten Datei hinzugefügt.
  • Die Umgebungsvariable MESON_NUM_PROCESSES wurde hinzugefügt, die die Anzahl der Tochterprozesse widerspiegelt, die zum Parallelisieren des Builds gestartet wurden. Diese Variable kann beispielsweise in meson test, im Modul external_project und in den Ninja-Handlern verwendet werden, die clang-tidy, clang-format und clippy ausführen.

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