Qbs 2.0 monteringsverktøyutgivelse

Utgivelsen av Qbs 2.0-monteringsverktøysettet har blitt annonsert. 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 som kan koble til eksterne moduler, bruke JavaScript-funksjoner og lage tilpassede byggeregler.

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.

En betydelig endring i versjonsnummeret er knyttet til implementeringen av en ny JavaScript-backend, som erstattet QtScript, som ble erklært foreldet i Qt 6. Det ble ansett som urealistisk å fortsette å vedlikeholde QtScript på egenhånd på grunn av komplekse bindinger til JavaScriptCore, så en Selvforsynt og kompakt ble valgt som grunnlag for den nye backend. QuickJS JavaScript-motoren ble laget av Fabrice Bellard, som grunnla QEMU- og FFmpeg-prosjektene. Motoren støtter ES2019-spesifikasjonen og er merkbart overlegen i ytelse i forhold til eksisterende analoger (XS med 35 %, DukTape med mer enn to ganger, JerryScript med tre ganger og MuJS med syv ganger).

Fra synspunktet om å utvikle monteringsskript, bør overgangen til en ny motor ikke føre til merkbare endringer. Produktiviteten vil også holde seg på omtrent samme nivå. Blant forskjellene er det strengere krav i den nye motoren til bruk av null, som kan avdekke problemer i eksisterende prosjekter som gikk upåaktet hen ved bruk av QtScript.

Kilde: opennet.ru

Legg til en kommentar