Bemutatásra került a Qbs 2.0 összeszerelési eszközkészlete. A Qbs összeszereléséhez szükséges a Qt, bár a Qbs célja a különböző projektek összeszerelésének támogatása. A Qbs egy egyszerűsített változatát használja a QML nyelvnek a projektek összeszerelési forgatókönyveinek meghatározására, ami lehetővé teszi, hogy elég rugalmas összeszerelési szabályokat határozzunk meg, amelyek külső modulokat, JavaScript funkciókat használhatnak és önálló összeszerelési szabályokat hozhatnak létre.
A Qbs-ben használt szkriptnyelv alkalmazkodik a fejlesztői környezetekben végzett összeszerelési szkriptek automatikus generálásához és elemzéséhez. Továbbá, a Qbs nem generál make-fájlokat, hanem közvetlenül, közvetítők, például a make eszköz nélkül kontrollálja a fordítók és linker-ek indítását, optimalizálva az összeszerelési folyamatot az összes függőség részletes gráfjának alapján. Az eredeti adatok rendelkezésre állása a projekt struktúrájáról és függőségeiről lehetővé teszi a műveletek párhuzamos végrehajtását több szálban. Nagy projektek esetén, amelyek nagy számú fájlból és alkönyvtárból állnak, a Qbs-szel végzett újraelkészítés teljesítménye sokszorosan felülmúlja a make-t – az újraelkészítés szinte azonnal végbemegy, és nem késlelteti a fejlesztőt.
Emlékeztetőül, hogy 2018-ban a Qt Company úgy döntött, hogy leállítja a Qbs fejlesztését. A Qbs a qmake alternatívájaként fejlődött, de végül úgy döntöttek, hogy a CMake-t használják a Qt alapértelmezett összeszerelő rendszereként hosszú távon. A Qbs fejlesztése most egy független projekteként folytatódik, amelyet a közösség és az érdeklődő fejlesztők támogatnak. A fejlesztéshez továbbra is a Qt Company infrastruktúráját használják.
A verziószám jelentős változása egy új JavaScript háttér megvalósításával függ össze, amely a QtScript-ot váltotta fel, amelyet a Qt 6-ban elavultnak nyilvánítottak. A QtScript követése saját erőforrásokkal a JavaScriptCore összetett kötődései miatt irreálisnak bizonyult, ezért az új háttér alapjául egy önálló és kompakt JavaScript motor, a QuickJS szolgál, amelyet Fabrice Bellard hozott létre, aki egyúttal a QEMU és az FFmpeg projektek alapítója is. A motor támogatja az ES2019 specifikációt, és teljesítménye lényegesen meghaladja a meglévő alternatívákat (35%-kal a XS, kétszeresen a DukTape, háromszorosan a JerryScript, és hétszeresen a MuJS-hoz képest).
A fejlesztési forgatókönyvek szempontjából az új motorra való áttérés nem kell, hogy jelentős változásokat hozzon. A teljesítmény nagyjából ugyanolyan szinten marad. Az új motor szigorúbb követelményeket támaszt a nem definiált értékek használatával kapcsolatban, ami problémákat tárhat fel olyan meglévő projektekben, amelyek a QtScript használata mellett észrevétlenek maradtak.
Forrás: opennet.ru
