Freigabe des Build-Tools . Dies ist die dritte Ausgabe, seit die Qt Company die Entwicklung des Projekts eingestellt hat, vorbereitet von der Community, die an der Fortführung der Qbs-Entwicklung interessiert ist. Zum Bauen von Qbs wird Qt als Abhängigkeit benötigt, obwohl Qbs selbst darauf ausgelegt ist, den Aufbau beliebiger Projekte zu organisieren. Qbs verwendet eine vereinfachte Version der QML-Sprache zur Definition von Build-Skripten, was ermöglicht, recht flexible Build-Regeln zu definieren, in die externe Module eingebunden, JavaScript-Funktionen verwendet und beliebige 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.
Wir erinnern daran, dass die Qt Company im Jahr 2018 Die Entscheidung über die Einstellung der Entwicklung von Qbs. Qbs wurde als Ersatz für qmake entwickelt, aber letztendlich wurde beschlossen, CMake langfristig als primäres Build-System für Qt zu verwenden. Die Entwicklung von Qbs wird nun in Form eines unabhängigen Projekts fortgeführt, das von der Community und interessierten Entwicklern unterstützt wird. Die Infrastruktur der Qt Company bleibt vorerst für die Entwicklung erhalten.
Haupt Qbs 1.16:
- Es wird ein Zusammenführen von Listenattributen in Modulen ermöglicht, die durch gegenseitige Abhängigkeiten verbunden sind, was beispielsweise bei der Verarbeitung solcher Flags wie cpp.staticLibraries wichtig ist.
- Automatische Erkennung von GCC und IAR für Renesas-Mikrocontroller hinzugefügt;
- Unterstützung für Xcode 11.4 in macOS hinzugefügt;
- Erweiterte Funktionen des clang-cl-Unterstützungsmoduls;
- Automatische Erkennung von MSVC, clang-cl und MinGW in Profilen, in denen der Standort des Toolkits nicht ausdrücklich definiert ist, sichergestellt.
- Vereinfachte Aktivierung und Konfiguration von separat installierten Debug-Informationen (cpp.separateDebugInformation) über die Abschnitte Application und DynamicLibrary in den Projekteinstellungen;
- Unterstützung für Qt 5.14 für Android hinzugefügt und das Tool qbs-setup-android aktualisiert;
- Unterstützung von JSON-Dateien, die vom Tool moc (Qt >= 5.15) generiert werden, zu den Einstellungen Qt.core.generateMetaTypesFile und Qt.core.metaTypesInstallDir hinzugefügt;
- Unterstützung des in Qt 5.15 eingeführten neuen Mechanismus zur Typdeklaration für QML hinzugefügt;
- Einstellung ConanfileProbe hinzugefügt, um die Integration von Qbs mit dem Paketmanager zu vereinfachen (für C/C++).
Quelle: opennet.ru
