Veröffentlichung des Build-Toolkits Qbs 2.0

Die Version 2.0 des Build-Tools Qbs wurde vorgestellt. Für die Verwendung von Qbs ist Qt als Abhängigkeit erforderlich, obwohl Qbs selbst darauf ausgelegt ist, die Zusammenstellung beliebiger Projekte zu organisieren. Qbs verwendet eine vereinfachte Variante von QML zur Definition von Build-Skripten, wodurch recht flexible Build-Regeln definiert werden können, bei denen externe Module eingebunden, JavaScript-Funktionen genutzt und benutzerdefinierte Build-Regeln erstellt werden können.

Die in Qbs verwendete Skriptsprache wurde zur Automatisierung der Generierung und Analyse von Build-Skripten in integrierten Entwicklungsumgebungen angepasst. Darüber hinaus generiert Qbs keine Makefiles, sondern steuert direkt die Ausführung von Compilern und Linkern ohne zwischengeschaltete Tools wie das Make-Utility und optimiert den Build-Prozess basierend auf einem detaillierten Graphen aller Abhängigkeiten. Das Vorhandensein von ursprünglichen Daten über die Struktur und Abhängigkeiten im Projekt ermöglicht es, Operationen effizient in mehreren Threads parallel auszuführen. Bei großen Projekten, die aus zahlreichen Dateien und Unterverzeichnissen bestehen, kann die Leistung der erneuten Erstellung mit Qbs die von Make um ein Vielfaches übertreffen – die erneute Erstellung erfolgt nahezu sofort und lässt den Entwickler nicht unnötig warten.

Erinnern wir uns daran, dass die Qt Company 2018 die Entscheidung traf, die Entwicklung von Qbs einzustellen. Qbs wurde als Ersatz für qmake entwickelt, aber letztendlich wurde beschlossen, CMake als primäres Build-System für Qt langfristig zu verwenden. Die Entwicklung von Qbs wird nun in Form eines unabhängigen Projekts fortgesetzt, das von der Gemeinschaft und interessierten Entwicklern unterstützt wird. Die Infrastruktur der Qt Company wird weiterhin für die Entwicklung genutzt.

Die signifikante Änderung der Version ist auf die Implementierung eines neuen JavaScript-Backends zurückzuführen, das QtScript ersetzt, welches in Qt 6 als veraltet betrachtet wurde. Aufgrund der komplexen Bindungen an JavaScriptCore wurde es als unrealistisch angesehen, QtScript eigenständig weiter zu unterstützen. Daher wurde das selbsttragende und kompakte JavaScript-Engine QuickJS als Grundlage für das neue Backend gewählt, das von Fabrice Bellard, dem Gründer der Projekte QEMU und FFmpeg, entwickelt wurde. Die Engine unterstützt die ES2019-Spezifikation und übertrifft bestehende Alternativen hinsichtlich der Leistung (XS um 35 %, DukTape mehr als doppelt, JerryScript um das Dreifache und MuJS um das Siebenfache).

Aus der Sicht der Entwicklung von Build-Skripten sollte der Wechsel zur neuen Engine keine spürbaren Änderungen mit sich bringen. Die Leistung bleibt ebenfalls auf einem ähnlichen Niveau. Zu den unterscheidenden Merkmalen zählen die strengeren Anforderungen der neuen Engine im Umgang mit undefinierten Werten, was Probleme in bestehenden Projekten aufdecken könnte, die bei der Verwendung von QtScript unbemerkt blieben.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster