Übersicht
Meson ist ein Build-System, das so benutzerfreundlich wie möglich gestaltet ist, ohne dabei auf Leistung zu verzichten. Das Hauptwerkzeug hierfür ist eine benutzerdefinierte Sprache, mit der der Benutzer die Struktur seines Builds beschreibt. Die Hauptziele dieser Sprache waren Einfachheit, Klarheit und Prägnanz. Viel Inspiration wurde von der Python-Programmiersprache gezogen, die als sehr lesbar gilt, selbst für Personen, die zuvor noch nie in Python programmiert haben.
Eine weitere Hauptidee war die Bereitstellung einer erstklassigen Unterstützung für moderne Programmierwerkzeuge und Best Practices. Dazu gehören so vielfältige Funktionen wie Unit-Tests, Code-Coverage-Berichterstattung, vorkompilierte Header und Ähnliches. All diese Funktionen sollten für jedes Projekt, das Meson verwendet, sofort verfügbar sein. Der Benutzer sollte nicht nach externen Makros suchen oder Shell-Skripte schreiben müssen, um diese Funktionen zu erhalten. Sie sollten einfach out-of-the-box funktionieren.
Diese Leistungsfähigkeit sollte nicht auf Kosten einer eingeschränkten Benutzerfreundlichkeit gehen. Viele Software-Builds erfordern unorthodoxe Schritte. Ein gängiges Beispiel ist, dass Sie zuerst ein benutzerdefiniertes Werkzeug erstellen müssen und dieses Werkzeug dann verwenden, um mehr Quellcode zu generieren, der kompiliert werden soll. Diese Funktionalität muss unterstützt werden und so einfach zu verwenden sein wie andere Teile des Systems.
Terminologie
Meson folgt der Gesamtstruktur anderer beliebter Build-Systeme wie CMake und GNU Autotools. Das bedeutet, dass der Build in zwei separate Schritte unterteilt ist: Konfigurationsschritt und Build-Schritt. Der erste Schritt inspiziert das System, prüft auf Abhängigkeiten und führt alle anderen notwendigen Schritte zur Konfiguration des Builds durch. Anschließend generiert er das eigentliche Build-System. Der zweite Schritt besteht einfach darin, dieses generierte Build-System auszuführen. Das Endergebnis ist eine Reihe von Build-Zielen, bei denen es sich in der Regel um ausführbare Dateien und gemeinsam genutzte sowie statische Bibliotheken handelt.
Das Verzeichnis, das den Quellcode enthält, wird als Quellverzeichnis bezeichnet. Entsprechend wird das Verzeichnis, in das die Ausgabe geschrieben wird, als Build-Verzeichnis bezeichnet. Bei anderen Build-Systemen ist es üblich, dass diese beiden Verzeichnisse identisch sind. Dies wird als In-Source-Build bezeichnet. Der Fall, bei dem das Build-Verzeichnis getrennt ist, wird als Out-of-Source-Build bezeichnet.
Was Meson von den meisten Build-Systemen unterscheidet, ist, dass es ein separates Build-Verzeichnis erzwingt. Alle vom Build-System erstellten Dateien werden im Build-Verzeichnis abgelegt. Es ist tatsächlich unmöglich, einen In-Source-Build durchzuführen. Für Leute, die es gewohnt sind, innerhalb ihres Quellbaum zu bauen, mag dies wie eine unnötige Komplikation erscheinen. Es gibt jedoch mehrere Vorteile, nur Out-of-Source-Builds durchzuführen. Diese werden im nächsten Kapitel erläutert.
Wenn der Quellcode kompiliert wird, wird normalerweise eine Reihe von Unit-Tests ausgeführt. Diese stellen sicher, dass das Programm wie erwartet funktioniert. Wenn dies der Fall ist, kann das Build-Ergebnis installiert werden, wonach es zur Verwendung bereit ist.
Die Ergebnisse der Suche sind