The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск сборочного инструментария Qbs 1.20

14.10.2021 09:15

Представлен выпуск сборочного инструментария 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).


  1. Главная ссылка к новости (https://www.qt.io/blog/qbs-1.2...)
  2. OpenNews: Релиз систем сборки CMake 3.21 и Meson 0.59
  3. OpenNews: Релиз goredo 1.0.0, реализации системы сборки redo, предложенной DJB
  4. OpenNews: Сотрудник Red Hat представил сборочную систему Goals. Выпуск GNU Make 4.3
  5. OpenNews: Выпуск сборочной системы Bazel 2.0
  6. OpenNews: Выпуск сборочного инструментария Qbs 1.19
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/55965-qbs
Ключевые слова: qbs, build
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (20) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 09:21, 14/10/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –2 +/
     

     ....ответы скрыты (5)

  • 1.5, QwertyReg (ok), 10:20, 14/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –16 +/
    Правильно, нужно распылять силы сообщества на поддержку устаревшего легаси. Сначала Xorg, потом Devuan, теперь протухший QBS будем накрашивать и одевать в костюмчик, как будто бы он живой.
     
     
  • 2.6, sweetlao (?), 11:32, 14/10/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Уж лучше легаси, чем экспериментальные корпоративные игрушки, на которые у них денег жалко- хотят чтоб бесплатно сделали, вот и нанимают всяких Лёнек, да Дрюшек по объявлению за мелкий прайс.
     
     
  • 3.7, Qwerty123456 (?), 11:44, 14/10/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Да пользуйте свои автотулзы до посинения. Кто ж вам запретит?
     
  • 2.8, Аноним (8), 13:45, 14/10/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    ты последний, кого сообщество будет спрашивать, как ему управлять своими силами
     
  • 2.14, Аноним (14), 17:26, 14/10/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А то ты создал что-то новое и офигенно удобное.
     
  • 2.18, Anonymous XE (?), 18:14, 14/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А как ты себе представляешь управлять силами сообщества? В приказном порядке что-ли?
     
  • 2.22, Аноним (22), 18:43, 15/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > теперь протухший QBS будем накрашивать и одевать в костюмчик, как будто бы он живой.

    Э... Тролинг?

    Лучше QBS еще никто ничего не сделал.

    У QBS была одна проблема.

    Для того, что бы его собрать - нужен Qt.

    А Qt-никам нужна система сборки для сборки самого Qt.

    Циклическая зависимость получилась. Ошибка менеджеров на этапе постановки задачи.

     
     
  • 3.23, Аноним (23), 02:19, 18/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > У QBS была одна проблема. Для того, что бы его собрать - нужен Qt.

    Ещё в Qbs крайне неудобно выполнять свои команды. Надо создать массив на яваскрипте, засунуть в этот массив имя команды и все её аргументы как отдельные элементы массива, и передать массив в специальную функцию. В то время как в Make и CMake можно писать команду и её аргументы в строчку через пробелы, как в шелле.

    > Циклическая зависимость

    Это как раз не проблема. Для сборки компилятора С тоже нужен компилятор С. Для сборки линкера нужен линкер. Для сборки GNU Make и CMake тоже они сами нужны.

     
     
  • 4.24, Аноним (22), 13:06, 18/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > В то время как в Make и CMake можно писать команду и её аргументы в строчку через пробелы, как в шелле.

    За это получаешь возможность контроля выполнения задачи.

    > Это как раз не проблема. Для сборки компилятора С тоже нужен компилятор С. Для сборки линкера нужен линкер. Для сборки GNU Make и CMake тоже они сами нужны.

    Как бы Qt'ники как раз и сказали, что это основная проблема.

    C, make и cmake являются самыми распространеными инструментами. Так что требовать их наличие - нормально.

    Qt-ники играют вдолгую. Как пример, через пару десятков лет скорее всего C, make и cmake будут. И с очень высокой долей вероятности совместимость особо поломана не будет. А вот бинарник qbs, скорее всего не запустится.

     

  • 1.17, Anonymous XE (?), 18:12, 14/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Обновлён и портирован на C++17 модуль QtScript, который больше не поставляется в Qt 6 и теперь входит в состав Qbs.

    Т.е., есть надежда, что в последующем они всё, что нужно для Qbs, реализуют у себя и не будут зависеть от Qt.

     
     
  • 2.19, Аноним (14), 19:42, 14/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Более того, был такой план.
     
     
  • 3.20, Аноним (20), 21:49, 14/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    такого плана не было, если не считать первоапрельского ишью, в котором еще и на хаскель предлагали переписать.
     
  • 2.21, Enamel (ok), 00:02, 15/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что плохого в зависимости от Qt?
    Не хуже, чем зависеть от STL.
     
     
  • 3.25, adolfus (ok), 23:17, 22/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    STL -- это часть стандарта языка С++, а Qt -- непонятное што. Сегодня так, а завтра эдак.
    Иди собери 10-летней давности проект, который использует Qt-классы. А с STL нет никаких проблем -- я использую без каких-либо коррекций код, написанный в конце 90-х под C++98. Раз в пару лет пересобираю довольно большой проект и еще ни разу не наткнулся на проблемы именно с STL. А с Qt-классами проблемы возникают с каждой новой версией и всякий раз нужно конкретно разбираться, корректировать код, программную документацию, испытания и прочая волокита.
    Что касается gui, то тут просто техническая задница -- проект, изначально написанный с qt3, с грехом пополам удалось отмигрировать на qt4, но на qt5 уже не получилось, поскольку нужно было сохранить функционал и пользовательский интерфейс, включая отзывчивость на консольные события, неизменными. Добиться UI-совместимости не удалось даже в малом. В итоге были вынуждены переписать междумордие на Tcl/Tk.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру