Utgivelse av Qbs 1.21 byggeverktøy og start av Qt 6.3-testing

Utgivelsen av Qbs 1.21 byggeverktøy har blitt annonsert. Dette er den åttende utgivelsen siden Qt Company forlot utviklingen av prosjektet, utarbeidet av samfunnet som er interessert i å fortsette utviklingen av Qbs. For å bygge Qbs kreves Qt blant avhengighetene, selv om Qbs i seg selv er designet for å organisere sammenstillingen av alle prosjekter. Qbs bruker en forenklet versjon av QML-språket for å definere prosjektbyggingsskript, som lar deg definere ganske fleksible byggeregler der eksterne moduler kan kobles til, JavaScript-funksjoner kan brukes og vilkårlige byggeregler kan opprettes.

Skriptspråket som brukes i Qbs er tilpasset for å automatisere generering og parsing av byggeskript av integrerte utviklingsmiljøer. I tillegg genererer ikke Qbs makefiler, men selv, uten mellomledd som make-verktøyet, kontrollerer lanseringen av kompilatorer og linkere, og optimaliserer byggeprosessen basert på en detaljert graf over alle avhengigheter. Tilstedeværelsen av innledende data om strukturen og avhengighetene i prosjektet lar deg effektivt parallellisere utførelsen av operasjoner i flere tråder. For store prosjekter som består av et stort antall filer og underkataloger, kan ytelsen til gjenoppbygging med Qbs være flere ganger raskere enn make - gjenoppbygging utføres nesten umiddelbart og tvinger ikke utvikleren til å kaste bort tid på å vente.

La oss huske at Qt Company i 2018 bestemte seg for å slutte å utvikle Qbs. Qbs ble utviklet som en erstatning for qmake, men til slutt ble det besluttet å bruke CMake som hovedbyggesystemet for Qt på lang sikt. Utviklingen av Qbs har nå fortsatt som et uavhengig prosjekt støttet av samfunnet og interesserte utviklere. Qt Company-infrastrukturen fortsetter å bli brukt til utvikling.

Viktige innovasjoner i Qbs 1.21:

  • Mekanismen til modulleverandører (modulgeneratorer) har blitt redesignet. For rammeverk som Qt og Boost er det nå mulig å bruke mer enn én leverandør, spesifisere hvilken leverandør som skal kjøres med den nye egenskapen qbsModuleProviders, og spesifisere en prioritet for valg av moduler generert av forskjellige leverandører. For eksempel kan du spesifisere to leverandører "Qt" og "qbspkgconfig", den første vil prøve å bruke brukerens Qt-installasjon (via et qmake-søk), og hvis ingen slik installasjon blir funnet, vil den andre leverandøren prøve å bruke Qt levert av systemet (via et kall til pkg-config): CppApplication { Depends { name: "Qt.core" } filer: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • La til "qbspkgconfig"-leverandøren, som erstattet "fallback"-modulleverandøren, som forsøkte å generere en modul ved å bruke pkg-config hvis den forespurte modulen ikke ble generert av andre leverandører. I motsetning til "fallback", bruker "qbspkgconfig" i stedet for å kalle pkg-config-verktøyet et innebygd C++-bibliotek for å lese ".pc"-filer direkte, noe som øker hastigheten på arbeidet og gir tilleggsinformasjon om pakkeavhengigheter som ikke er tilgjengelig når du kaller opp pkg-config-verktøyet.
  • Lagt til støtte for C++23-spesifikasjonen, som definerer den fremtidige C++-standarden.
  • Lagt til støtte for Elbrus E2K-arkitekturen for GCC-verktøysettet.
  • For Android-plattformen er Android.ndk.buildId-egenskapen lagt til for å overstyre standardverdien for linkerflagget «--build-id».
  • Capnproto- og protobuf-modulene implementerer muligheten til å bruke kjøretider levert av qbspkgconfig-leverandøren.
  • Løste problemer med endringssporing i kildefiler på FreeBSD på grunn av at millisekunder ble droppet ved estimering av filmodifikasjonstider.
  • Lagt til egenskapen ConanfileProbe.verbose for å gjøre det enklere å feilsøke prosjekter som bruker Conan-pakkebehandlingen.

I tillegg kan vi merke begynnelsen på alfa-testing av Qt 6.3-rammeverket, som implementerer en ny modul "Qt Language Server" med støtte for Language Server og JsonRpc 2.0-protokollene, en stor del av nye funksjoner er lagt til Qt Core modulen, og QML-typen MessageDialog er implementert i Qt Quick Dialogs-modulen For å bruke dialogboksene fra plattformen, er en sammensatt Qt Shell-server og en API for å lage dine egne tilpassede shell-utvidelser lagt til Qt Wayland Compositor-modulen .

Qt QML-modulen tilbyr en implementering av kompilatoren qmltc (QML type compiler), som lar deg kompilere QML-objektstrukturer til klasser i C++. For kommersielle brukere av Qt 6.3 har testing av Qt Quick Compiler-produktet begynt, som i tillegg til den ovennevnte QML Type Compiler inkluderer QML Script Compiler, som lar deg kompilere QML funksjoner og uttrykk til C++ kode. Det bemerkes at bruken av Qt Quick Compiler vil bringe ytelsen til QML-baserte programmer nærmere innfødte programmer; spesielt når du kompilerer utvidelser, er det en reduksjon i oppstarts- og utførelsestid med omtrent 30 % sammenlignet med å bruke den tolkede versjonen .

Kilde: opennet.ru

Legg til en kommentar