Freigabe des Qbs 2.0-Montagetools

Einführung des Qbs 2.0-Montagetools. Zum Erstellen von Qbs ist Qt als Abhängigkeit erforderlich, obwohl Qbs selbst darauf ausgelegt ist, die Montage beliebiger Projekte zu organisieren. Qbs verwendet eine vereinfachte Version der QML-Sprache, um Projekt-Build-Skripte zu definieren, die es Ihnen ermöglicht, recht flexible Build-Regeln zu definieren, in denen externe Module verbunden, JavaScript-Funktionen verwendet und beliebige Build-Regeln erstellt werden können.

Die in Qbs verwendete Skriptsprache wurde angepasst, um die Generierung und Analyse von Build-Skripten durch IDEs zu automatisieren. Darüber hinaus generiert Qbs keine Makefiles und steuert selbst, ohne Zwischenhändler wie das Make-Dienstprogramm, den Start von Compilern und Linkern und optimiert den Build-Prozess basierend auf einem detaillierten Diagramm aller Abhängigkeiten. Durch das Vorhandensein erster Daten zur Struktur und den Abhängigkeiten im Projekt können Sie die Ausführung von Vorgängen in mehreren Threads effektiv parallelisieren. Bei großen Projekten, die aus einer großen Anzahl von Dateien und Unterverzeichnissen bestehen, kann die Wiederherstellungsleistung mit Qbs die Leistung von make um ein Vielfaches übertreffen – die Wiederherstellung erfolgt nahezu augenblicklich und erfordert für den Entwickler keine Wartezeiten.

Denken Sie daran, dass die Qt Company im Jahr 2018 beschlossen hat, die Entwicklung von Qbs einzustellen. Qbs wurde als Ersatz für qmake entwickelt, letztendlich entschied man sich jedoch, langfristig CMake als Haupt-Build-System für Qt zu verwenden. Die Entwicklung von Qbs wurde nun als unabhängiges Projekt fortgesetzt, das von Community-Kräften und interessierten Entwicklern unterstützt wird. Für die Entwicklung wird weiterhin die Infrastruktur der Qt Company genutzt.

Eine wesentliche Änderung der Versionsnummer ist mit der Implementierung eines neuen JavaScript-Backends verbunden, das das in Qt 6 veraltete QtScript ersetzte. Aufgrund der komplexen Bindungen an JavaScriptCore, also ein Self, wurde es als unrealistisch angesehen, QtScript weiterhin alleine zu pflegen Als Basis für die neue Back-End-QuickJS-JavaScript-Engine von Fabrice Bellard, dem Gründer der QEMU- und FFmpeg-Projekte, wurde eine ausreichende und kompakte Version ausgewählt. Die Engine unterstützt die ES2019-Spezifikation und übertrifft ihre bestehenden Pendants in der Leistung deutlich (XS um 35 %, DukTape um mehr als das Zweifache, JerryScript um das Dreifache und MuJS um das Siebenfache).

Aus Sicht der Entwicklung von Build-Skripten sollte der Übergang zu einer neuen Engine nicht zu spürbaren Änderungen führen. Auch die Leistung bleibt in etwa gleich. Zu den Unterschieden zählt, dass in der neuen Engine strengere Anforderungen an die Verwendung von Nullwerten gestellt werden, wodurch Probleme in bestehenden Projekten aufgedeckt werden können, die bei der Verwendung von QtScript unbemerkt blieben.

Source: opennet.ru

Kommentar hinzufügen