Qbs 2.0 monteringsverktygsutlösning

Qbs 2.0 byggverktygsversion introducerad. För att bygga Qbs krävs Qt som ett beroende, även om Qbs i sig är designat för att organisera monteringen 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 där externa moduler kan anslutas, JavaScript-funktioner kan användas och godtyckliga byggregler kan skapas.

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.

En betydande ändring av versionsnumret är förknippad med implementeringen av en ny JavaScript-backend, som ersatte QtScript, som föråldrades i Qt 6. Det ansågs orealistiskt att fortsätta underhålla QtScript på egen hand på grund av komplexa bindningar till JavaScriptCore, så en själv -tillräcklig och kompakt valdes som grund för den nya backend QuickJS JavaScript-motorn skapad av Fabrice Bellard, som grundade QEMU- och FFmpeg-projekten. Motorn stöder ES2019-specifikationen och överträffar avsevärt sina befintliga motsvarigheter i prestanda (XS med 35 %, DukTape med mer än två gånger, JerryScript med tre gånger och MuJS med sju gånger).

Med tanke på utvecklingen av byggskript bör övergången till en ny motor inte leda till märkbara förändringar. Prestandan kommer också att förbli ungefär densamma. Av skillnaderna finns det strängare krav i den nya motorn för användning av null-värden, vilket kan avslöja problem i befintliga projekt som gick obemärkt förbi när man använde QtScript.

Källa: opennet.ru

Lägg en kommentar