Опубликован финальный выпуск сборочного инструментария Qbs
18 апреля 2019 года
Компания Qt Company опубликовала сборочный инструментарий Qbs 1.13 (Qt Build Suite). Это последний выпуск Qbs, формируемый компанией Qt Company. Напомним, что ранее было принято решение о прекращении разработки Qbs. Qbs развивался как замена qmake, но в конечном счёте было решено использовать CMake в качестве основной сборочной системы для Qt в долгосрочной перспективе.
В ближайшее время ожидается создание независимого проекта по продолжению разработки Qbs силами сообщества, судьба которого будет зависеть от интереса к рассматриваемой системе сборки со стороны независимых разработчиков. Qt Company прекращает работу над Qbs из-за необходимости дополнительных инвестиций и больших затрат на продвижение Qbs.
Напомним, что для сборки Qbs в качестве зависимости требуется Qt, хотя сам Qbs рассчитан на организацию сборки любых проектов. Qbs использует упрощённый вариант языка QML для определения сценариев сборки проекта, что позволяет определять достаточно гибкие правила сборки, в которых могут подключаться внешние модули, использоваться функции на JavaScript и создаваться произвольные правила сборки. Qbs не генерирует make-файлы и самостоятельно контролирует запуск компиляторов и компоновщиков, оптимизируя процесс сборки на основе детального графа всех зависимостей. Наличие изначальных данных о структуре и зависимостях в проекте позволяет эффективно распараллеливать выполнение операций в несколько потоков.
Основные новшества Qbs 1.13:
- Добавлена возможность использования в проектах модулей pkg-config с применением того же механизма обработки зависимостей, что применяется для модулей Qbs. Например, при наличии в системе пакета для сборки OpenSSL на базе pkg-config для его использоваия в проекте Qbs достаточно добавить 'Depends { name: "openssl" }';
- Реализовано автоматическое определение доступных модулей Qt. Разработчикам больше не нужно создавать профиль с путями к модулям при помощи команды setup-qt, все указанные в зависимостях модули Qt будут настроены автоматически;
- Добавлены средства для контроля за числом параллельно запускаемых сборочных задач на уровне отдельных команд. Например, при выполнении связывания создаётся большая нагрузка на ввод/выводи и потребляется значительный объём ОЗУ, поэтому компоновщик требует иных настроек запуска, отличных от компилятора. Раздельные настройки теперь можно задать при помощи команды "qbs --job-limits linker:2,compiler:8";
- Внесены изменения в язык сценариев. Правила теперь могут определяться без указания файла-заглушки для вывода, а в начале файлов проектов не обязательно использовать директиву "import qbs". В элементы Application, DynamicLibrary и StaticLibrary добавлены новые свойства install и installDir для более удобной установки исполняемых файлов;
- Добавлена поддержка рекурсивного сканирования скриптов компоновщика
GNU linker;
- Для языка C++ реализовано свойство cpp.linkerVariant для принудительного использования компоновщиков ld.gold, ld.bfd или lld;
- Для Qt представлено свойство Qt.core.enableBigResources для создания крупных ресурсов Qt
- Вместо устаревшего элемента AndroidApk предложено использовать общий тип Application;
- Добавлен модуль для создания тестов на базе autotest;
- Добавлен модуль texttemplate с возможностями, похожими на QMAKE_SUBSTITUTES в qmake;
- Добавлена начальная поддержка формата Protocol Buffers для C++ и Objective-C.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.