The OpenNET Project / Index page

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

Выпуск сборочного инструментария Qbs 1.14, развитие которого продолжило сообщество

19.10.2019 11:13

Представлен выпуск сборочного инструментария Qbs 1.14. Это первый выпуск после ухода компании Qt Company от разработки проекта, подготовленный силами сообщества, заинтересованного в продолжении разработки Qbs. Для сборки Qbs в числе зависимостей требуется Qt, хотя сам Qbs рассчитан на организацию сборки любых проектов. Qbs использует упрощённый вариант языка QML для определения сценариев сборки проекта, что позволяет определять достаточно гибкие правила сборки, в которых могут подключаться внешние модули, использоваться функции на JavaScript и создаваться произвольные правила сборки.

Используемый в Qbs язык сценариев адаптирован для автоматизации генерации и разбора сценариев сборки интегрированными средами разработки. Кроме того, Qbs не генерирует make-файлы, а сам, без посредников, таких как утилита make, контролирует запуск компиляторов и компоновщиков, оптимизируя процесс сборки на основе детального графа всех зависимостей. Наличие изначальных данных о структуре и зависимостях в проекте позволяет эффективно распараллеливать выполнение операций в несколько потоков. Для крупных проектов, состоящих из большого числа файлов и поддиректорий, производительность повторной пересборки с использованием Qbs может опережать make в разы - пересборка выполняется почти мгновенно и не заставляет разработчика тратить время на ожидание.

Напомним, что год назад компанией Qt Company было принято решение о прекращении разработки Qbs. Qbs развивался как замена qmake, но в конечном счёте было решено использовать CMake в качестве основной сборочной системы для Qt в долгосрочной перспективе. Разработка Qbs теперь продолжена в форме независимого проекта, поддерживаемого силами сообщества и заинтересованными разработчиками. Для разработки пока продолжает использоваться инфраструктура Qt Company. Поддержка Qbs 1.14.0 встроена в Qt Creator 4.10.1, а следующий выпуск Qbs 1.15 ожидается одновременно с Qt Creator 4.11.

