Die Veröffentlichung des Build-Toolkits Qbs 1.21 und der Beginn der Tests von Qt 6.3.

Die Veröffentlichung des Build-Tools Qbs 1.21 wurde vorgestellt. Dies ist die achte Version, seit die Qt Company die Entwicklung des Projekts eingestellt hat, und sie wurde von der Community erstellt, die an der Fortsetzung der Qbs-Entwicklung interessiert ist. Für den Build von Qbs werden Qt sowie andere Abhängigkeiten benötigt, obwohl Qbs darauf ausgelegt ist, den Build beliebiger Projekte zu organisieren. Qbs verwendet eine vereinfachte Version der QML-Sprache zur Definition von Build-Skripten, was es ermöglicht, ausreichend flexible Build-Regeln zu definieren, in die externe Module integriert werden, JavaScript-Funktionen verwendet werden und benutzerdefinierte Build-Regeln erstellt werden können.

Die in Qbs verwendete Skriptsprache ist auf die Automatisierung der Generierung und Analyse von Build-Skripten in integrierten Entwicklungsumgebungen (IDEs) angepasst. Darüber hinaus generiert Qbs keine Makefiles, sondern steuert direkt, ohne Zwischeninstanzen wie die Make-Utility, den Start von Compilern und Linkern und optimiert den Build-Prozess basierend auf einem detaillierten Graphen aller Abhängigkeiten. Das Vorhandensein von Ausgangsdaten zur Struktur und zu den Abhängigkeiten im Projekt ermöglicht eine effiziente Parallelisierung von Abläufen in mehreren Threads. Für große Projekte mit einer Vielzahl von Dateien und Unterverzeichnissen kann die Leistung bei der erneuten Erstellung mit Qbs um ein Vielfaches schneller sein als bei Make – die erneute Erstellung erfolgt nahezu augenblicklich und zwingt den Entwickler nicht, Zeit mit Warten zu verbringen.

Erinnern wir uns, dass die Qt Company im Jahr 2018 beschlossen hat, die Entwicklung von Qbs einzustellen. Qbs wurde als Ersatz für qmake entwickelt, doch letztendlich wurde entschieden, CMake als primäres Build-System für Qt in der langfristigen Perspektive zu verwenden. Die Entwicklung von Qbs wird nun in Form eines unabhängigen Projekts fortgesetzt, das von der Community und interessierten Entwicklern unterstützt wird. Für die Entwicklung wird vorerst weiterhin die Infrastruktur der Qt Company genutzt.

Die Hauptneuheiten von Qbs 1.21:

  • Der Mechanismus der Modulprovider (Modul-Generatoren) wurde überarbeitet. Für Frameworks wie Qt und Boost können jetzt mehr als ein Provider verwendet werden. Es ist möglich, festzulegen, welcher der Provider mit der neuen Eigenschaft qbsModuleProviders gestartet werden soll, und Prioritäten für die Auswahl der von verschiedenen Provider generierten Module anzugeben. Zum Beispiel können zwei Provider "Qt" und "qbspkgconfig" angegeben werden, wobei der erste versucht, eine benutzerdefinierte Qt-Installation zu verwenden (durch Suche nach qmake), und falls eine solche Installation nicht gefunden wird, der zweite Provider versucht, das von der System bereitgestellte Qt zu verwenden (durch Aufruf von pkg-config): CppApplication { Depends { name: "Qt.core" } files: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Der Provider "qbspkgconfig" wurde hinzugefügt, der den Modulprovider "fallback" ersetzt hat, der versuchte, ein Modul über pkg-config zu generieren, wenn das gesuchte Modul nicht von anderen Providern generiert wurde. Im Gegensatz zu "fallback" verwendet "qbspkgconfig" anstelle des Aufrufs des pkg-config-Tools eine integrierte C++-Bibliothek, um direkt "*.pc"-Dateien zu lesen, was die Prozesse beschleunigt und zusätzliche Informationen über Paketabhängigkeiten liefert, die beim Aufruf des pkg-config-Tools nicht verfügbar sind.
  • Die Unterstützung der C++23-Spezifikation wurde hinzugefügt, die den zukünftigen C++-Standard definiert.
  • Die Unterstützung der Architektur Elbrus E2K wurde für das GCC-Toolset hinzugefügt.
  • Für die Android-Plattform wurde die Eigenschaft Android.ndk.buildId hinzugefügt, die es ermöglicht, den Standardwert für die Linker-Flagge "—build-id" zu überschreiben.
  • In den Modulen capnproto und protobuf wurde die Möglichkeit implementiert, zur Laufzeit von dem Anbieter qbspkgconfig bereitgestellte Ressourcen zu verwenden.
  • Die Probleme mit der Änderungsverfolgung in Quellcodedateien auf der FreeBSD-Plattform wurden gelöst. Diese traten aufgrund des Wegfalls von Millisekunden bei der Zeitbewertung der Dateiänderung auf.
  • Die Eigenschaft ConanfileProbe.verbose wurde hinzugefügt, um die Fehlersuche in Projekten, die den Paketmanager Conan verwenden, zu erleichtern.

Außerdem wird mit dem Beginn der Alpha-Testphase des Frameworks Qt 6.3 ein neues Modul, der "Qt Language Server", vorgestellt, das die Protokolle Language Server und JsonRpc 2.0 unterstützt. In das Modul Qt Core wurden eine Vielzahl neuer Funktionen integriert. Im Modul Qt Quick Dialogs wurde der QML-Typ MessageDialog für die Nutzung der von der Plattform bereitgestellten Dialogfenster eingeführt, während im Modul Qt Wayland Compositor ein Composite hinzugefügt wurde. Server Qt Shell und API zur Erstellung eigener Erweiterungen der Benutzeroberfläche.

Im Qt QML-Modul wird eine Implementierung des qmltc (QML type compiler) vorgeschlagen, die es ermöglicht, QML-Objektstrukturen in Klassen in C++ zu kompilieren. Für kommerzielle Benutzer von Qt 6.3 hat das Testen des Produkts Qt Quick Compiler begonnen, das neben dem oben genannten QML Type Compiler den QML Script Compiler beinhaltet, der es ermöglicht, QML-Funktionen und -Ausdrücke in C++-Code zu kompilieren. Es wird festgestellt, dass die Verwendung des Qt Quick Compilers die Leistung von Anwendungen, die auf QML basieren, der von nativen Anwendungen näherbringen kann. Insbesondere bei der Kompilierung von Erweiterungen wird eine Verkürzung der Start- und Ausführungszeit von etwa 30 % im Vergleich zur Nutzung der interpretierten Version beobachtet.

Quelle: opennet.ru

60GB SSD 8Gb DDR4