uitgave van de buildtool . Dit is de vierde editie sinds de Qt Company is gestopt met de ontwikkeling van het project, voorbereid door de gemeenschap die geïnteresseerd is in het voortzetten van de ontwikkeling van Qbs. Voor het bouwen van Qbs is Qt een van de vereiste afhankelijkheden, hoewel Qbs zelf is ontworpen om de bouw van elk project te organiseren. Qbs maakt gebruik van een vereenvoudigde versie van de QML-taal voor het definiëren van bouwscripts, waarmee flexibele bouwregels kunnen worden vastgesteld die externe modules kunnen integreren, JavaScript-functies kunnen gebruiken en aangepaste bouwregels kunnen creëren.
De in Qbs gebruikte scripts taal is aangepast voor het automatiseren van de generatie en parsing van bouwscripts voor geïntegreerde ontwikkelomgevingen. Bovendien genereert Qbs geen make-bestanden, maar beheert het zelf, zonder tussenpersonen zoals de make-tool, de uitvoering van compilers en linkers, waarbij het bouwproces wordt geoptimaliseerd op basis van een gedetailleerde grafiek van alle afhankelijkheden. De aanwezigheid van oorspronkelijke gegevens over de structuur en afhankelijkheden in het project maakt het mogelijk om de uitvoering van taken effectief te paralelliseren in meerdere threads. Voor grote projecten, bestaande uit een groot aantal bestanden en subdirectory's, kan de prestaties van een herbouw met Qbs vele malen beter zijn dan die van make — de herbouw gebeurt bijna onmiddellijk en voorkomt dat de ontwikkelaar tijd verliest met wachten.
Ter herinnering, in 2018 heeft Qt Company de beslissing genomen om de ontwikkeling van Qbs stop te zetten. Qbs werd ontwikkeld als een vervanging voor qmake, maar uiteindelijk werd besloten om CMake als het belangrijkste buildsysteem voor Qt op lange termijn te gebruiken. De ontwikkeling van Qbs wordt nu voortgezet in de vorm van een onafhankelijk project, ondersteund door de gemeenschap en geïnteresseerde ontwikkelaars. Voor de ontwikkeling wordt nog steeds de infrastructuur van Qt Company gebruikt.
Belangrijkste Qbs 1.17:
- Beginondersteuning toegevoegd .
- Capnp-module toegevoegd voor gebruik van een gegevenserieelprotocol in C++-applicaties.
- mogelijkheid om de variabelen product en project aan de rechterzijde van de moduleProvider-eigenschaften te definiëren (bijvoorbeeld, «moduleProviders.mygenerator.chooseLettersFrom: project.beginning»).
- Ondersteuning toegevoegd voor build-tools voor C/C++-projecten die draaien op hardware zonder besturingssysteem (bare-metal, met de parameter qbs.targetPlatform ingesteld op ‘none’): KEIL (ARMCLANG, C166, C251), IAR (CR16, AVR32, M68K) en
GCC (CR16, M68K, M32C, M32R, Super-H, V850, RISC-V, Xtensa). - Ondersteuning toegevoegd voor ontwikkelomgeving Xcode 12.0 voor macOS.
- Schoonmaak uitgevoerd voor de modules «Qt for Android».
- Verbeterde ondersteuning voor de bouw voor het Android-platform. In de Android.sdk-module is de eigenschap packageType toegevoegd om «aab»-pakketten (Android App Bundles) te creëren in plaats van «apk», evenals de eigenschap aaptName voor het gebruik van de nieuwe aapt2 (Android Asset Packaging Tool). De ondersteuning voor het bouwen van Android-applicaties voor ARMv5-, MIPS- en MIPS64-platforms is beëindigd.
Bron: opennet.ru