Основные новшества Qbs 1.14:

  • Поддержка Visual Studio 2019 и clang-cl (альтернативный интерфейс командной строки Clang, совместимый на уровне опций с компилятором cl.exe из состава Visual Studio);
  • Поддержка инструментариев разработки для встраиваемых устройств IAR, KEIL и SDCC, позволяющая использовать Qbs для проектов, развиваемых для нескольких аппаратных платформ;
  • Добавлены конфигурационный файлы и сборочные скрипты для системы непрерывной интеграции Travis CI, позволяющие собирать и тестировать каждый рецензируемый в Gerrit набор патчей для Qbs;
  • Полностью переработан Docker-образ на основе Debian, который можно использовать в качестве сборочного и тестового окружения;
  • Прекращена поддержка старых версий Android NDK (‹19).


  1. Главная ссылка к новости (https://www.qt.io/blog/qbs-1.1...)
  2. OpenNews: Опубликован финальный выпуск сборочного инструментария Qbs
  3. OpenNews: Проект Qt прекращает разработку сборочной системы Qbs в пользу CMake
  4. OpenNews: Релиз системы сборки CMake 3.15
  5. OpenNews: Выпуск сборочной системы Meson 0.52
  6. OpenNews: Выпуск сборочной системы Bazel 1.0
Лицензия: CC-BY
Тип: Программы
Ключевые слова: qbs, build
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (19) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:55, 19/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    > Для сборки Qbs в числе зависимостей требуется Qt

    Обожаю сборочные системы, для сборки которых нужно собрать кучу зависимостей.

     
     
  • 2.2, Аноним (2), 12:18, 19/10/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Те кто используют qbs, обычно собирают его ровно никогда. Либо готовый отдельный бинарь под нужный хост, либо вообще в составе Qt Creator.  Сомневаюсь что кто-то использует qbs для сборки под нативным RHEL 4 каким-нибудь.
     
     
  • 3.8, Аноним (8), 13:54, 19/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    qbs от сообщества в криетор не идет там какой-то старый идет.
     
     
  • 4.10, Аноним (2), 14:10, 19/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Какой еще "от сообщества", он один вообще-то)
    В последнем апдейте QtC как раз 1.14
     
  • 3.11, Аноним (1), 14:23, 19/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Те кто используют qbs, обычно собирают его ровно никогда.

    Майнтейнеры дистрибутивов, например, собирают всё, что им нужно, без исключения.
    > Либо готовый отдельный бинарь под нужный хост

    Его статически слинкованным, что ли, дают? Или всё же не отдельный бинарь, а в комплекте с россыпью soшников?
    > либо вообще в составе Qt Creator

    Видишь ли, не все собирают хелловорлды на локалхосте. У некоторых CI есть.

     
     
  • 4.13, Аноним (2), 17:06, 19/10/2019 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Если вы маинтейнер дистрибутива, могу только посочувствовать - никаких qbs и cmake вам нахер не уперлись. Только autotools. Парадокс в том что чем человечнее система для программиста, тем уёбищнее она для маинтейнера.

    Если вы девопс инженер, вы поддерживаете сборочный хост на котором не завести актуальную версию Qt, то возникает много вопросов, какого лешего вообще выбирали QBS.
    Если это еще и необходимость сборки чего-то левого, не вами писанного - ну заигнорьте вы qbs скрипты, напишите свои cmake или что там вам удобно, не маленькая же контора.

    Если вы просто диванный аналитик опеннета, который любит ныть и не понимает, что ни один инструмент все возможные хотелки и сферы применения покрыть не в состоянии и всегда будут им недвольные - вы знаете куда идти :)

     
     
  • 5.14, Аноним (1), 18:28, 19/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Если вы маинтейнер дистрибутива
    > Если вы девопс инженер
    > Если вы просто диванный аналитик опеннета

    А если я три-в-одном, как же мне быть?

     
  • 5.17, Аноним (17), 03:34, 20/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Если вы маинтейнер дистрибутива, могу только посочувствовать - никаких qbs и cmake вам нахер не уперлись.

    Если вы маинтейнер дистрибутива, то выбор системы сборки вообще не в ваших руках

     
     
  • 6.18, Аноним (2), 06:35, 20/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я и не говорил про выбор. Я говорил о том что для маинтейнера либо можно просто страдать, либо страдать с воткнутым в анус перцем Каролина Рипер с этими нестандартными системами сборки)
     
  • 6.26, исчо_адын_гентунегуже_в_прошлом (?), 20:48, 23/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Если вы маинтейнер дистрибутива, могу только посочувствовать - никаких qbs и cmake вам нахер не уперлись.

    Если вы маинтейнер дистрибутива, то выбор системы сборки вообще не в ваших руках

    Да-да )))
    В свое время переписал кучу инопланетных шконок, с десяток "программистких" цмаке и парочку этих ваших кубеес на правильные автотулзы.
    Почему тулзы правильные и безальтернативные с точки зрения мантайнера - на опеннете все равно не поймутъ(на жабре тоже ), но дело обстоит именно так

     
  • 2.23, sena (ok), 14:25, 21/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> Для сборки Qbs в числе зависимостей требуется Qt
    > Обожаю сборочные системы, для сборки которых нужно собрать кучу зависимостей.

    Да ещё каких! Нафига системе сборки Qt???

     
     
  • 3.25, Аноним (25), 09:25, 22/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Интерпретатор QML?
    P.S. Надеюсь, со временем напишут автономный QML в необходимом для QBS объёме.
     

  • 1.15, Аноним (15), 21:25, 19/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А на винду есть?
     
     
  • 2.16, Аноним (16), 03:24, 20/10/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    А если найду?))
     
  • 2.19, Аноним (19), 08:11, 20/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Поддержка Visual Studio 2019 и clang-cl (альтернативный интерфейс командной строки Clang, совместимый на уровне опций с компилятором cl.exe из состава Visual Studio);

    нет, нету

     
     
  • 3.20, Иваныч (??), 12:47, 20/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, будем ждать
     

  • 1.21, Аноним (21), 02:07, 21/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > позволяет определять достаточно гибкие правила сборки, в которых могут подключаться внешние модули, использоваться функции на JavaScript

    Приехали... Чтобы собраться теперь еще и js нужен. Что не электрон сразу?

     
  • 1.22, Аноним (22), 14:18, 21/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чтобы запустить кастомную CLI-команду во время билда, надо сформировать JavaScript-массив с именем команды и ее аргументами, вместо обычной строки. И потом этот массив в JavaScript-функцию передатьб чтобы команда выполнилась. Наверное это True JavaScript Way, но удобство так себе.
     
     
  • 2.24, Crazy Alex (ok), 16:02, 21/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не знаю, как насчёт удобства, а проблемы с экранированием такой подход решает отлично
     

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



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

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