Společnost Qt
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