издание на инструментариума за сборка . Това е третото издание след напускането на компанията 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.16:
- Обеспечено сливане на списъчни свойства в модули, свързани чрез взаимни зависимости, което е важно, например, при обработка на такива флагове, като cpp.staticLibraries;
- Добавено автоматично определяне на GCC и IAR за микроконтролери Renesas;
- Добавена поддръжка за Xcode 11.4 в macOS;
- Разширени възможности на модула за поддръжка на clang-cl;
- Обеспечено автоматично определяне на MSVC, clang-cl и MinGW в профили, където изрично не е определено местоположението на инструментариума;
- Оптимизирано включване и настройка на отделно инсталираната отладъчна информация (cpp.separateDebugInformation) чрез секции Application и DynamicLibrary в параметрите на проекта;
- Добавена поддръжка за Qt 5.14 за Android и обновена утилита qbs-setup-android;
- В настройките Qt.core.generateMetaTypesFile и Qt.core.metaTypesInstallDir добавена поддръжка на JSON файлове, генерирани от утилитата moc (Qt >= 5.15);
- Добавена поддръжка на новия механизъм за деклариране на типове за QML, представен в Qt 5.15;
- Добавена конфигурация ConanfileProbe за улесняване на интеграцията на Qbs с пакетния мениджър (за C/C++).
Източник: opennet.ru
