Qbs je sustav za automatizaciju izgradnje koji pokreće zajednica i ne ovisi o jeziku. Brz je i nudi jezik koji je jednostavan za učenje temeljen na QML-u.
nedavno najavljeno je izdavanje nove verzije Qbs 2.0, koji je besplatni softver otvorenog koda za više platformi za upravljanje procesom izrade softvera. Dizajniran je za podršku velikim i složenim projektima, napisanim u različitim programskim jezicima, uglavnom C/C++.
Nova verzija 2.0 značajan je po broju verzije jer je povezan s implementacijom novog JavaScript backend-a., koji je zamijenio QtScript, koji je zastario u Qt 6.
Za one koji nisu svjesni Qbs-a, trebali bi znati da ovo koristi pojednostavljenu verziju QML jezika za definiranje skripti za izgradnju projekta, što vam omogućuje da definirate prilično fleksibilna pravila za izgradnju gdje se mogu priključiti vanjski moduli, koristiti JavaScript funkcije i stvoriti proizvoljna pravila za izgradnju.
Qbs je jedinstven po tome štoe nema nikakav mehanizam za interne kompilacije, osiguravajući mogućnost stvaranja višestrukih nadogradnji iz jednog izvornog stabla, uključujući izgradnju iz pozivanja jedne naredbe i paralelno.
Ovo je ključna značajka, koja osigurava da izvorne datoteke nisu pogođene ako se izbriše direktorij za izgradnju i da se nikakvi izlazni artefakti ne zapisuju u izvorni direktorij. Za izgradnju Qbs-a, Qt je potreban kao ovisnost, iako je sam Qbs dizajniran da organizira sklapanje bilo kojeg projekta.
Skriptni jezik koji se koristi u Qbs-u prilagođen je za automatizaciju generiranja i raščlanjivanja skripti za izgradnju pomoću IDE-a. Nadalje, Qbs ne generira make datoteke i, bez posrednika poput uslužnog programa make, kontrolira izdavanje kompilatora i povezivača, optimizirajući proces izgradnje na temelju detaljnog grafikona svih ovisnosti.
Prisutnost početnih podataka o strukturi i ovisnostima u projektu omogućuje vam učinkovito paraleliziranje izvođenja operacija u nekoliko niti. Za velike projekte koji se sastoje od velikog broja datoteka i poddirektorija, izvedba ponovne izgradnje pomoću Qbs-a može biti nekoliko puta bolja od make: ponovna izgradnja je gotovo trenutna i ne gubi vrijeme programera na čekanje.
Glavne novosti QBS 2.0
Ovo novo izdanje QBS 2.0 značajno je, kao što je spomenuto na početku, zbog novi JavaScript mehanizam koji dolazi zamijeniti QtScript koji je zastario za Qt 6, jer se smatralo nerealnim nastaviti podržavati QtScript samostalno zbog složenih veza na JavaScriptCore.
Mogućnost zadržavanja QtScripta s njegovom složenom ovisnošću nije se činila osobito privlačnom. Međutim, niti jedan kandidat nije ponudio API za presretanje pristupa vlasništvu, nešto što programeri kažu da im je apsolutno potrebno zbog performansi.
S gledišta korisnika ne bi trebalo biti vidljivih promjena; posebice se čini da je izvedba otprilike ista. Međutim, QtScript je bio prilično popustljiv u prihvaćanju nedefiniranih vrijednosti u kontekstima u kojima nije morao, tako da bi nova implementacija mogla otkriti neke greške u vašim projektima.
Motor je u skladu sa specifikacijom ES2019 i značajno nadmašuje svoje postojeće kolege u performansama (XS za 35%, DukTape za više od dva puta, JerryScript za tri puta i MuJS za sedam puta). Sa stajališta razvoja skripte za izgradnju, prijelaz na novi mehanizam ne bi trebao rezultirati primjetnim promjenama.
Performanse će također ostati približno iste. Među razlikama, postoje stroži zahtjevi u novom motoru za korištenje null vrijednosti, što može otkriti probleme u postojećim projektima koji su prošli nezapaženo pri korištenju QtScripta.
Uz ovo se spominje i to uklonio qmake projektne datoteke, što je rezultiralo smanjenim radom na održavanju za programere.
Na kraju se spominje da će verzija 2.1 vidjeti ponovno pisanje koda s kojim programeri pretpostavljaju da će imati nekoliko novih značajki, kao i opća poboljšanja performansi.
Ako ste zainteresirani za više informacija o tome, možete pogledati detalje U sljedećem linku.