Qbs är ett gemenskapsdrivet, språkagnostiskt byggautomationssystem. Det är snabbt och erbjuder ett språk som är lätt att lära sig baserat på QML.
nyligen lanseringen av den nya versionen av Qbs 2.0 tillkännagavs, som är gratis och öppen källkod plattformsoberoende programvara för att hantera processen för att skapa programvara. Den designades för att stödja stora och komplexa projekt, skrivna på olika programmeringsspråk, främst C/C++.
Den nya versionen 2.0 är betydande i versionsnummer, eftersom det är associerat med implementeringen av en ny JavaScript-backend., som ersatte QtScript, som fasades ut i Qt 6.
För de som inte är medvetna om Qbs bör de veta att detta använder en förenklad version av QML-språket för att definiera projektbyggningsskript, så att du kan definiera ganska flexibla byggregler där externa moduler kan pluggas in, JavaScript-funktioner kan användas och godtyckliga byggregler kan skapas.
Qbs är unikt genom att dete har ingen mekanism för interna sammanställningar, säkerställa möjligheten att skapa flera byggnader från ett enda källträd, inklusive byggnad från ett enda kommandoanrop och parallellt.
Detta är en nyckelfunktion, som säkerställer att källfiler inte påverkas om en byggkatalog raderas och att inga utdataartefakter skrivs till källkatalogen. 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.
Skriptspråket som används i Qbs är skräddarsytt för att automatisera genereringen och analysen av byggskript av IDE:er. Dessutom genererar inte Qbs makefiler och utan mellanhänder som make-verktyget kontrollerar frisläppandet av kompilatorer och länkar, vilket 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 prestandan för ombyggnader med Qbs vara flera gånger bättre än make: ombyggnaden är nästan omedelbar och slösar inte tid på att vänta.
De viktigaste nyheterna i QBS 2.0
Denna nya version av QBS 2.0 är anmärkningsvärd som nämndes i början, på grund av ny JavaScript-motor som kommer att ersätta QtScript som föråldrades för Qt 6, eftersom det ansågs orealistiskt att fortsätta stödja QtScript på egen hand på grund av komplexa bindningar till JavaScriptCore.
Utsikten att behålla QtScript med dess komplexa beroende verkade inte särskilt tilltalande. Ingen av kandidaterna erbjöd dock ett API för att avlyssna egendomsåtkomster, något utvecklarna säger att de absolut behöver av prestandaskäl.
Ur användarens synvinkel bör det inte finnas några märkbara förändringar; framför allt verkar prestationen vara ungefär densamma. QtScript var dock ganska överseende med att acceptera odefinierade värden i sammanhang där det inte behövde, så den nya implementeringen kan avslöja några buggar i dina projekt.
Motorn är kompatibel med 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). Ur en utvecklingssynpunkt för byggskript bör övergången till en ny motor inte resultera i märkbara förändringar.
Prestandan kommer också att förbli ungefär densamma. Av skillnaderna finns det hårdare 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 vid användning av QtScript.
Utöver detta nämns också att tog bort qmake-projektfiler, vilket resulterade i minskat underhållsarbete för utvecklare.
Slutligen nämns det att version 2.1 kommer att se en omskrivning av koden med vilken utvecklarna antar att de kommer att ha flera nya funktioner, samt generella prestandaförbättringar.
Om du är intresserad av att veta mer om det kan du konsultera detaljerna I följande länk.