Используемый в Qbs язык сценариев адаптирован для автоматизации генерации и разбора сценариев сборки интегрированными средами разработки. Кроме того, Qbs не генерирует make-файлы, а сам, без посредников, таких как утилита make, контролирует запуск компиляторов и компоновщиков, оптимизируя процесс сборки на основе детального графа всех зависимостей. Наличие изначальных данных о структуре и зависимостях в проекте позволяет эффективно распараллеливать выполнение операций в несколько потоков. Для крупных проектов, состоящих из большого числа файлов и поддиректорий, производительность повторной пересборки с использованием Qbs может опережать make в разы — пересборка выполняется почти мгновенно и не заставляет разработчика тратить время на ожидание.
Напомним, что в 2018 году компанией Qt Company было принято решение о прекращении разработки Qbs. Qbs развивался как замена qmake, но в конечном счёте было решено использовать CMake в качестве основной сборочной системы для Qt в долгосрочной перспективе. Разработка Qbs теперь продолжена в форме независимого проекта, поддерживаемого силами сообщества и заинтересованными разработчиками. Для разработки пока продолжает использоваться инфраструктура Qt Company.
Основные новшества Qbs 1.17:
- Добавлена начальная поддержка Qt 6.
- Добавлен модуль capnp для использования протокола сериализации данных Cap’n Proto в приложениях на 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.
Источник: http://www.opennet.ru/opennews/art.shtml?num=53709