Byla zveřejněna konečná verze nástrojů pro sestavení Qbs

Společnost Qt publikováno montážní nářadí Qbs 1.13 (Qt Build Suite). Toto je nejnovější vydání Qbs vyrobené společností Qt Company. Připomeňme si, co se stalo dříve přijato rozhodnutí zastavit 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 blízké budoucnosti se očekává vytvoření nezávislého projektu pro pokračování vývoje Qbs komunitou, jehož osud bude záviset na zájmu o daný montážní systém ze strany nezávislých vývojářů. Společnost Qt přestává na Qbs pracovat z důvodu potřeby dalších investic a vysokých nákladů na propagaci Qbs.

Připomeňme, že pro sestavení Qbs je Qt vyžadováno jako závislost, ačkoli Qbs je sám o sobě 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í.
Qbs negeneruje makefile a nezávisle ří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.

Klíčové inovace v Qbs 1.13:

  • Přidána možnost používat moduly pkg-config v projektech využívajících stejný mechanismus zpracování závislostí, jaký se používá pro moduly Qbs. Pokud má váš systém například balíček pro vytváření OpenSSL založený na pkg-config, pro jeho použití v projektu Qbs stačí přidat 'Depends { name: "openssl" }';
  • Implementována automatická detekce dostupných Qt modulů. Vývojáři již nemusí vytvářet profil s cestami k modulům pomocí příkazu setup-qt, všechny moduly Qt uvedené v závislostech budou nakonfigurovány automaticky;
  • Přidány nástroje pro kontrolu počtu paralelně probíhajících montážních úloh na úrovni jednotlivých příkazů. Například propojení vytváří velké I/O zatížení a spotřebovává značné množství paměti RAM, takže linker vyžaduje jiné nastavení spouštění než kompilátor. Samostatná nastavení lze nyní nastavit pomocí příkazu „qbs —job-limits linker:2,compiler:8“;
  • Změny byly provedeny ve skriptovacím jazyce. Pravidla lze nyní definovat bez zadání stub souboru pro výstup a není nutné používat direktivu „import qbs“ na začátku souborů projektu. Do prvků Application, DynamicLibrary a StaticLibrary byly přidány nové vlastnosti install a installDir pro pohodlnější instalaci spustitelných souborů;
  • Přidána podpora pro rekurzivní skenování linkerových skriptů
    GNU linker;

  • Pro C++ byla implementována vlastnost cpp.linkerVariant, která vynutí použití linkerů ld.gold, ld.bfd nebo lld;
  • Qt zavádí vlastnost Qt.core.enableBigResources pro vytváření velkých zdrojů Qt
  • Místo zastaralého prvku AndroidApk se navrhuje použít obecný typ aplikace;
  • Přidán modul pro vytváření testů založených na autotestu;
  • Přidán modul texttemplate se schopnostmi podobnými QMAKE_SUBSTITUTES v qmake;
  • Přidána počáteční podpora formátu Protocol Buffers pro C++ a Objective-C.

Zdroj: opennet.ru

Přidat komentář