Release av Qbs 1.21 byggverktyg och start av Qt 6.3-testning

Releasen av Qbs 1.21 byggverktyg har tillkännages. Detta är den åttonde utgåvan sedan Qt Company lämnade utvecklingen av projektet, förberedd av communityn som är intresserad av att fortsätta utvecklingen av Qbs. För att bygga Qbs krävs Qt bland beroenden, även om Qbs i sig är designat för att organisera sammansättningen av alla projekt. Qbs använder en förenklad version av QML-språket för att definiera projektbyggningsskript, vilket gör att du kan definiera ganska flexibla byggregler som kan ansluta externa moduler, använda JavaScript-funktioner och skapa anpassade byggregler.

Skriptspråket som används i Qbs är anpassat för att automatisera genereringen och analysen av byggskript av IDE:er. Dessutom genererar inte Qbs make-filer och själv, utan mellanhänder som make-verktyget, kontrollerar lanseringen av kompilatorer och länkar, och optimerar byggprocessen baserat på en detaljerad graf över alla beroenden. Närvaron av initiala data om strukturen och beroenden i projektet gör att du effektivt kan parallellisera utförandet av operationer i flera trådar. För stora projekt som består av ett stort antal filer och underkataloger kan återuppbyggnadsprestandan med Qbs överträffa make med flera gånger - ombyggnaden är nästan omedelbar och gör inte att utvecklaren lägger tid på att vänta.

Kom ihåg att 2018 beslutade Qt Company att sluta utveckla Qbs. Qbs utvecklades som en ersättning för qmake, men i slutändan beslutades det att använda CMake som huvudbyggsystem för Qt på lång sikt. Utvecklingen av Qbs har nu fortsatt som ett oberoende projekt som stöds av samhällskrafter och intresserade utvecklare. Qt Companys infrastruktur fortsätter att användas för utveckling.

Viktiga innovationer i Qbs 1.21:

  • Mekanismen för modulleverantörer (modulgeneratorer) har designats om. För ramverk som Qt och Boost är det nu möjligt att använda mer än en leverantör, ange vilken leverantör som ska köras med den nya egenskapen qbsModuleProviders och ange en prioritet för val av moduler som genereras av olika leverantörer. Till exempel kan du ange två leverantörer "Qt" och "qbspkgconfig", av vilka den första kommer att försöka använda användarens Qt-installation (via en qmake-sökning), och om ingen sådan installation hittas, kommer den andra leverantören att försöka använda Qt som tillhandahålls av systemet (via ett anrop till pkg-config) : CppApplication { Depends { name: "Qt.core" } filer: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Lade till "qbspkgconfig"-leverantören, som ersatte "fallback"-modulleverantören, som försökte generera en modul med pkg-config om den begärda modulen inte genererades av andra leverantörer. Till skillnad från "fallback" använder "qbspkgconfig" istället för att anropa verktyget pkg-config ett inbyggt C++-bibliotek för att direkt läsa ".pc"-filer, vilket påskyndar arbetet och ger ytterligare information om paketberoenden som inte är tillgänglig när du anropar pkg-config-verktyget.
  • Lade till stöd för C++23-specifikationen, som definierar den framtida C++-standarden.
  • Lade till stöd för Elbrus E2K-arkitekturen för GCC-verktygssatsen.
  • För Android-plattformen har egenskapen Android.ndk.buildId lagts till för att åsidosätta standardvärdet för länkflaggan "--build-id".
  • Capnproto- och protobuf-modulerna implementerar möjligheten att använda körtider som tillhandahålls av qbspkgconfig-leverantören.
  • Löste problem med ändringsspårning i källfiler på FreeBSD på grund av att millisekunder tappades vid uppskattning av filändringstider.
  • Lade till egenskapen ConanfileProbe.verbose för att göra det enklare att felsöka projekt som använder Conan-pakethanteraren.

Dessutom kan vi notera början av alfatestning av Qt 6.3-ramverket, som implementerar en ny modul "Qt Language Server" med stöd för protokollen Language Server och JsonRpc 2.0, en stor del av nya funktioner har lagts till i Qt Core modulen och QML-typen MessageDialog har implementerats i Qt Quick Dialogs-modulen För att använda dialogrutorna som tillhandahålls av plattformen har en sammansatt Qt Shell-server och ett API för att skapa dina egna anpassade skaltillägg lagts till i Qt Wayland Compositor-modulen .

Qt QML-modulen erbjuder en implementering av kompilatorn qmltc (QML type compiler), som låter dig kompilera QML-objektstrukturer till klasser i C++. För kommersiella användare av Qt 6.3 har testning av Qt Quick Compiler-produkten påbörjats, som förutom den ovan nämnda QML Type Compiler inkluderar QML Script Compiler, som låter dig kompilera QML-funktioner och uttryck till C++-kod. Det noteras att användningen av Qt Quick Compiler kommer att föra prestandan för QML-baserade program närmare inbyggda program, i synnerhet, när man kompilerar tillägg, är det en minskning av start- och exekveringstiden med cirka 30 % jämfört med att använda den tolkade versionen; .

Källa: opennet.ru

Lägg en kommentar