URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 110302
[ Назад ]

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

Отправлено opennews , 31-Янв-17 11:36 
Состоялся (http://blog.qt.io/blog/2017/01/31/qbs-1-7-released/) релиз развиваемого проектом Qt сборочного инструментария qbs 1.7 (http://qt-project.org/wiki/qbs) (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.

URL: http://blog.qt.io/blog/2017/01/31/qbs-1-7-released/
Новость: http://www.opennet.ru/opennews/art.shtml?num=45948


Содержание

Сообщения в этом обсуждении
"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено annon , 31-Янв-17 11:36 
Qbs хорош, но когда они его уже отвяжут от депрекейтнутого Qt Script? походу его совсем не удаляют из Qt только из-за qbs

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Аноним , 31-Янв-17 12:35 
ПО нему невероятно мало инфы, хотя та что есть - в основном положительные отзывы. Есть у кого инструкция, как на нем собрать QT из сорцов?

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Владимир , 31-Янв-17 16:14 
пока к сожалению это сделать весьма проблематично, я пробовал но плюнул.
https://bugreports.qt.io/browse/QBS-70
тут есть какой-то wip

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Aleks , 01-Фев-17 00:10 
Посмотри в репозитории MSYS2. Я собираю его с GCC.

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Аноним , 31-Янв-17 14:09 
Традиционный уже вопрос. Когда разработчики сами им пользоваться начнут?

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Tat , 31-Янв-17 14:42 
Никогда. Его пилят в полсилу 2,5 инвалида. Судя по осеннему обсуждению Qt скорее окончательно переползёт на cmake(70% разрабов Qt высказалось за это).

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Владимир , 31-Янв-17 16:15 
Вот не надо, разрабы QtC им активно пользуются.

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Tat , 31-Янв-17 16:25 
QtC погоды не делает.

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Владимир , 31-Янв-17 17:28 
К сожалению, с этим соглашусь.

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Аноним , 31-Янв-17 14:26 
> Наличие изначальных данных о структуре и зависимостях в проекте позволяет эффективно распараллеливать выполнение операций в несколько потоков.

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


"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено RazrFalcon , 31-Янв-17 14:58 
Он работает немного по другому и действительно быстрее make. А учитывая что он, в отличии от cmake/qmake(и подобных) не генерирует промежуточный makefile, то всё очень быстро.

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено anonymous , 31-Янв-17 20:33 
> Он работает немного по другому и действительно быстрее make. А учитывая что
> он, в отличии от cmake/qmake(и подобных) не генерирует промежуточный makefile, то
> всё очень быстро.

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


"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Tat , 31-Янв-17 14:45 
Он ещё живо? А зачем, если оно самому Qt не нужно?
Осенью было обсуждение вида "куда должен переползать Qt". Абсолютное большинство высказалось за cmake. В качестве минусов qbs назывались крайне низкая скорость разработки и то, что он за пределами Qt никому не нужен, ибо написан на Qt. А разрабам лень помимо Qt полноценно поддерживать ещё и самостоятельную систему сборки. Такие дела.

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено anonymous , 31-Янв-17 14:59 
Да, cmake и qmake нормально решают задачу. А этот инструмент кроме JSON ничем не интересен.

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Владимир , 31-Янв-17 16:16 
Я был раньше активным сторонником qbs за счет внятного и продуманного синтаксиса, но сейчас, к сожалению я на стороне cmake + ninja. лучше по всем показателям кроме синтаксиса)

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Аноним , 31-Янв-17 18:31 
А я бы сказал что cmake своим синтаксисом перекрывает все плюсы. Тем более что в этой версии qbs появилась возможность генерировать проекты для IDE и других систем сборок — не нужно это уродство (цмейк которое) тащить в Qt, и без него хватает добра.

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено anonymous , 31-Янв-17 20:30 
Для одного Qt есть qmake, если уж на то пошло. Он простой, всегда есть из коробки и синтаксис там не ломается от версии к версии.

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Tat , 01-Фев-17 08:15 
qmake - это ужасное средство, которое все причастные к Qt люди уже давно хотят забыть. Именно то, что это средство всё больше и больше превращается в набор трудноподдерживаемых костылей и поставило перед разрабами Qt вопрос миграции на новую систему сборки.

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


"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Владимир , 01-Фев-17 18:01 
Чувак, я один из авторов этой самой генерации для студии)

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

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


"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Аноним , 31-Янв-17 22:32 
>написан на Qt

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


"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Tat , 01-Фев-17 08:04 
В новости имелось в виду что он может собирать не только Qt и может прекрасно обходить без Qt как standalone. Сам qbs написан на Qt 5.2.

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Дуплик , 31-Янв-17 18:49 
Тыкал эту сборочную систему, оказалось на редкость приятной. Жаль, что она на Qt и не получит должного распространения. В конце-концов даже Qt-разработчики её похоронят и перейдут на мерзкий CMake.

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено testt , 31-Янв-17 19:19 
>добавлена поддержка Microsoft Visual Studio 2017

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


"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Аноним , 31-Янв-17 23:48 
Жаль конечно, симэйк хоть и приемлем, но очень уж напрягает своими тоннами бойлерплэйта.

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено nc , 01-Фев-17 08:24 
Под линуксом пользуюсь для проектов только встроенными в qt .pro-файлами (т.е. qmake). Для нормальных проектов вполне достаточно - ведь все что нужно это указать список файлов для компиляции, список библиотек и возможно опции сборки проекта в целом.
Если разработчики сделают по умолчанию qbs то буду пользоваться ей.
Всякие же make, nmake и т.п. даже смотреть не пытаюсь ибо считаю это бредом из дремучих времен.

"Проект Qt опубликовал сборочный инструментарий qbs 1.7"
Отправлено Аноним , 01-Фев-17 10:27 
> пользуюсь для проектов только встроенными в qt .pro-файлами (т.е. qmake)
> Всякие же make, nmake и т.п. даже смотреть не пытаюсь ибо считаю это бредом из дремучих времен.

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