издание на инструментариума за сглобяване . Това е четвъртото издание след напускането на компанията 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
