Qbs je komunitou riadený, jazykom agnostický systém automatizácie zostavovania. Je rýchly a ponúka ľahko naučiteľný jazyk založený na QML.
Nedávno bolo oznámené vydanie Qbs 2.0, bezplatného a open-source multiplatformového softvéru na riadenie procesu vývoja softvéru . Bol navrhnutý na podporu rozsiahlych a komplexných projektov napísaných v rôznych programovacích jazykoch, predovšetkým C/C++.
Nová verzia 2.0 je významná svojím číslom verzie, pretože je spojená s implementáciou nového JavaScriptového backendu , ktorý nahradil QtScript, ktorý sa v Qt 6 stal zastaraným.
Pre tých, ktorí nie sú oboznámení s Qbs, používa zjednodušenú verziu jazyka QML na definovanie skriptov na zostavovanie projektov, čo umožňuje pomerne flexibilné pravidlá zostavovania, ktoré dokážu pripojiť externé moduly, používať funkcie JavaScriptu a vytvárať ľubovoľné pravidlá zostavovania.
Qbs je unikátny v tom, že nemá žiadny mechanizmus pre interné zostavovania, čo zaručuje možnosť vytvárať viacero zostavení z jedného zdrojového kódu, vrátane zostavovania z jedného volania príkazu a paralelne.
Toto je kľúčová funkcia, ktorá zabezpečuje, že zdrojové súbory zostanú nedotknuté, ak sa adresár zostavenia odstráni a že sa do zdrojového adresára nezapíšu žiadne výstupné artefakty. Qt je potrebný ako závislosť na zostavenie Qbs, hoci samotný Qbs je navrhnutý tak, aby organizoval zostavenie akéhokoľvek projektu.
Skriptovací jazyk používaný v Qbs je prispôsobený na automatizáciu generovania a analýzy zostavovacích skriptov pomocou IDE. Okrem toho, Qbs negeneruje makefile a bez sprostredkovateľov, ako je nástroj make, riadi uvoľňovanie kompilátorov a linkerov, pričom optimalizuje proces zostavovania na základe podrobného grafu všetkých závislostí.
Prítomnosť počiatočných údajov o štruktúre a závislostiach v projekte umožňuje efektívne paralelizovať vykonávanie operácií vo viacerých vláknach. Pri veľkých projektoch pozostávajúcich z veľkého počtu súborov a podadresárov môže byť výkon prestavieb pomocou Qbs niekoľkonásobne lepší ako make: prestavba je takmer okamžitá a nestráca čas vývojárov čakaním.
Hlavné novinky QBS 2.0
Táto nová verzia QBS 2.0 je pozoruhodná, ako už bolo spomenuté na začiatku, kvôli novému JavaScriptovému enginu, ktorý nahrádza QtScript, ktorý sa stal pre Qt 6 zastaraným, pretože sa považovalo za nereálne pokračovať v údržbe samotného QtScript kvôli zložitým väzbám na JavaScriptCore.
Vyhliadka na zachovanie QtScriptu s jeho komplexnou závislosťou sa nezdala byť obzvlášť príťažlivá. Ani jeden z kandidátov však neponúkol API na zachytenie prístupov k nehnuteľnostiam, čo vývojári tvrdia, že ich absolútne potrebujú z dôvodov výkonu.
Z užívateľského hľadiska by nemalo dôjsť k žiadnym citeľným zmenám; najmä výkon sa zdá byť približne rovnaký. QtScript bol však dosť zhovievavý pri akceptovaní nedefinovaných hodnôt v kontextoch, kde to nebolo potrebné, takže nová implementácia môže odhaliť niektoré chyby vo vašich projektoch.
Engine je kompatibilný so špecifikáciou ES2019 a výrazne prekonáva svoje existujúce náprotivky (XS o 35 %, DukTape viac ako dvojnásobok, JerryScript trojnásobok a MuJS sedemnásobok). Z hľadiska vývoja skriptov by prechod na nový engine nemal viesť k žiadnym badateľným zmenám.
Výkon zostane takmer rovnaký. Medzi rozdielmi sú prísnejšie požiadavky na používanie hodnôt null, čo môže odhaliť problémy v existujúcich projektoch, ktoré zostali pri používaní QtScript nepovšimnuté.
Okrem toho sa uvádza aj odstránenie súborov projektu qmake, čo malo za následok zníženie údržbárskej práce pre vývojárov.
Nakoniec sa spomína, že verzia 2.1 sa dočká prepísania kódu, pri ktorom vývojári predpokladajú, že bude mať niekoľko nových funkcií, ako aj všeobecné vylepšenia výkonu.
Ak máte záujem dozvedieť sa viac, podrobnosti nájdete na nasledujúcom odkaze.