Bol predstavený nový nástroj na zostavovanie Qbs 2.0. Na zostavenie Qbs sú potrebné závislosti ako Qt, hoci Qbs je určený na organizovanie zostavovania akýchkoľvek projektov. Qbs používa zjednodušenú verziu jazyka QML na definovanie skriptov na zostavovanie projektu, čo umožňuje definovať dostatočne flexibilné pravidlá zostavovania, pri ktorých sa môžu pripojiť externé moduly, používať funkcie v JavaScript a vytvárať vlastné pravidlá zostavovania.
Jazyk skriptovania používaný v Qbs je prispôsobený na automatizáciu generovania a analýzy skriptov zostavenia integrovanými vývojovými prostrediami. Navyše Qbs nevytvára make-súbory, ale sám, bez prostredníkov, ako je nástroj make, kontroluje spustenie kompilátorov a linkerov, optimalizujúc proces zostavenia na základe podrobného grafu všetkých závislostí. Prítomnosť pôvodných údajov o štruktúre a závislostiach v projekte umožňuje efektívne paralelizovať vykonávanie operácií v niekoľkých vláknach. Pre veľké projekty, pozostávajúce z veľkého počtu súborov a podsúborov, výkon opakovanej zostavy pomocou Qbs môže niekoľkonásobne prekonať make - opätovné zostavenie sa vykonáva takmer okamžite a nenúti vývojára strácať čas čakaním.
Pripomíname, že v roku 2018 spoločnosť Qt Company rozhodla o ukončení vývoja Qbs. Qbs sa vyvíjal ako náhrada za qmake, ale napokon bolo rozhodnuté použiť CMake ako hlavnú zostavovaciu systém pre Qt v dlhodobom horizonte. Vývoj Qbs teraz pokračuje v podobe nezávislého projektu podporovaného komunitou a zainteresovanými vývojármi. Pre vývoj sa naďalej používa infraštruktúra Qt Company.
Významná zmena čísla verzie súvisí s implementáciou nového bázového prostredia JavaScript, ktoré nahradilo QtScript, ktorý bol vyhlásený za zastaraný v Qt 6. Pokračovať v podpore QtScript vlastnými silami vzhľadom na komplikované väzby na JavaScriptCore sa ukázalo ako nerealistické, preto bola ako základ pre nové bázové prostredie zvolená samostatná a kompaktná JavaScriptová platforma QuickJS, ktorú vytvoril Fabrice Bellard, zakladateľ projektov QEMU a FFmpeg. Tento engine podporuje špecifikáciu ES2019 a jeho výkon výrazne prevyšuje existujúce alternatívy (XS o 35%, DukTape viac ako dvakrát, JerryScript trikrát a MuJS sedemkrát).
Z hľadiska vývoja skriptov na zostavovanie by prechod na nový engine nemal spôsobiť viditeľné zmeny. Výkon by mal zostať približne na tej istej úrovni. Medzi rozdielmi sú prísnejšie požiadavky na používanie nedefinovaných hodnôt, čo môže odhaliť problémy v existujúcich projektoch, ktoré zostali nepovšimnuté pri používaní QtScript.
Zdroj: opennet.ru
