Veröffentlichung der Qbs 1.21-Build-Tools und Beginn der Qt 6.3-Tests

Die Veröffentlichung der Build-Tools Qbs 1.21 wurde angekündigt. Dies ist die achte Veröffentlichung, seit die Qt Company die Entwicklung des Projekts aufgegeben hat, vorbereitet von der Community, die an der Weiterentwicklung von Qbs interessiert ist. Um Qbs zu erstellen, ist Qt unter den Abhängigkeiten 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, ziemlich flexible Build-Regeln zu definieren, die externe Module verbinden, JavaScript-Funktionen verwenden und benutzerdefinierte Build-Regeln erstellen 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.

Wichtige Neuerungen in Qbs 1.21:

  • Der Mechanismus der Modulanbieter (Modulgeneratoren) wurde neu gestaltet. Für Frameworks wie Qt und Boost ist es jetzt möglich, mehr als einen Anbieter zu verwenden, mit der neuen qbsModuleProviders-Eigenschaft anzugeben, welcher Anbieter ausgeführt werden soll, und eine Priorität für die Auswahl von Modulen anzugeben, die von verschiedenen Anbietern generiert wurden. Sie können beispielsweise zwei Anbieter „Qt“ und „qbspkgconfig“ angeben, von denen der erste versucht, die Qt-Installation des Benutzers zu verwenden (über eine qmake-Suche), und wenn keine solche Installation gefunden wird, versucht der zweite Anbieter, sie zu verwenden das vom System bereitgestellte Qt (über einen Aufruf von pkg-config): CppApplication { Depends { name: "Qt.core" } files: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Der „qbspkgconfig“-Anbieter wurde hinzugefügt, der den „Fallback“-Modulanbieter ersetzte, der versuchte, ein Modul mit pkg-config zu generieren, wenn das angeforderte Modul nicht von anderen Anbietern generiert wurde. Im Gegensatz zu „Fallback“ verwendet „qbspkgconfig“ anstelle des Aufrufs des Dienstprogramms pkg-config eine integrierte C++-Bibliothek, um „.pc“-Dateien direkt zu lesen, was die Arbeit beschleunigt und zusätzliche Informationen über Paketabhängigkeiten bereitstellt, die beim Aufrufen des Dienstprogramms nicht verfügbar sind Dienstprogramm pkg-config.
  • Unterstützung für die C++23-Spezifikation hinzugefügt, die den zukünftigen C++-Standard definiert.
  • Unterstützung für die Elbrus E2K-Architektur für das GCC-Toolkit hinzugefügt.
  • Für die Android-Plattform wurde die Eigenschaft Android.ndk.buildId hinzugefügt, um den Standardwert für das Linker-Flag „--build-id“ zu überschreiben.
  • Die Module capnproto und protobuf implementieren die Möglichkeit, vom qbspkgconfig-Anbieter bereitgestellte Laufzeiten zu verwenden.
  • Probleme mit der Änderungsverfolgung in Quelldateien unter FreeBSD behoben, da bei der Schätzung der Dateiänderungszeiten Millisekunden verloren gingen.
  • Die Eigenschaft „ConanfileProbe.verbose“ wurde hinzugefügt, um das Debuggen von Projekten zu erleichtern, die den Conan-Paketmanager verwenden.

Darüber hinaus können wir den Beginn des Alpha-Tests des Qt 6.3-Frameworks verzeichnen, das ein neues Modul „Qt Language Server“ mit Unterstützung für die Protokolle Language Server und JsonRpc 2.0 implementiert. Dem Qt Core wurden zahlreiche neue Funktionen hinzugefügt Modul und der QML-Typ MessageDialog wurden im Qt Quick Dialogs-Modul implementiert. Um die von der Plattform bereitgestellten Dialogfelder zu nutzen, wurden dem Qt Wayland Compositor-Modul ein zusammengesetzter Qt-Shell-Server und eine API zum Erstellen eigener benutzerdefinierter Shell-Erweiterungen hinzugefügt .

Das Qt QML-Modul bietet eine Implementierung des qmltc-Compilers (QML Type Compiler), mit dem Sie QML-Objektstrukturen in Klassen in C++ kompilieren können. Für kommerzielle Benutzer von Qt 6.3 hat der Test des Produkts Qt Quick Compiler begonnen, das neben dem oben genannten QML Type Compiler auch den QML Script Compiler enthält, mit dem Sie QML-Funktionen und -Ausdrücke in C++-Code kompilieren können. Es wird darauf hingewiesen, dass die Verwendung von Qt Quick Compiler die Leistung von QML-basierten Programmen näher an native Programme bringen wird; insbesondere beim Kompilieren von Erweiterungen kommt es zu einer Reduzierung der Start- und Ausführungszeit um etwa 30 % im Vergleich zur Verwendung der interpretierten Version .

Source: opennet.ru

Kommentar hinzufügen