vydání nástroje pro sestavení . Toto je čtvrté vydání po odchodu společnosti Qt Company od vývoje projektu, připravené komunitou, která má zájem na pokračování vývoje Qbs. K sestavení Qbs je třeba mít Qt jako závislost, i když Qbs sám je navržen pro organizaci sestavení jakýchkoli projektů. Qbs používá zjednodušenou variantu jazyka QML pro definici scénářů sestavení projektu, což umožňuje definovat dostatečně flexibilní pravidla sestavení, ve kterých mohou být připojeny externí moduly, používány funkce v JavaScriptu a vytvářena libovolná pravidla sestavení.
Jazyk skriptování použitý v Qbs je přizpůsoben pro automatizaci generování a analýzy scénářů sestavení integrovanými vývojovými prostředími. Navíc Qbs nevytváří make-soubory, ale sám, bez prostředníků, jako je nástroj make, řídí spuštění kompilátorů a linkerů, optimalizuje proces sestavení na základě detailního grafu všech závislostí. Disponování počátečními daty o struktuře a závislostech v projektu umožňuje efektivně paralelizovat provádění operací na více vláknech. Pro velké projekty složené z mnoha souborů a podsložek může výkon opakované sestavení pomocí Qbs mnohonásobně překonat make — opětovná sestavení probíhají téměř okamžitě a nezdržují vývojáře čekáním.
P připomínáme, že v roce 2018 rozhodla společnost Qt Company o ukončení vývoje Qbs. Qbs se vyvíjel jako náhrada za qmake, ale nakonec bylo rozhodnuto používat CMake jako hlavní systém sestavení pro Qt v dlouhodobém horizontu. Vývoj Qbs nyní pokračuje jako nezávislý projekt, podporovaný komunitou a zainteresovanými vývojáři. Pro vývoj se zatím nadále používá infrastruktura společnosti Qt.
Hlavní Qbs 1.17:
- Byla přidána základní podpora .
- Byl přidán modul capnp pro použití protokolu serializace dat v aplikacích v C++.
- možnost specifikovat proměnné product a project na pravé straně definic vlastnosti moduleProvider (například „moduleProviders.mygenerator.chooseLettersFrom: project.beginning“).
- Byla přidána podpora nástrojů pro sestavování projektů C/C++ pro práci na hardwaru bez OS (bare-metal, s nastavením parametru qbs.targetPlatform na hodnotu ‘none’): KEIL (ARMCLANG, C166, C251), IAR (CR16, AVR32, M68K) a
GCC (CR16, M68K, M32C, M32R, Super-H, V850, RISC-V, Xtensa). - Byla přidána podpora vývojového prostředí Xcode 12.0 pro macOS.
- Bylo prováděno čištění modulů „Qt for Android“.
- Byla vylepšena podpora sestavení pro platformu Android. Do modulu Android.sdk bylo přidáno vlastnost packageType pro vytváření balíčků „aab“ (Android App Bundles) místo „apk“, a také vlastnost aaptName pro použití nového aapt2 (Android Asset Packaging Tool). Podpora sestavení Android aplikací pro platformy ARMv5, MIPS a MIPS64 byla ukončena.
Zdroj: opennet.ru
