The OpenNET Project / Index page

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

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

04.06.2021 12:24

Опубликован выпуск сборочного инструментария Qbs 1.19. Это шестой выпуск после ухода компании 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.19:

  • Реализован новый модуль codesign, предоставляющий средства для заверения пакетов с приложениями и исполняемых файлов цифровыми подписями при сборке для платформ Apple, Android и Windows.
  • Добавлена поддержка использования нескольких версий компилятора MSVC, поставляемых в одной установке Visual Studio или в разных версиях Windows SDK. Для каждой версии компилятора Qbs теперь создаёт отдельный профиль.
  • В инструментарии GCC и IAR добавлена поддержка архитектуры Motorola HCS12, а в SDCC (Small Device C Compiler) и IAR архитектуры Motorola HCS08.
  • Налажено автоопределение наличия инструментария Keil.
  • Добавлена поддержка Android NDK 22.1.7171670.
  • Добавлена поддержка Xcode 12.5 (QBS-1644).
  • Реализована совместимость с Qt 6.1.


  1. Главная ссылка к новости (https://www.qt.io/blog/qbs-1.1...)
  2. OpenNews: Выпуск сборочного инструментария Qbs 1.17
  3. OpenNews: Проект Qt прекращает разработку сборочной системы Qbs в пользу CMake
  4. OpenNews: Сотрудник Red Hat представил сборочную систему Goals. Выпуск GNU Make 4.3
  5. OpenNews: Android переходит на сборочную систему Bazel
  6. OpenNews: Выпуск сборочной системы Meson 0.58. Проект по созданию реализации Meson на языке Си
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/55272-qbs
Ключевые слова: qbs, build
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (45) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Nikki Next (?), 12:28, 04/06/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +3 +/
     

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

  • 1.2, Аноним (2), 12:30, 04/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    блин, с каждым релизом все привлекательнее и привлекательнее.
    может быть зря я пересел на cmake ...
     
     
  • 2.5, Аноним (5), 12:41, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Да она всегда была лучше симэйка. Просто тупая мода свое взяла.
     
     
  • 3.36, trdm (ok), 12:04, 05/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да мне и qmake нравился. Простота и полная документаха - nice..
     
  • 2.6, Бака (?), 12:44, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И правда зря :)
    Я вот думаю тоже попробовать эту штуку, уж больно мне нравится декларативность, а не императивность и усложнённость симейка
     
  • 2.11, Аноним (11), 14:31, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не зря, CMake не маргинальная поделка от которой отказались авторы и которую полторы калеки разрабатывают, и которая даже нигде не опакечена потому что нигде не используется. Ну и CMake работает для чего-то более сложного чем хелловорлд.
     
     
  • 3.16, n00by (ok), 15:05, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Не зря, CMake не маргинальная поделка от которой отказались авторы и которую
    > полторы калеки разрабатывают, и которая даже нигде не опакечена потому что
    > нигде не используется.

    "Опекечено", это, безусловно, критерий.

    $ eix qbs
    * dev-util/qbs
         Доступные версии:      ~1.16.0^t ~1.18.0^t {doc examples test}
         Домашняя страница:     https://doc.qt.io/qbs/
         Описание:              Modern build tool for software projects

     
  • 3.18, Michael Shigorin (ok), 15:48, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    О да.  Шмяк -- это маргинальная поделка, авторы которой не смогли даже сообразить, что ЭТО лучше было утопить до того, как оно "стало майнстримом".

    http://egorfine.com/ru/articles/worse-than-failure/

     
     
  • 4.24, Аноним (24), 16:43, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    маргинальная поделка - это apt с поддержкой *.rpm .


    А вот cmake, при всех его недостатках, нифига не маргинален

     
     
  • 5.33, n00by (ok), 08:16, 05/06/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > маргинальная поделка - это apt с поддержкой *.rpm .

    Почему? apt быстрый и по нему достаточно много инструкций от той же Ubuntu.

    А главное, что систему с ним существенно сложнее убить в результате сбоя обновления, чем если пакетный менеджер написан на каком-либо питоне.

     
  • 4.35, Аноним (35), 11:28, 05/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ...сморозил непрограммист
     
     
  • 5.48, Michael Shigorin (ok), 19:28, 03/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > ...сморозил непрограммист

    Боюсь, я больше _программист_, чем Вы.
    Но ещё больше боюсь, что не поняли ровно потому, что Вы -- кодер.

     
  • 2.15, Аноним (14), 14:54, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не спорю. Но пересел не зря. cmake универсальнее.
     

  • 1.7, Аноним (7), 12:49, 04/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > Для крупных проектов, состоящих из большого числа файлов и поддиректорий, производительность повторной пересборки с использованием Qbs может опережать make в разы - пересборка выполняется почти мгновенно и не заставляет разработчика тратить время на ожидание.

    Авторы QBS ссыкливо не сравнивают его с ninja - т.к. например инкрементная сборка того же QtCreator с использование cmake+ninja в разы быстрее.

     
     
  • 2.10, Аноним (10), 14:04, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да и пох. У них удобное конфигурирование сборки с приятным синтаксисом.
     
  • 2.23, Аноним (24), 16:40, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >т.к. например ...

    напрмер хотелось бы каких-то чисел и замеров а не ля-ля

     
  • 2.25, ABBAPOH (ok), 17:06, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Есть какие-то замеры? Да, null build у ninja в 2 раза быстрее, 1 секунда вместо 2. Разница просто огромная, в процентах-то.
    Вот только full build у ниньзи на 3 минуты (!) дольше (разница ~28%).
    Мерял давно https://docs.google.com/spreadsheets/d/18k1AJaXRZ1KJ-kNeTeL92or41oa7FyLYDvgJFY
    Еще более давно другой человек тоже получил неутешительные результаты для ninja - она деградирует при насыпании ей ядер (хотя у кого из нас есть сервер с 50 ядрами?) https://lists.qt-project.org/pipermail/qbs/attachments/20190722/6fb78e56/attac

    Не сравнивают не потому что стыдно, а потому что мне лень делать это на 3 платформы, а 2 графика под одну платформу на блог пост на Хабре не тянут.

     
     
  • 3.41, Аноним (41), 11:17, 06/06/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сразу видно доморощенный разработчик. При интенсивном коммите эта секунда очень важна ведь несколько десятков сборок в минуту вполне нормальная история для интенсивного проекта. Умножай на окружения и тесты и все очередь уже заполнена
     
     
  • 4.47, ABBAPOH (ok), 00:55, 15/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да, вот только в реальности происходит не null build, а инкрементальный - что-то поменялось, надо что-то перелиновать. Так вот, судя по всему, cmake перелиновывает ВСЕ зависимости (впрочем, возможно я не умею его готовить), а в Qbs есть фича - smart relinking - когда перелинковываются только те бинари, в зависимостях которых реально изменились символы (если проект B зависит от либы А то при перекомпиляции А перелинковывать B не надо, если символы А не менялись).
     
  • 2.37, kuzulis (?), 14:02, 05/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > апример инкрементная сборка того же QtCreator с использование cmake+ninja в разы быстрее

    Зато у Qbs есть запас по оптимизации, благодаря его дизайну, так что еще не вечер.

     

  • 1.9, Самый Лучший Гусь (?), 13:34, 04/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Если программу нельзя собрать make ­­— пусть переделывают.
     
     
  • 2.38, kuzulis (?), 14:05, 05/06/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Если программу нельзя собрать make ­­— пусть переделывают.

    Ага, предложи еще и Make с собой на винде таскать (маке во все поля, оч. интересно).

     
     
  • 3.42, Аноним (41), 11:19, 06/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А вы в курсе что все мейки могут работать в паралель так что большая их часть написанна не безопасно? Так что я бы на сейк вообще не смотрел
     
  • 3.46, Урри (ok), 11:36, 06/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    оно там уже есть. wsl называется.
     

  • 1.13, Аноним (14), 14:52, 04/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > при сборке для платформ Apple, Android и Windows

    А с этими гавносистемами вечно всё через нижние полушария мозга.

     
     
  • 2.43, Аноним (41), 11:20, 06/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да верно. Реально непонятно чего они вечно вые-ся своими системами
     

  • 1.19, Аноним (19), 15:50, 04/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Зачем заниматься некромантией? Qt ума хватило не плодить сущности и закопать Qbs в пользу универсального CMake
     
     
  • 2.28, ABBAPOH (ok), 18:52, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем заниматься некромантией? Qt ума хватило не плодить сущности и закопать Qbs
    > в пользу универсального CMake

    Проблема в том что он не универсальный. Сколько там лет не могут dsym на маке запилить?https://gitlab.kitware.com/cmake/cmake/-/issues/20256
    Или вот codesign модуль, теперь Qbs умеет подписывать не только банды, но и индивидуальные артефакты. А что cmake?  - облом, только бандлы (через cpack), а с индивидуальными артефактами начинается веселуха из-за разного RPATH в build tree и install tree http://cmake.3232098.n2.nabble.com/Signing-individual-binary-and-problem-with

     
  • 2.39, kuzulis (?), 14:08, 05/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да уж, очень оно универсально, ага. А забацай ка мне, например поддержку тулчейна от Keil для архитектуры 8051? Или еще чего то такого, а мы посмотрим как он универсален.
     
  • 2.40, kuzulis (?), 14:10, 05/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Или например, как пропатчить бинарь (добавить куда нить в него CRC, и прочее), используя только CMake, без всяких питонов и прочего. А я посмотрю.
     

  • 1.21, Агл (?), 16:01, 04/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    и как заставить qt creator добавлять изменения в проекте при использовании cmake?
     
  • 1.26, Аноним (-), 17:20, 04/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Это луди, которым не нужен CMake?
     
     
  • 2.29, Аноним (29), 19:47, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не будь лудди, переходи на то что смузихлёбы велят.
     
     
  • 3.45, Аноним (41), 11:22, 06/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Смузихлебы не так уж и не правы все эти истории про то что настоящие программисты программируют топорм на ассемблере и на лампах уходят в прошлое так что присамтривайся и выбирай вкус смузи
     

  • 1.34, lockywolf (ok), 08:36, 05/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Автотулз скоро умрёт.
     
     
  • 2.44, Аноним (41), 11:21, 06/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Поскорее бы
     

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



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

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