Uitgave van Qbs 1.21 buildtools en start van Qt 6.3-testen

De release van Qbs 1.21 buildtools is aangekondigd. Dit is de achtste release sinds Qt Company de ontwikkeling van het project heeft verlaten, voorbereid door de gemeenschap die geïnteresseerd is in het voortzetten van de ontwikkeling van Qbs. Om Qbs te bouwen is Qt vereist tussen de afhankelijkheden, hoewel Qbs zelf is ontworpen om de assemblage van projecten te organiseren. Qbs gebruikt een vereenvoudigde versie van de QML-taal om projectbouwscripts te definiëren, waarmee u redelijk flexibele bouwregels kunt definiëren die externe modules kunnen verbinden, JavaScript-functies kunnen gebruiken en aangepaste bouwregels kunnen maken.

De scripttaal die in Qbs wordt gebruikt, is aangepast om het genereren en ontleden van buildscripts door IDE's te automatiseren. Bovendien genereert Qbs geen makefiles en regelt het zelf, zonder tussenpersonen zoals het make-hulpprogramma, de lancering van compilers en linkers, waarbij het bouwproces wordt geoptimaliseerd op basis van een gedetailleerde grafiek van alle afhankelijkheden. Door de aanwezigheid van initiële gegevens over de structuur en afhankelijkheden in het project kunt u de uitvoering van bewerkingen in verschillende threads effectief parallelliseren. Voor grote projecten die uit een groot aantal bestanden en submappen bestaan, kan het opnieuw opbouwen met behulp van Qbs vele malen beter presteren dan make - het opnieuw opbouwen gebeurt vrijwel onmiddellijk en de ontwikkelaar hoeft niet lang te wachten.

Bedenk dat de Qt Company in 2018 besloot te stoppen met de ontwikkeling van Qbs. Qbs is ontwikkeld als vervanging voor qmake, maar uiteindelijk werd besloten om op de lange termijn CMake te gebruiken als het belangrijkste bouwsysteem voor Qt. De ontwikkeling van Qbs is nu voortgezet als een onafhankelijk project, ondersteund door gemeenschapskrachten en geïnteresseerde ontwikkelaars. De infrastructuur van Qt Company wordt nog steeds gebruikt voor ontwikkeling.

Belangrijkste innovaties in Qbs 1.21:

  • Het mechanisme van moduleaanbieders (modulegeneratoren) is opnieuw ontworpen. Voor raamwerken zoals Qt en Boost is het nu mogelijk om meer dan één provider te gebruiken, op te geven welke provider moet worden uitgevoerd met behulp van de nieuwe eigenschap qbsModuleProviders, en een prioriteit op te geven voor het selecteren van modules die door verschillende providers zijn gegenereerd. U kunt bijvoorbeeld twee providers "Qt" en "qbspkgconfig" opgeven, waarvan de eerste zal proberen de Qt-installatie van de gebruiker te gebruiken (via een qmake-zoekopdracht), en als een dergelijke installatie niet wordt gevonden, zal de tweede provider proberen de Qt-installatie van de gebruiker te gebruiken. de Qt geleverd door het systeem (via een aanroep naar pkg-config): CppApplication { Depends { name: "Qt.core" } files: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • De provider "qbspkgconfig" toegevoegd, die de "fallback"-moduleprovider verving, die probeerde een module te genereren met behulp van pkg-config als de gevraagde module niet door andere providers was gegenereerd. In tegenstelling tot “fallback” gebruikt “qbspkgconfig” in plaats van het pkg-config hulpprogramma een ingebouwde C++-bibliotheek om direct “.pc”-bestanden te lezen, wat het werk versnelt en aanvullende informatie biedt over pakketafhankelijkheden die niet beschikbaar is bij het aanroepen van het pkg-config-hulpprogramma.
  • Ondersteuning toegevoegd voor de C++23-specificatie, die de toekomstige C++-standaard definieert.
  • Ondersteuning toegevoegd voor de Elbrus E2K-architectuur voor de GCC-toolkit.
  • Voor het Android-platform is de eigenschap Android.ndk.buildId toegevoegd om de standaardwaarde voor de linkervlag "--build-id" te overschrijven.
  • De capnproto- en protobuf-modules implementeren de mogelijkheid om runtimes te gebruiken die worden geleverd door de qbspkgconfig-provider.
  • Problemen opgelost met het bijhouden van wijzigingen in bronbestanden op FreeBSD doordat milliseconden wegvielen bij het schatten van de wijzigingstijden van bestanden.
  • De eigenschap ConanfileProbe.verbose is toegevoegd om het eenvoudiger te maken fouten op te sporen in projecten die de Conan-pakketbeheerder gebruiken.

Bovendien kunnen we het begin noteren van alfatesten van het Qt 6.3-framework, dat een nieuwe module “Qt Language Server” implementeert met ondersteuning voor de Language Server- en JsonRpc 2.0-protocollen, een groot deel van nieuwe functies is toegevoegd aan de Qt Core module, en het QML-type MessageDialog is geïmplementeerd in de Qt Quick Dialogs-module. Om de dialoogvensters van het platform te gebruiken, zijn een samengestelde Qt Shell-server en een API voor het maken van uw eigen aangepaste shell-extensies toegevoegd aan de Qt Wayland Compositor-module .

De Qt QML-module biedt een implementatie van de qmltc-compiler (QML-type compiler), waarmee u QML-objectstructuren kunt compileren in klassen in C++. Voor commerciële gebruikers van Qt 6.3 is het testen van het Qt Quick Compiler-product begonnen, dat, naast de bovengenoemde QML Type Compiler, de QML Script Compiler bevat, waarmee u QML-functies en expressies in C++-code kunt compileren. Opgemerkt wordt dat het gebruik van Qt Quick Compiler de prestaties van op QML gebaseerde programma's dichter bij de oorspronkelijke programma's zal brengen; in het bijzonder bij het compileren van extensies is er een vermindering van de opstart- en uitvoeringstijd met ongeveer 30% vergeleken met het gebruik van de geïnterpreteerde versie .

Bron: opennet.ru

Voeg een reactie