Используемый в 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);
- Добавлена поддержка представленного в Qt 5.15 нового механизма декларирования типов для QML;
- Добавлена настройка ConanfileProbe для упрощения интеграции Qbs с пакетным менеджером Conan (для C/C++).
Источник: http://www.opennet.ru/opennews/art.shtml?num=52863