Version 1.21 av Qbs build tools har slÀppts. Detta Àr den Ättonde utgÄvan sedan Qt Company drog sig ur projektets utveckling. Den förbereddes av communityn som var intresserad av att fortsÀtta Qbs-utvecklingen. Qbs krÀver Qt som ett beroende för att bygga, Àven om Qbs i sig Àr utformat för att hantera byggandet av alla projekt. Qbs anvÀnder en förenklad version av QML-sprÄket för att definiera projektbyggskript, vilket möjliggör definition av ganska flexibla byggregler som kan inkludera 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 omdesignats. För ramverk som Qt och Boost kan du nu 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 att vÀlja moduler som genereras av olika leverantörer. Du kan till exempel ange tvÄ leverantörer, "Qt" och "qbspkgconfig", varav den första kommer att försöka anvÀnda anvÀndarens Qt-installation (via qmake-sökning), och om en sÄdan installation inte hittas kommer den andra att försöka anvÀnda den systemtillhandahÄllna Qt (via pkg-config-anrop): CppApplication { Depends { name: "Qt.core" } files: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
- Providern "qbspkgconfig" har lagts till och ersÀtter modulprovidern "fallback", som försökte generera en modul med hjÀlp av pkg-config om modulen i frÄga inte genererades av andra providers. Till skillnad frÄn "fallback" anvÀnder "qbspkgconfig" ett inbyggt C++-bibliotek för att direkt lÀsa .pc-filer istÀllet för att anropa verktyget pkg-config. Detta snabbar upp körningen och ger ytterligare information om paketberoenden som inte Àr tillgÀnglig nÀr man anropar pkg-config.
- Lade till stöd för C++23-specifikationen, som definierar den framtida C++-standarden.
- Stöd för Elbrus E2K-arkitekturen har lagts till i GCC-verktygskedjan.
- För plattformen Android egendom tillagd Android.ndk.buildId, vilket lÄter dig ÄsidosÀtta standardvÀrdet för lÀnkarflaggan "--build-id".
- Modulerna capnproto och protobuf stöder nu anvÀndning av körtidsinstÀllningar som tillhandahÄlls av qbspkgconfig-providern.
- à tgÀrdade problem med att spÄra Àndringar i kÀllkodsfiler pÄ FreeBSD-plattformen pÄ grund av att millisekunder utelÀmnades vid utvÀrdering 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 starten av alfatestning av Qt 6.3-ramverket, vilket implementerar en ny modul "Qt Language Server" med stöd för Language Server- och JsonRpc 2.0-protokollen, en stor del nya funktioner har lagts till i Qt Core-modulen, QML-typen MessageDialog har implementerats i Qt Quick Dialogs-modulen för att anvÀnda dialogrutor som tillhandahÄlls av plattformen, och en komposit har lagts till i Qt Wayland Compositor-modulen. server Qt Shell och API för att skapa dina egna anpassade skaltillÀgg.
Qt QML-modulen erbjuder en implementering av qmltc (QML-typkompilator), som kompilerar QML-objektstrukturer till C++-klasser. Kommersiella anvÀndare av Qt 6.3 har börjat testa Qt Quick Compiler, som, utöver den tidigare nÀmnda QML Type Compiler, inkluderar QML Script Compiler, som kompilerar QML-funktioner och uttryck till C++-kod. AnvÀndning av Qt Quick Compiler har noterats förbÀttra prestandan för QML-baserade program jÀmfört med native program. Specifikt, vid kompilering av tillÀgg, minskas start- och exekveringstiderna med cirka 30 % jÀmfört med den tolkade versionen.
KĂ€lla: opennet.ru
