Vydání nástroje Qbs 2.0 Build Tool

Bylo oznámeno vydání sady nástrojů pro sestavení Qbs 2.0. K sestavení Qbs je mezi závislostmi vyžadováno Qt, ačkoli samotný Qbs je navržen tak, aby organizoval sestavení jakýchkoli projektů. Qbs používá k definování skriptů sestavení projektu zjednodušenou verzi jazyka QML, což umožňuje definovat poměrně flexibilní pravidla sestavování, která mohou připojit externí moduly, používat funkce JavaScriptu a vytvářet vlastní pravidla sestavování.

Skriptovací jazyk používaný v Qbs je přizpůsoben k automatizaci generování a analýzy sestavení skriptů integrovanými vývojovými prostředími. Qbs navíc negeneruje makefile, ale sám bez prostředníků, jako je utilita make, řídí spouštění kompilátorů a linkerů, optimalizuje proces sestavení na základě podrobného grafu všech závislostí. Přítomnost počátečních dat o struktuře a závislostech v projektu umožňuje efektivně paralelizovat provádění operací v několika vláknech. U velkých projektů sestávajících z velkého množství souborů a podadresářů může být výkon přestavby pomocí Qbs několikanásobně rychlejší než make - přestavba je provedena téměř okamžitě a nenutí vývojáře ztrácet čas čekáním.

Připomeňme, že v roce 2018 se společnost Qt rozhodla ukončit vývoj Qbs. Qbs byl vyvinut jako náhrada za qmake, ale nakonec bylo rozhodnuto použít CMake jako hlavní sestavovací systém pro Qt z dlouhodobého hlediska. Vývoj Qbs nyní pokračuje jako nezávislý projekt podporovaný komunitou a zainteresovanými vývojáři. Infrastruktura společnosti Qt je nadále využívána pro vývoj.

Významná změna v čísle verze je spojena s implementací nového JavaScriptového backendu, který nahradil QtScript, který byl prohlášen za zastaralý v Qt 6. Bylo považováno za nereálné nadále udržovat QtScript vlastními silami kvůli složité vazbě na JavaScriptCore, takže soběstačný a kompaktní byl vybrán jako základ pro nový backend. JavaScriptový engine QuickJS vytvořil Fabrice Bellard, který založil projekty QEMU a FFmpeg. Motor podporuje specifikaci ES2019 a je výrazně lepší ve výkonu než stávající analogy (XS o 35 %, DukTape více než dvakrát, JerryScript třikrát a MuJS sedmkrát).

Z hlediska vývoje montážních skriptů by přechod na nový engine neměl vést k znatelným změnám. Produktivita také zůstane přibližně na stejné úrovni. Mezi rozdíly jsou v novém enginu přísnější požadavky na použití null, což může odhalit problémy ve stávajících projektech, které zůstaly při používání QtScriptu nepovšimnuty.

Zdroj: opennet.ru

Přidat komentář