Представен е новият релиз на сборочния инструментариум Qbs 1.20. Това е седмият релиз след напускането на компанията 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.20:
- Изпълнена е пълна поддръжка на фреймуърка Qt 6, включително версия Qt 6.2.
- Обновен и портирован на C++17 модул QtScript, който вече не се предлага с Qt 6 и сега е част от Qbs.
- При компилация с различен набор от свойства, се осигурява извеждане на списък с остарели свойства.
- В qbs-config е добавена команда за добавяне на целия профил, което позволява да се мине без отделно добавяне на свойства и значително ускорява стартирането при наличие на няколко Android SDK.
- Проблемът с неправилната обработка на времето за обновление на файловете в платформата FreeBSD е разрешен.
- Подобрена е поддръжката на C/C++. Добавена е поддръжка на компилатори COSMIC (COLDFIRE/M68K, HCS08, HCS12, STM8 и STM32) и инструменти на Digital Mars. За компилатора MSVC е реализирано свойството cpp.enableCxxLanguageMacro и е добавена поддръжка на стойността «c++20» в cpp.cxxLanguageVersion.
- За платформата Android е реализирана поддръжка за използване на dex компилатора d8 вместо dx чрез задаване на свойството Android.sdk.dexCompilerName. Поддръжката на Ministro, програмата за осигуряване на работата на Qt библиотеките в системата Android, е прекратена. Инструментарият за създаване на пакети е обновен от aapt до aapt2 (Android Asset Packaging Tool).
Източник: opennet.ru
