The OpenNET Project / Index page

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

Проект Qt опубликовал сборочный инструментарий qbs 1.7

31.01.2017 11:17

Состоялся релиз развиваемого проектом Qt сборочного инструментария qbs 1.7 (Qt Build Suite). Qbs использует упрощённый вариант языка QML для определения сценариев сборки проекта, что позволяет определять достаточно гибкие правила сборки, в которых могут подключаться внешние модули, использоваться функции на JavaScript и создаваться произвольные правила сборки. В отличие от qmake, qbs не привязан к Qt и изначально рассчитан на организацию сборки любых проектов.

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

В новой версии:

  • Добавлена экспериментальная поддержка генераторов (Generators API), предоставляющих средства для обеспечение глубокой интеграции со сторонними инструментариями для разработки. API позволяет создавать плагины, которые могут выполнять различные действия, осуществляемые на разных этапах процесса сборки. Например, на базе данного API подготовлены генераторы для формирования файлов с описанием проекта для Xcode и Visual Studio, что позволяет вести разработку в данных IDE, но применять qbs для сборки. Также доступен плагин для заполнения БД компиляции для Clang;
  • Элементы групп теперь могут быть вложенными, что позволяет создавать более сложные разветвлённые cтруктуры, в которых условия формируются путём логического объединения родительских и дочерних свойств;
  • Поддержка автоматической генерации qrc-файлов из файлов проекта, которая стала возможна после добавления в модуль Qt.core серии новых свойств, задающих правила добавления файлов проекта в qrc-файл;
  • Значительно расширена документация по созданию правил;
  • Ужесточена проверка типов свойств в файлах проекта Qbs;
  • В модуле C/C++ добавлена поддержка Microsoft Visual Studio 2017;
  • В модулях Qt добавлена поддержка QtScxml;
  • Реализована возможность сборки установщиков Inno Setup.


  1. Главная ссылка к новости (http://blog.qt.io/blog/2017/01...)
  2. OpenNews: Для GNOME-приложений представлена новая экспериментальная система сборки BuilDj
  3. OpenNews: Первый публичный выпуск сборочного инструментария build2
  4. OpenNews: Компания Google развивает новую открытую систему сборки Bazel
  5. OpenNews: Разработчики из компании Google открыли код системы сборки Ninja
  6. OpenNews: Twitter представил первый значительный выпуск системы сборки Pants
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/45948-qbs
Ключевые слова: qbs, qt, build
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (26) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, annon (?), 11:36, 31/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Qbs хорош, но когда они его уже отвяжут от депрекейтнутого Qt Script? походу его совсем не удаляют из Qt только из-за qbs
     
  • 1.2, Аноним (-), 12:35, 31/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    ПО нему невероятно мало инфы, хотя та что есть - в основном положительные отзывы. Есть у кого инструкция, как на нем собрать QT из сорцов?
     
     
  • 2.11, Владимир (??), 16:14, 31/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    пока к сожалению это сделать весьма проблематично, я пробовал но плюнул.
    https://bugreports.qt.io/browse/QBS-70
    тут есть какой-то wip
     
     
  • 3.23, Aleks (??), 00:10, 01/02/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Посмотри в репозитории MSYS2. Я собираю его с GCC.
     

  • 1.5, Аноним (-), 14:09, 31/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Традиционный уже вопрос. Когда разработчики сами им пользоваться начнут?
     
     
  • 2.7, Tat (ok), 14:42, 31/01/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Никогда. Его пилят в полсилу 2,5 инвалида. Судя по осеннему обсуждению Qt скорее окончательно переползёт на cmake(70% разрабов Qt высказалось за это).
     
     
  • 3.12, Владимир (??), 16:15, 31/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Вот не надо, разрабы QtC им активно пользуются.
     
     
  • 4.14, Tat (ok), 16:25, 31/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    QtC погоды не делает.
     
     
  • 5.15, Владимир (??), 17:28, 31/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    К сожалению, с этим соглашусь.
     

  • 1.6, Аноним (-), 14:26, 31/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    > Наличие изначальных данных о структуре и зависимостях в проекте позволяет эффективно распараллеливать выполнение операций в несколько потоков.

    Найдите 10 отличий от make -j N

     
     
  • 2.9, RazrFalcon (ok), 14:58, 31/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Он работает немного по другому и действительно быстрее make. А учитывая что он, в отличии от cmake/qmake(и подобных) не генерирует промежуточный makefile, то всё очень быстро.
     
     
  • 3.20, anonymous (??), 20:33, 31/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Он работает немного по другому и действительно быстрее make. А учитывая что
    > он, в отличии от cmake/qmake(и подобных) не генерирует промежуточный makefile, то
    > всё очень быстро.

    Если посмотреть, сколько в сгенерённый Makefile добавляется всякого шлака, то причина отстаивания более чем очевидна.

     

  • 1.8, Tat (ok), 14:45, 31/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Он ещё живо? А зачем, если оно самому Qt не нужно?
    Осенью было обсуждение вида "куда должен переползать Qt". Абсолютное большинство высказалось за cmake. В качестве минусов qbs назывались крайне низкая скорость разработки и то, что он за пределами Qt никому не нужен, ибо написан на Qt. А разрабам лень помимо Qt полноценно поддерживать ещё и самостоятельную систему сборки. Такие дела.
     
     
  • 2.10, anonymous (??), 14:59, 31/01/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Да, cmake и qmake нормально решают задачу. А этот инструмент кроме JSON ничем не интересен.
     
     
  • 3.13, Владимир (??), 16:16, 31/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я был раньше активным сторонником qbs за счет внятного и продуманного синтаксиса, но сейчас, к сожалению я на стороне cmake + ninja. лучше по всем показателям кроме синтаксиса)
     
     
  • 4.16, Аноним (-), 18:31, 31/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А я бы сказал что cmake своим синтаксисом перекрывает все плюсы. Тем более что в этой версии qbs появилась возможность генерировать проекты для IDE и других систем сборок — не нужно это уродство (цмейк которое) тащить в Qt, и без него хватает добра.
     
     
  • 5.19, anonymous (??), 20:30, 31/01/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Для одного Qt есть qmake, если уж на то пошло. Он простой, всегда есть из коробки и синтаксис там не ломается от версии к версии.
     
     
  • 6.25, Tat (ok), 08:15, 01/02/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    qmake - это ужасное средство, которое все причастные к Qt люди уже давно хотят забыть. Именно то, что это средство всё больше и больше превращается в набор трудноподдерживаемых костылей и поставило перед разрабами Qt вопрос миграции на новую систему сборки.

    P.S. Какой уникум добавил слово "п_о_д_е_л_и_е" в раздел "ненормативной лексики"? Просто интересно.

     
  • 5.28, Владимир (??), 18:01, 01/02/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чувак, я один из авторов этой самой генерации для студии)

    Ты видел эту генерацию проектов? Генерится только враппер над qbs. Прощай build solution. прощай incredibuild for IDE. Перегенерации проектов, как для cmake - нет.
    Ну и сам по себе qbs достаточно долго собирает, если используются globbing expressions в инкрементных билдах (с ninja такой проблемы нет).
    Для меня производительность и удобство пока имеет больший вес, нежели синтаксис cmake.
    Я вон даже статьи на хабре писал мол го на qbs)

    Единственное, в какую сторону было бы прикольно QBS прикрутить - сделать расширение для cmake, которое позволит на qml проекты описывать, но использовать генерацию от cmake. тогда все будут целы и сыты)

     
  • 2.21, Аноним (-), 22:32, 31/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >написан на Qt

    А как же это "В отличие от qmake, qbs не привязан к Qt и изначально рассчитан на организацию сборки любых проектов." прямо из новости?

     
     
  • 3.24, Tat (ok), 08:04, 01/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    В новости имелось в виду что он может собирать не только Qt и может прекрасно обходить без Qt как standalone. Сам qbs написан на Qt 5.2.
     

  • 1.17, Дуплик (ok), 18:49, 31/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Тыкал эту сборочную систему, оказалось на редкость приятной. Жаль, что она на Qt и не получит должного распространения. В конце-концов даже Qt-разработчики её похоронят и перейдут на мерзкий CMake.
     
  • 1.18, testt (ok), 19:19, 31/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >добавлена поддержка Microsoft Visual Studio 2017

    Не на то силы тратят.

     
  • 1.22, Аноним (-), 23:48, 31/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Жаль конечно, симэйк хоть и приемлем, но очень уж напрягает своими тоннами бойлерплэйта.
     
  • 1.26, nc (ok), 08:24, 01/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Под линуксом пользуюсь для проектов только встроенными в qt .pro-файлами (т.е. qmake). Для нормальных проектов вполне достаточно - ведь все что нужно это указать список файлов для компиляции, список библиотек и возможно опции сборки проекта в целом.
    Если разработчики сделают по умолчанию qbs то буду пользоваться ей.
    Всякие же make, nmake и т.п. даже смотреть не пытаюсь ибо считаю это бредом из дремучих времен.
     
     
  • 2.27, Аноним (-), 10:27, 01/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > пользуюсь для проектов только встроенными в qt .pro-файлами (т.е. qmake)
    > Всякие же make, nmake и т.п. даже смотреть не пытаюсь ибо считаю это бредом из дремучих времен.

    Не хочу тебя огорчать, но придётся — qmake сам ничего не собирает, а только лишь генерирует файлы для тех самых "всяких же из дремучих времён".

     

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



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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