Bolo zverejnené konečné vydanie nástrojov na zostavovanie Qbs

Spoločnosť Qt опубликовала montážne náradie Qbs 1.13 (Qt Build Suite). Toto je najnovšia verzia Qbs od spoločnosti Qt Company. Pripomeňme si, čo sa stalo predtým obdržané rozhodnutie zastaviť vývoj Qbs. Qbs bol vyvinutý ako náhrada za qmake, ale nakoniec sa rozhodlo použiť CMake ako hlavný zostavovací systém pre Qt z dlhodobého hľadiska.

V blízkej budúcnosti sa očakáva vytvorenie nezávislého projektu na pokračovanie vývoja Qbs komunitou, ktorého osud bude závisieť od záujmu nezávislých vývojárov o predmetný montážny systém. Spoločnosť Qt prestáva pracovať na Qbs z dôvodu potreby dodatočných investícií a vysokých nákladov na propagáciu Qbs.

Pripomeňme si, že na zostavenie Qbs sa vyžaduje Qt ako závislosť, hoci samotné Qbs je určené na organizáciu montáže akýchkoľvek projektov. Qbs používa na definovanie skriptov zostavovania projektu zjednodušenú verziu jazyka QML, čo vám umožňuje definovať pomerne flexibilné pravidlá zostavovania, ktoré môžu spájať externé moduly, používať funkcie JavaScriptu a vytvárať vlastné pravidlá zostavovania.
Qbs negeneruje makefile a nezávisle riadi spúšťanie 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 vám umožňuje efektívne paralelizovať vykonávanie operácií vo viacerých vláknach.

Kľúčové inovácie v Qbs 1.13:

  • Pridaná možnosť používať moduly pkg-config v projektoch využívajúcich rovnaký mechanizmus spracovania závislostí, aký sa používa pre moduly Qbs. Napríklad, ak váš systém obsahuje balík na zostavenie OpenSSL založený na pkg-config, ak ho chcete použiť v projekte Qbs, stačí pridať 'Depends { name: "openssl" }';
  • Implementovaná automatická detekcia dostupných Qt modulov. Vývojári už nemusia vytvárať profil s cestami k modulom pomocou príkazu setup-qt, všetky moduly Qt špecifikované v závislostiach sa nakonfigurujú automaticky;
  • Pridané nástroje na kontrolu počtu paralelne prebiehajúcich montážnych úloh na úrovni jednotlivých príkazov. Napríklad prepojenie vytvára veľké vstupno-výstupné zaťaženie a spotrebuje značné množstvo pamäte RAM, takže linker vyžaduje iné nastavenia spustenia ako kompilátor. Samostatné nastavenia je teraz možné nastaviť pomocou príkazu „qbs —job-limits linker:2,compiler:8“;
  • Zmeny boli vykonané v skriptovacom jazyku. Pravidlá je teraz možné definovať bez špecifikovania stub súboru pre výstup a nie je potrebné používať direktívu „import qbs“ na začiatku projektových súborov. Do prvkov Application, DynamicLibrary a StaticLibrary boli pridané nové vlastnosti install a installDir pre pohodlnejšiu inštaláciu spustiteľných súborov;
  • Pridaná podpora pre rekurzívne skenovanie linkerových skriptov
    GNU linker;

  • Pre C++ bola implementovaná vlastnosť cpp.linkerVariant na vynútenie použitia linkerov ld.gold, ld.bfd alebo lld;
  • Qt predstavuje vlastnosť Qt.core.enableBigResources na vytváranie veľkých zdrojov Qt
  • Namiesto zastaraného prvku AndroidApk sa navrhuje použiť generický typ aplikácie;
  • Pridaný modul na vytváranie testov založených na autoteste;
  • Pridaný modul texttemplate s funkciami podobnými QMAKE_SUBSTITUTES v qmake;
  • Pridaná počiatočná podpora pre formát Protocol Buffers pre C++ a Objective-C.

Zdroj: opennet.ru

Pridať komentár