Vergleich von Meson mit anderen Build-Systemen
Eine häufige Frage ist: Warum sollte ich Meson einem anderen Build-System X vorziehen? Es gibt keine einzige richtige Antwort darauf, da es vom Anwendungsfall abhängt. Fast alle Build-Systeme verfügen über alle notwendigen Funktionen zum Erstellen von mittelgroßen bis großen Projekten, sodass die Entscheidung in der Regel auf anderen Punkten beruht. Hier listen wir einige Vor- und Nachteile verschiedener Build-Systeme auf, um Ihnen bei Ihrer Entscheidung zu helfen.
GNU Autotools
Vorteile
Hervorragende Unterstützung für Legacy-Unix-Plattformen, große Auswahl an vorhandenen Modulen.
Nachteile
Unnötig langsam, kompliziert, schwer richtig zu bedienen, unzuverlässig, mühsam zu debuggen, für die meisten Leute unverständlich, schlechte Unterstützung für Nicht-Unix-Plattformen (insbesondere Windows).
CMake
Vorteile
Hervorragende Unterstützung für mehrere Backends (Visual Studio, XCode, etc.).
Nachteile
Die Skriptsprache ist umständlich zu handhaben. Einige einfache Dinge sind komplizierter als nötig.
SCons
Vorteile
Volle Leistung von Python verfügbar, um Ihre Builds zu definieren.
Nachteile
Langsam. Erfordert, dass Sie Ihre Konfigurationseinstellungen bei jeder Ausführung übergeben. Das heißt, wenn Sie scons OPT1 OPT2 ausführen und dann nur scons eingeben, wird alles neu konfiguriert, ohne die Einstellungen OPT1 und OPT2 zu übernehmen. Jedes andere Build-System merkt sich die Build-Optionen aus der vorherigen Ausführung.
Bazel
Vorteile
Bewährt für die Skalierung auf sehr große Projekte.
Nachteile
In Java implementiert. Schlechte Windows-Unterstützung. Stark auf Googles Arbeitsweise fokussiert (was gut oder schlecht sein kann). Das Beitragen von Code erfordert die Unterzeichnung einer CLA.
Meson
Vorteile
Das schnellste Build-System siehe Messungen, benutzerfreundlich, so konzipiert, dass es für den Entwickler so unsichtbar wie möglich ist, native Unterstützung für moderne Werkzeuge (vorkompilierte Header, Coverage, Valgrind etc.). Nicht Turing-vollständig, daher sind Build-Definitionsdateien leicht zu lesen und zu verstehen.
Nachteile
Relativ neu, daher noch keine große Benutzerbasis und möglicherweise noch unbekannte Fehler. Visual Studio- und XCode-Backends sind nicht von so hoher Qualität wie das Ninja-Backend.
Die Ergebnisse der Suche sind