Veröffentlichung des Buildsystems Meson 1.0.

Die Version 1.0.0 des Build-Systems Meson wurde veröffentlicht, das für die Erstellung 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 wird unter der Apache 2.0 Lizenz bereitgestellt.

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.

Neuigkeiten in Meson 1.0:

  • Ein stabiler Modul für die Projekterstellung in Rust wurde angekündigt. Dieses Modul wird im Mesa-Projekt zur Kompilierung von Komponenten verwendet, die in Rust geschrieben sind.
  • Die prefix-Option, die in den meisten Compiler-Check-Funktionen unterstützt wird, kann jetzt Arrays neben Strings verarbeiten. Zum Beispiel kann jetzt angegeben werden: cc.check_header(‘GL/wglew.h’, prefix : [‘#include ’, ‘#include ’])
  • Ein neues Argument „—workdir“ wurde hinzugefügt, das es ermöglicht, das Arbeitsverzeichnis zu überschreiben. Um beispielsweise das aktuelle Verzeichnis anstelle des Arbeitsverzeichnisses zu verwenden, kann Folgendes gestartet werden: meson devenv -C builddir —workdir .
  • Neue Operatoren „in“ und „not in“ wurden vorgeschlagen, um das Vorkommen einer Teilzeichenfolge in einer Zeichenfolge ähnlich der zuvor verfügbaren Überprüfung des Vorkommens eines Elements in einem Array oder Dictionary zu bestimmen. Zum Beispiel: fs = import(‘fs’) if ‘something’ in fs.read(‘somefile’) # True endif
  • Eine Option „warning-level=everything“ wurde hinzugefügt, die die Ausgabe aller vorhandenen Compiler-Warnungen aktiviert (in clang und MSVC wird -Weverything und /Wall verwendet, während in GCC Warnungen getrennt aktiviert werden, die ungefähr dem Modus -Weverything in clang entsprechen).
  • Im Methodensatz rust.bindgen wurde die Möglichkeit zur Verarbeitung des Arguments „dependencies“ implementiert, um Pfade zu Abhängigkeiten zu übergeben, die vom Compiler verarbeitet werden müssen.
  • Die Funktion java.generate_native_headers wurde als veraltet erklärt und in java.native_headers umbenannt, um dem allgemeinen Stil der Funktionsbenennung zu entsprechen, der in Meson angenommen wurde.

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