Meson Build System Version 1.1

Die Veröffentlichung des Build-Systems Meson 1.1.0 wurde veröffentlicht, mit dem Projekte wie X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME und GTK erstellt werden. Der Meson-Code ist in Python geschrieben und steht unter der Apache 2.0-Lizenz.

Das wichtigste Entwicklungsziel von Meson ist die Bereitstellung eines Hochgeschwindigkeitsmontageprozesses in Kombination mit Komfort und Benutzerfreundlichkeit. Anstelle von make verwendet der Build standardmäßig das Ninja-Toolkit, es können aber 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 festgelegt, sie sind für den Benutzer gut lesbar und verständlich (nach der Idee der Autoren sollte der Entwickler möglichst wenig Zeit mit dem Schreiben von Regeln verbringen).

Cross-Kompilierung und Erstellung auf Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS und Windows mit GCC, Clang, Visual Studio und anderen Compilern wird unterstützt. Es ist möglich, Projekte in verschiedenen Programmiersprachen zu erstellen, darunter C, C++, Fortran, Java und Rust. Es wird ein inkrementeller Build-Modus unterstützt, bei dem nur Komponenten neu erstellt werden, die in direktem Zusammenhang mit Änderungen stehen, die seit dem letzten Build vorgenommen wurden. Meson kann zum Generieren wiederholbarer Builds verwendet werden, wobei die Ausführung des Builds in verschiedenen Umgebungen dazu führt, dass völlig identische ausführbare Dateien generiert werden.

Wichtigste Neuerungen von Meson 1.1:

  • Ein neues „objects:“-Argument wurde zu „declare_dependency()“ hinzugefügt, um Objekte als interne Abhängigkeiten, die kein link_who erfordern, direkt an ausführbare Dateien anzuhängen.
  • Der Befehl „meson devenv --dump“ bietet optional die Möglichkeit, eine Datei anzugeben, in die Umgebungsvariablen geschrieben werden sollen, anstatt sie in den Standardausgabestream auszugeben.
  • Die Methoden FeatureOption.enable_if und FeatureOption.disable_if wurden hinzugefügt, um das Erstellen von Bedingungen als Vorbereitung für die Übergabe von Parametern an die Funktion dependency() zu vereinfachen. opt = get_option('feature').disable_if(not foo, error_message: 'Funktion kann nicht aktiviert werden, wenn foo nicht ebenfalls aktiviert ist') dep = dependency('foo', erforderlich: opt)
  • Es ist erlaubt, generierte Objekte zwischen den „objects:“-Argumenten zu übergeben.
  • Die Projektfunktion unterstützt die Installation von Dateien mit Informationen zu Projektlizenzen.
  • Durch die Ausführung von „sudo meson install“ wird sichergestellt, dass die Berechtigungen während des Neuaufbaus für Zielplattformen zurückgesetzt werden.
  • Der Befehl „meson install“ bietet die Möglichkeit, einen separaten Handler für den Erhalt von Root-Berechtigungen anzugeben (Sie können beispielsweise polkit, sudo, opendoas oder $MESON_ROOT_CMD auswählen). Beim Ausführen von „meson install“ im nicht interaktiven Modus wird nicht mehr versucht, Berechtigungen zu erhöhen.
  • Unterstützung für das Lesen von Optionen aus der Datei meson.options anstelle von meson_options.txt hinzugefügt.
  • Bereitstellung der Weiterleitung der Ausgabe von Informationen über den Fortschritt der Selbstbeobachtung an stderr.
  • Ein neues „none“-Backend (--backend=none) wurde hinzugefügt, um Projekte zu erstellen, die nur Installationsregeln und keine Build-Regeln haben.
  • Eine neue Abhängigkeit pybind11 wurde hinzugefügt, damit die Abhängigkeit('pybind11') mit pkg-config und cmake funktioniert, ohne das Skript pybind11-config zu verwenden.
  • Die Optionen „--reconfigure“ und „--wipe“ (meson setup --reconfigure builddir und meson setup --wipe builddir) sind mit einem leeren Builddir zulässig.
  • meson.add_install_script() hat Unterstützung für das Schlüsselwort dry_run hinzugefügt, das es Ihnen ermöglicht, Ihre eigenen Installationsskripte auszuführen, wenn Sie „meson install --dry-run“ aufrufen.

Source: opennet.ru

Kommentar hinzufügen