издание на инструментариума за сборка . Това е четвъртото издание след напускането на компанията Qt Company от разработването на проекта, подготвено от общността, заинтересована в продължаването на разработката на Qbs. За компилирането на Qbs са необходими зависимостите на Qt, въпреки че самият Qbs е проектиран за организиране на компилацията на всякакви проекти. Qbs използва опростен вариант на езика QML за определяне на сценарии за компилация на проекта, което позволява определянето на достатъчно гъвкави правила за компилация, в които могат да се включват външни модули, да се използват функции на JavaScript и да се създават произволни правила за компилация.
Използваният в Qbs език за сценарии е адаптиран за автоматизация на генерирането и анализа на сценарии за компилация в интегрирани среди за разработка. Освен това, Qbs не генерира make-файлове, а сам, без посредници, като утилитата make, контролира стартиранията на компилатори и линковчици, оптимизирайки процеса на компилация на базата на подробен граф на всички зависимости. Наличието на първоначални данни за структурата и зависимостите в проекта позволява ефективно паралелно изпълнение на операции в множество потоци. За големи проекти, състоящи се от много файлове и подпапки, производителността на повторна компилация с Qbs може значително да превъзхожда make — повторната компилация се извършва почти мигновено и не накара разработчика да губи време в чакане.
Напомняме, че през 2018 година компанията Qt Company взеха решение за прекратяване на разработката на Qbs. Qbs се развиваше като заместител на qmake, но в крайна сметка беше решено да се използва CMake като основна система за компилация за Qt в дългосрочен план. Разработката на Qbs сега продължава под формата на независим проект, поддържан от общността и заинтересовани разработчици. За разработката все още се използва инфраструктурата на Qt Company.
Основни Qbs 1.17:
- Добавена е първоначална поддръжка .
- Добавен е модул capnp за използване на протокола за сериализация на данни в приложения на C++.
- възможност за посочване на променливите product и project в дясната част на определенията за свойството moduleProvider (например, «moduleProviders.mygenerator.chooseLettersFrom: project.beginning»).
- Добавена е поддръжка на инструментариуми за компилация на проекти C/C++ за работа на хардуер без ОС (bare-metal, при задаване на параметъра qbs.targetPlatform на стойност ‘none’): KEIL (ARMCLANG, C166, C251), IAR (CR16, AVR32, M68K) и
GCC (CR16, M68K, M32C, M32R, Super-H, V850, RISC-V, Xtensa). - Добавена е поддръжка на средата за разработка Xcode 12.0 за macOS.
- Проведена е почистване на модулите „Qt for Android”.
- Подобрена е поддръжката на компилацията за платформата Android. В модула Android.sdk е добавено свойство packageType за създаване на пакети „aab” (Android App Bundles) вместо „apk”, а също така свойство aaptName за използване на новия aapt2 (Android Asset Packaging Tool). Поддръжката на компилацията на Android приложения за платформи ARMv5, MIPS и MIPS64 е прекратена.
Източник: opennet.ru
