Veröffentlichung des Build-Systems Meson 1.1

Die neue Version des Build-Systems Meson 1.1.0 ist veröffentlicht worden, das für Projekte 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 angeboten.

Ein zentrales Entwicklungsziel von Meson ist es, eine hohe Geschwindigkeit des Build-Prozesses zu gewährleisten, gepaart mit Benutzerfreundlichkeit und Einfachheit. Anstelle des Tools make wird standardmäßig das Ninja-Toolset verwendet, jedoch können auch andere Backends wie xcode und VisualStudio eingesetzt werden. Das System enthält einen plattformübergreifenden Abhängigkeitsmanager, der es ermöglicht, Meson zur Erstellung von Paketen für Distributionen zu verwenden. Die Build-Regeln werden in einer vereinfachten, domänenorientierten Sprache festgelegt, die eine gute Lesbarkeit aufweist und für den Benutzer verständlich ist (laut den Autoren sollte der Entwickler so wenig Zeit wie möglich 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.

Hauptneuigkeiten in Meson 1.1:

  • In declare_dependency() wurde ein neues Argument „objects:“ hinzugefügt, um Objekte direkt an ausführbare Dateien als interne Abhängigkeiten anzuhängen, die keinen link_who-Befehl erfordern.
  • Der Befehl „meson devenv —dump“ bietet jetzt die optionale Möglichkeit, eine Datei anzugeben, um Umgebungsvariablen anstelle der Ausgabe auf den Standardausgabestrom zu schreiben.
  • Die Methoden FeatureOption.enable_if und FeatureOption.disable_if wurden hinzugefügt, um die Erstellung von bedingten Konstruktionen bei der Vorbereitung zur Übergabe von Parametern an die Funktion dependency() zu vereinfachen. opt = get_option(‘feature’).disable_if(not foo, error_message: ‘Kann die Funktion nicht aktivieren, wenn foo nicht ebenfalls aktiviert ist’) dep = dependency(‘foo’, required: opt)
  • Die Übergabe von generierten Objekten ist nun als Argumente „objects:“ erlaubt.
  • In der Funktion project wurde die Unterstützung für die Installation von Dateien mit Lizenzinformationen für das Projekt implementiert.
  • Bei der Ausführung von „sudo meson install“ wird während der Neubauphase die Rückgabe der Berechtigungen für die Zielplattformen sichergestellt.
  • Im Befehl „meson install“ wurde die Möglichkeit hinzugefügt, einen separaten Handler für den Zugriff auf die Root-Rechte anzugeben (zum Beispiel kann polkit, sudo, opendoas oder $MESON_ROOT_CMD gewählt werden). Bei der Ausführung von „meson install“ im nicht-interaktiven Modus werden keine Versuche zur Erhöhung der Berechtigungen mehr unternommen.
  • Die Unterstützung zum Lesen von Optionen aus der Datei meson.options anstelle von meson_options.txt wurde hinzugefügt.
  • Die Umleitung von Informationen über den Fortschritt der Introspektion in stderr wurde sichergestellt.
  • Ein neuer Backend „none“ (—backend=none) wurde hinzugefügt, um Projekte zu erstellen, die nur Installationsregeln enthalten und keine Build-Regeln.
  • Eine neue Abhängigkeit pybind11 wurde hinzugefügt, um die Funktion dependency(‘pybind11’) mit pkg-config und cmake ohne Verwendung des Skripts pybind11-config zu unterstützen.
  • Die Verwendung der Optionen „—reconfigure“ und „—wipe“ (meson setup —reconfigure builddir und meson setup —wipe builddir) mit einem leeren builddir wurde erlaubt.
  • In meson.add_install_script() wurde die Unterstützung des Schlüsselworts dry_run hinzugefügt, das das Ausführen eigener Installationsskripte beim Aufruf von „meson install —dry-run“ ermöglicht.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster