The OpenNET Project / Index page

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

Опубликован финальный выпуск сборочного инструментария Qbs

18.04.2019 21:06

Компания 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.


  1. Главная ссылка к новости (https://blog.qt.io/blog/2019/0...)
  2. OpenNews: Проект Qt прекращает разработку сборочной системы Qbs в пользу CMake
  3. OpenNews: Доступен сборочный инструментарий Qbs 1.12, развиваемый проектом Qt
  4. OpenNews: Разработчик языка XL опубликовал новую сборочную систему build
  5. OpenNews: Выпуск сборочной системы Meson 0.50
Лицензия: CC-BY
Тип: Программы
Ключевые слова: qbs, build, qt
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (32) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.2, equeim (ok), 22:46, 18/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Если бы он не зависел от Qt, у него был бы шанс, ИМХО (ничего не имею против Qt, но это слишком жирная зависимость для системы сборки).
     
     
  • 2.17, Ретроград (?), 06:45, 19/04/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    NIH-наркоманы, как показывает практика, ни перед чем не останавливаются. Некоторые системы сборки даже Java тянут за собой, хотя вроде как к языку сами по себе не привязаны.
     
     
  • 3.31, Аноним (31), 14:11, 20/04/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так это отлично, раз здравый смысл взял верх. Редко такое бывает.
     

  • 1.3, Skullnet (?), 22:55, 18/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Чем он лучше cmake?
     
     
  • 2.4, Аноним (4), 22:58, 18/04/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    qml
     
  • 2.10, fleonis (ok), 23:17, 18/04/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    то, что они решлили перейти на cmake, как бы намекает...
     
     
  • 3.16, Акроним (?), 05:02, 19/04/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Они решили перейти на cmake, т.к. он более популярен. Допустим, php очень популярен: о чем это как бы намекает?
     
     
  • 4.18, пох (?), 07:22, 19/04/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > о чем это как бы намекает

    "в мире есть 17 миллионов мух, которые едят дерьмо". Ну и что?

     
     
  • 5.23, anonymous (??), 17:15, 19/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это не мухи, а гвидобейсикокодеры. И дерьмо они столько едят, сколько производят.
     
     
  • 6.34, Аноним (34), 16:53, 20/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ты не путай похапе с гвидобейсиком!
     
  • 4.38, fleonis (ok), 00:03, 01/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Они решили перейти на cmake, т.к. он более популярен. Допустим, php очень
    > популярен: о чем это как бы намекает?

    это другой случай. тут есть уже работающая технология и ее поменяли.

    а я ответил на вопрос человека "чем он лучше cmake". с него ушли. если бы был намного лучше, то остались бы на нем, вот и вся логика.
    например без b2 наверное было бы трудно под столько компиляторов и платформ собирать, так что замена его на cmake вызывет некоторые трудности.

     
  • 3.26, None (??), 19:41, 19/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Что намекает? Что в Qt работают балаболы, которые годами говорили общественности, что qbs - это default build system in Qt6, а в итоге оказалось, что над qbs все эти годы в свободное от работы время работало пара человек? Да, это намекает. Те, кто следил за всей этой кухней и что она готовила прекрасно в курсе, что в Qt всё очень сильно не в порядке. Это стало понятно ещё пару лет назад, когда они додумались передаваемый в qdebug unicode выводить в виде hex-символов.
     
     
  • 4.29, Отражение луны (ok), 20:09, 19/04/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Действительно, лучше бы не прислушивались к сообществу и не смотрели бы на реальный мир, продвигая заведомо мертвую технологию.
    По мне так команда кута тем и хорошая, что они принимают действительно взвешенные решения.
    И да, с Qt по прежнему все отлично.
     
     
  • 5.30, None (??), 06:04, 20/04/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как хорошо отвечать на пост, даже не читая его и не вдумываясь, что там написано, верно?
     
  • 4.33, Аноним (31), 14:29, 20/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А с чего ты взял, её именно разрабы Qt пилили? И да, минимальный boostrap они тоже не осилили, точнее даже вообще не думали о его наличии.
     

  • 1.5, kuzulis (?), 23:05, 18/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это не все ховшества. Там забыли упомянуть о том, что добавлена поддержка тулчейнов для baremetal, таких как IAR && KEIL (начиная с 1.13). Плюс, в > 1.13 добавлен тулчейн SDCC. Кроме того, в QtC > 4.9 в плагине baremetal также появилась возможность создавать комплекты для IAR && KEIL && SDCC и компилять проекты. Пока что это работает с архитектурами ARM, AVR и MCS51 (8051). Естественно, все это "экспериментальные" фичи и могут содержать баги. :)
     
  • 1.7, kuzulis (?), 23:08, 18/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Чем он лучше cmake?

    Тем, что все работает из "коробки". Попробуй ка на CMake заюзать baremetal компиляторы также просто как с QBS && QtC. А я посмотрю.

     
     
  • 2.14, Аноним (14), 00:35, 19/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Там нужно что-то более сложное, чем обычный toolchain-файл?
     
     
  • 3.20, kuzulis (?), 10:46, 19/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну нарисуй мне тулчейн файл для KEIL... Вбрасывать и я могу...

    В таком случае можно вообще не использовать CMake, а создать тупо *.bat файл и билдить что угодно и нафик тогда CMake вообще уперся.

    Весь цимус здесь в удобстве разработки и интеграции с IDE, в данном случае с QtC. Здесь QtC тебе подсветит все макросы компилятора, инклуды, распарсит вывод текущего специфичного компилятора.

    PS: Да и никто не заставляет тебя пользоваться QBS (я, вот, к примеру, не использую CMake), он найдет свое применение в любом случае, независимо от того, отказалась ли от него Qt Company или нет. Да и тема тут не о CMake, а о QBS...

     
     
  • 4.37, X4asd (ok), 12:28, 25/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > он найдет свое применение в любом случае

    врядли

     

  • 1.8, kuzulis (?), 23:10, 18/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    UPD: Также в QBS > 1.13 добавлены примеры для ARM (stm32) и AVR... В процессе добавление примера для MCS51 (естественно, юзаются GCC, IAR, KEIL, и будет юзаться SDCC).
     
  • 1.9, kuzulis (?), 23:15, 18/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    UPD2: Также в процессе "запила" и генератор проектов для IAR из QBS. Пока что в отдельной репе: https://github.com/denis-shienkov/qbs/tree/iar-gen/src/plugins/generator/iarew (там вроде уже генерятся проекты для ARM, AVR, MCS51, но у меня пока нет времени чтоб это до-проверить). Если кому интересно - просьба потыкать. :) У меня пока все.
     
  • 1.11, Дуплик (ok), 00:11, 19/04/2019 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –4 +/
     
     
  • 2.13, Аноним (14), 00:35, 19/04/2019 Скрыто модератором
  • +7 +/
     
  • 2.19, пох (?), 07:25, 19/04/2019 Скрыто модератором
  • –3 +/
     

     ....ответы скрыты модератором (2)

  • 1.22, Аноним (22), 11:08, 19/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    У Qt Company, похоже, начался синдром Марка Шаттлворта.
     
     
  • 2.25, Аноним (25), 19:26, 19/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Во-первых, NIH-синдром. Во-вторых, закончился. И, да, у Qt Company.
     
     
  • 3.28, None (??), 19:52, 19/04/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Закончится он, когда они дропнут Qt и перейдут на GTK.)
     
  • 3.35, Аноним (34), 17:07, 20/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Во-первых, NIH-синдром. Во-вторых, закончился.

    Возвратный NIH-синдром — это как раз и есть болезнь Марка.

     

  • 1.24, Аноним (24), 18:22, 19/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Этой QBasic? В линуксе?
     
  • 1.27, None (??), 19:44, 19/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Жаль, хорошая и перспективная была вещь. В итоге убита внутренней грызней в Qt. Теперь её выживание зависит от того, сумеют ли её отвязать от Qt.
     
     
  • 2.32, Аноним (31), 14:26, 20/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Проще заново написать, чем такое отвязывать.
     
  • 2.36, Аноним (36), 19:22, 20/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем QML-style систему сборки отвязывать от Qt?
    А вот от QtScript - да, желательно бы. Возможно, одно из причин смерти - как раз-таки недоQMLность.
     

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



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

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