uitgave van de buildtool . Dit is de derde uitgave na de beslissing van Qt Company om de ontwikkeling van het project te stoppen, nu voorbereid door de gemeenschap die geïnteresseerd is in voortzetting van de ontwikkeling van Qbs. Voor het bouwen van Qbs zijn afhankelijkheden van Qt vereist, hoewel Qbs zelf is ontworpen om de bouw van allerlei projecten te organiseren. Qbs maakt gebruik van een vereenvoudigde versie van de QML-taal voor het definiëren van buildscenario's, waarmee flexibele bouwregels kunnen worden opgesteld waarin externe modules kunnen worden aangesloten, JavaScript-functies kunnen worden gebruikt en arbitrarily bouwregels kunnen worden gecreëerd.
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.16:
- Er is een samensmelting van lijsteigenschappen in modules verzekerd die met wederzijdse afhankelijkheden zijn verbonden, wat belangrijk is bij de verwerking van flags zoals cpp.staticLibraries;
- Automatische detectie van GCC en IAR voor Renesas microcontrollers is toegevoegd;
- Ondersteuning voor Xcode 11.4 op macOS is toegevoegd;
- De mogelijkheden van de clang-cl ondersteuningsmodule zijn uitgebreid;
- Automatische detectie van MSVC, clang-cl en MinGW is verzekerd in profielen waar de locatie van de toolchain niet expliciet is gedefinieerd;
- Het opnemen en configureren van apart geïnstalleerde debug-informatie (cpp.separateDebugInformation) via de Application- en DynamicLibrary-secties in de projectinstellingen is vereenvoudigd;
- Ondersteuning voor Qt 5.14 op Android is toegevoegd en de qbs-setup-android utility is bijgewerkt;
- JSON-bestanden die door de moc utility (Qt >= 5.15) worden gegenereerd, zijn toegevoegd aan de instellingen Qt.core.generateMetaTypesFile en Qt.core.metaTypesInstallDir;
- Ondersteuning voor het nieuwe type declaratiemechanisme dat in Qt 5.15 is geïntroduceerd voor QML is toegevoegd;
- Een ConanfileProbe-instelling is toegevoegd om de integratie van Qbs met de package manager (voor C/C++).
Bron: opennet.ru
