Veröffentlichung des Build-Systems Meson 0.58. Projekt zur Erstellung einer Umsetzung von Meson in C.

Die Version 0.58 des Build-Systems Meson wurde veröffentlicht, 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 unter der Lizenz Apache 2.0 verfügbar.

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.

Hauptneuheiten in Meson 0.58:

  • Im Meson-Skriptformat wurden eingebaute String-Formatierungsoperationen implementiert. Anstelle des Aufrufs der Methode format können Werte jetzt direkt eingesetzt werden, beispielsweise anstelle von „‘A string @0@ to be formatted @1@’.format(n, m)“ kann man direkt „f’A string @n@ to be formatted @m@'“ verwenden.
  • Zu den String-Objekten wurde die Methode „replace“ hinzugefügt, um das Ersetzen einer Teilzeichenfolge durch eine andere zu ermöglichen, z. B. „s = s.replace(‘aaa’, ‘bbb’)“.
  • Die Funktion „range(start, stop[, step])“ wurde hinzugefügt, um ein Objekt zurückzugeben, das in einer „foreach“-Schleife verwendet werden kann, z. B. „foreach i : range(15)“.
  • Die Methode meson.add_devenv() wurde implementiert, um ein environment()-Objekt hinzuzufügen, mit dem Umgebungsvariablen während der Ausführung des Befehls „meson devenv“ festgelegt werden können, z. B. um eine Umgebungsvariable mit dem Pfad zu einem Verzeichnis für Plugins zu definieren.
  • Für Entwicklungsumgebungen wurde das neue Kommando „meson devenv -C builddir [<Kommando>]“ eingeführt, das die Möglichkeit bietet, einen Befehl in einer Umgebung auszuführen, die für das Starten von Projekten aus dem Build-Verzeichnis konfiguriert ist (ohne Installation).
  • Standardmäßig wurde die Übergabe des Parameters „-pipe“ beim Start aller unterstützten Compiler deaktiviert.
  • Der Aufruf von meson.add_dist_script() aus Unterprojekten ist nun erlaubt.
  • Es ist nun möglich, die Methoden append() und prepend() mehrfach für dasselbe Objekt environment() aufzurufen.
  • In der Funktion error() ist es jetzt erlaubt, mehr als ein Argument, getrennt durch ein Leerzeichen, anzugeben (analog zu warning() und message()).
  • Ein Parameter „—skip-subprojects“ wurde hinzugefügt, um die Installation von Unterprojekten selektiv zu überspringen.

Hervorzuheben ist das Projekt Boson, das sich auf die Erstellung einer portablen und einfachen Implementierung der Build-Script-Sprache Meson konzentriert, geschrieben in C anstelle von Python. Das Projekt befindet sich derzeit noch in der Entwicklungsphase und ist noch nicht bereit für den vollständigen Bau von Arbeitsprojekten. Der Code wird unter der GPLv3-Lizenz veröffentlicht (das ursprüngliche Meson in Python wird unter der Apache 2.0-Lizenz bereitgestellt).

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