Freigabe des Build-Tools . Dies ist die vierte Version, die nach dem Rückzug der Qt Company von der Entwicklung des Projekts veröffentlicht wurde, und wurde von einer Community erstellt, die an der Fortsetzung der Entwicklung von Qbs interessiert ist. Für den Build von Qbs wird Qt als Abhängigkeit benötigt, obwohl Qbs selbst für die Organisation des Builds beliebiger Projekte konzipiert ist. Qbs verwendet eine vereinfachte Variante der QML-Sprache zur Definition von Build-Skripten, was flexible Build-Regeln ermöglicht, in denen externe Module eingebunden, JavaScript-Funktionen verwendet 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.
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.17:
- Erste Unterstützung hinzugefügt .
- Das capnp-Modul wurde hinzugefügt, um das Datenserialisierungsprotokoll zu nutzen in C++-Anwendungen.
- Die Möglichkeit, die Variablen product und project in der rechten Seite der moduleProvider-Eigenschaftsdefinitionen anzugeben (z. B. „moduleProviders.mygenerator.chooseLettersFrom: project.beginning“).
- Unterstützung für Toolchains zur Erstellung von C/C++-Projekten hinzugefügt, um ohne Betriebssystem (bare-metal, bei dem der Parameter qbs.targetPlatform auf ‚none‘ gesetzt wird) auf Hardware zu arbeiten: KEIL (ARMCLANG, C166, C251), IAR (CR16, AVR32, M68K) und
GCC (CR16, M68K, M32C, M32R, Super-H, V850, RISC-V, Xtensa). - Unterstützung für die Xcode 12.0-Entwicklungsumgebung für macOS hinzugefügt.
- Bereinigung der Module „Qt for Android“ durchgeführt.
- Die Unterstützung für den Android-Build wurde verbessert. Im Modul Android.sdk wurde die Eigenschaft packageType hinzugefügt, um Pakete im Format 'aab' (Android App Bundles) anstelle von 'apk' zu erstellen, sowie die Eigenschaft aaptName für die Verwendung des neuen aapt2 (Android Asset Packaging Tool). Die Unterstützung für den Build von Android-Anwendungen für die ARMv5-, MIPS- und MIPS64-Plattformen wurde eingestellt.
Quelle: opennet.ru
