The OpenNET Project / Index page

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

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

14.09.2020 12:09

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

  • Добавлена начальная поддержка Qt 6.
  • Добавлен модуль capnp для использования протокола сериализации данных Cap'n Proto в приложениях на C++.
  • Добавлена возможность указания переменных product и project в правой части определений свойства moduleProvider (например, "moduleProviders.mygenerator.chooseLettersFrom: project.beginning").
  • Добавлена поддержка инструментариев для сборки проектов C/C++ для работы поверх оборудования без ОС (bare-metal, с выставлением параметра qbs.targetPlatform в значение 'none'): KEIL (ARMCLANG, C166, C251), IAR (CR16, AVR32, M68K) и GCC (CR16, M68K, M32C, M32R, Super-H, V850, RISC-V, Xtensa).
  • Добавлена поддержка среды разработки Xcode 12.0 для macOS.
  • Проведена чистка модулей "Qt for Android".
  • Улучшена поддержка сборки для платформы Android. В модуль Android.sdk добавлено свойство packageType для создания пакетов "aab" (Android App Bundles) вместо "apk", а также свойство aaptName для использования нового aapt2 (Android Asset Packaging Tool). Прекращена поддержка сборки Android-приложений для платформ ARMv5, MIPS и MIPS64.


  1. Главная ссылка к новости (https://www.qt.io/blog/qbs-1-1...)
  2. OpenNews: Выпуск сборочного инструментария Qbs 1.16
  3. OpenNews: Выпуск сборочной системы Meson 0.52
  4. OpenNews: Google развивает модульную сборочную систему Soong для Android
  5. OpenNews: Выпуск сборочной системы Bazel 2.0
  6. OpenNews: Сотрудник Red Hat представил сборочную систему Goals. Выпуск GNU Make 4.3
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/53709-qbs
Ключевые слова: qbs, build
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (55) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 12:11, 14/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    зачем ?
    ведь есть cmake
     
     
  • 2.2, Odalist (?), 12:17, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Пусть будут альтернативы.
     
     
  • 3.5, Аноним (5), 14:23, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Правильно, пусть вокруг тебя говорят кроме русского на китайском и африкаансе, так хорошо иметь альтернативы русскому.
     
     
  • 4.9, Аноним (9), 14:47, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Хорошо бы было, если бы русскому была только одна альтернатива - Эсперанто.
     
     
  • 5.35, Кочегар (ok), 02:34, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А в качестве альтернативы Эсперанто пусть будет только Интерлингва, Идо, Оксиденталь и Волапюк.
     
     
  • 6.36, Аноним (36), 09:43, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Квенья забыл.
     
  • 3.12, Аноним (12), 14:50, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    только же не прибитые гвоздями к Qt.
     
     
  • 4.14, Авварон (??), 16:09, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Какая разница что оно тянет за собой? Cmake так-то собирается слегка дольше чем Qbs
     
     
  • 5.15, Аноним (12), 16:30, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    разница, что C, C++ доступны на большем числе платформ, чем они же + Qt.
     
     
  • 6.16, Авварон (??), 16:43, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вы часто собираете софт на платформах где нет Qt?
    Или все-таки используете венду\линукс и кросс компиляцию?
    Так-то Qt на айфон есть, а компилятор туда не завезли, потому что кто будет собирать что-то на айфоне?
     
     
  • 7.18, Аноним (12), 17:27, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Кросс компиляция хорошо, но подходит не всем проектам. Если Qbs претендует быть заменой CMake, Meson, Autotools, Boost.Build, qmake и т.д., ему бы неплохо тоже научиться бутстрапиться на платформах, которые поддерживают эти системы сборки.
    Напомнить, почему Qbs не стал системой сборки для Qt 6? Минимум не прошел по 2.а, 3.а Требований [1]. Так он и не пройдет, пока не избавится зависимости от Qt.

    P.S.: Qt 6 дропнул QtScript. Уже решили, чем его будут заменять в Qbs?

    1. https://lists.qt-project.org/pipermail/development/2018-July/033100.html

     
     
  • 8.19, Авварон (??), 18:08, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Qbs не стал системой сборки для Qt6 потому что у Qt Company хреновый менеджмент,... текст свёрнут, показать
     
     
  • 9.24, Аноним (12), 19:41, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Хреновый менеджмент виноват в том, что многие Пользователи Qt злоупотребляют их ... большой текст свёрнут, показать
     
     
  • 10.30, ABBAPOH (ok), 22:50, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну вы понимаете, есть куча компаний, который зарабатывают на Qt продавая, скажем... большой текст свёрнут, показать
     
     
  • 11.31, Qbs_king (?), 23:39, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А что такого Тиаго сказал про QVector Где это можно поискать ... текст свёрнут, показать
     
     
  • 12.33, ABBAPOH (ok), 01:39, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну там решили сделать поведение QVector erase не таким как описано в стандарте ... текст свёрнут, показать
     
  • 11.32, Аноним (12), 01:23, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Мы же говорим по состоянию на июль-октябрь 2018, когда решалось с системой сборк... большой текст свёрнут, показать
     
     
  • 12.34, ABBAPOH (ok), 02:16, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Давайте еще вспомним историю MS-DOS Qbs не взлетел не потому что он как-то не т... большой текст свёрнут, показать
     
     
  • 13.45, Аноним (12), 12:45, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А что и какие компании делали для продвижения других популярных OSS проектов ff... большой текст свёрнут, показать
     
     
  • 14.46, ABBAPOH (ok), 13:01, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну представьте Линус такой написал гит а потом - блин, чот его в репозиториях не... текст свёрнут, показать
     
  • 9.43, Аноним (43), 11:51, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    а с фига ли ты на 2018 году акцентируешь, издабол ... текст свёрнут, показать
     
     
  • 10.49, Авварон (??), 14:33, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что это последний год, за который есть данные не нравится 2018, давай во... текст свёрнут, показать
     
  • 8.20, Авварон (??), 18:10, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да, можно еще список таких платформ, где есть cmake но нет Qt ... текст свёрнут, показать
     
     
  • 9.25, Аноним (12), 19:54, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Те, что дропнули с релизом Qt 6 и не планируют возвращать, например Да и вляд л... текст свёрнут, показать
     
  • 6.27, Аноним (27), 20:14, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > C, C++ доступны на большем числе платформ, чем они же + Qt.

    Qt и qbs тебе потребуются там где сборка идёт (на host- и build-системе), а не там где будешь запускать собранную программу (target-система). Использовал qbs для сборки под stm32, но все же в qmake получается проще (костылей в qmake требуется больше, но управляться с этими костылями потом легче).

    Очевидно, что Qt под stm32 для таких экспериментов собирать не нужно ;)

     
     
  • 7.29, Аноним (12), 20:23, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    повторюсь, кросс компиляция подходит не для всех проектов. например, она не поможет, если нужный инструментарий есть только на целевой платформе.
     
     
  • 8.40, kuzulis (?), 09:55, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это Вы про OSX Я больше не знаю никаких таких целевых платформ где невозмлжно к... текст свёрнут, показать
     
     
  • 9.47, ABBAPOH (ok), 13:21, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, на OSX как раз таки кросс-компиляция - ты кросс-компилируешь на amd64 маке ... текст свёрнут, показать
     
     
  • 10.51, kuzulis (?), 21:26, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не, я имел ввиду, что из Linux Windows невозможно кросс-компилировать для OSX ... текст свёрнут, показать
     
     
  • 11.55, Авварон (??), 12:40, 17/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Есть такая приблуда для линуксов https github com tpoechtrager osxcross ... текст свёрнут, показать
     
  • 7.42, kuzulis (?), 10:48, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Использовал qbs для сборки под stm32, но все же в qmake получается проще

    QMake под stm32? Проще? o_O Ну, Вы, батенька даете прикурить. ))

    А если серьезно - то я не знаю, куда уже проще чем stm32 и QBS (да и не только stm32). С какими то хоть проблемами столкнулись? Что было такого сложного? Раскройте плз. свою мысль.

     
     
  • 8.52, Аноним (52), 22:21, 16/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Принципиальных проблем c qbs нет, но документация у него хреновая некоторые п... большой текст свёрнут, показать
     
     
  • 9.53, kuzulis (?), 08:06, 17/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Позвольте, но есть же примеры, которые идут вместе с QBS Кроме того, что может ... текст свёрнут, показать
     
  • 9.54, kuzulis (?), 08:10, 17/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    CONFIG i2c которая добавит в проект файлы либы i2c и включит в зависимостях C... текст свёрнут, показать
     
  • 4.17, Аноним (9), 17:01, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Думаю, если не забросят проект, то со временем запилят минимально необходимый автономный интепретатор QML.
     
  • 4.41, kuzulis (?), 10:00, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > только же не прибитые гвоздями к Qt.

    Можно подумать что CMake, Meson и прочие билд системы не тянут за собой еще-чего-нибудь.. Ну вот не верю я в такие чудеса что им достаточно только компилятора C/C++ чтобы это собрать (я не в курсе, честно честно).

     
  • 2.3, Аноним (3), 12:25, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    затем, что есть CMake
     
     
  • 3.26, Аноним (26), 19:57, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    зачем нужна еда, если можно есть говно
     
  • 2.7, Денис (??), 14:39, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > cmake

    А как узнать все доступные опции с описанием? Наподобие ./configure --help

     
     
  • 3.13, Аноним (13), 15:29, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    "cmake -LH" ?
     
     
  • 4.23, Денис (??), 19:09, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Благодарю.
     
  • 2.48, Аноним (48), 13:24, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Хуже CMake сложно что-то придумать, даже если специально очень сильно стараться.
     
     
  • 3.50, Аноним (50), 14:38, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Autotools
     

  • 1.4, uytuyt (?), 13:33, 14/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    эх, зоопарк билдовых систем...

    понадобилось как-то построить tcmalloc на системе, на которой нет рутового доступа - это такое приключение, что захотелось пристрелить того, кто эти зоопарки разводит :)

     
     
  • 2.6, Аноним (5), 14:28, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Нет зоопарка, все сейчас на CMake. А маргиналы-отщепенцы всегда были, есть и будут, только они погоды не делают, и даже ничего полезного не производят

    > понадобилось как-то построить tcmalloc на системе, на которой нет рутового доступа - это такое приключение, что захотелось пристрелить того, кто эти зоопарки разводит :)

    А проблема-то только в вашем невежестве. Есть и кучи готовых пакетных систем, и готовые бинарные пакеты, и кросскомпиляция, да и руками её собрать очень просто - и всё это не требует рута и делается одной -друмя командами.

     
     
  • 3.10, Аноним (12), 14:47, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > все сейчас на CMake

    пользователи Meson в курсе?

     
  • 3.11, Авварон (??), 14:48, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, "все" - это громко сказано - Яндекс слез с CMake несколько лет назад (я застал период когда файлы еще назывались CMakeLists.txt но уже собирались через ya-make), Facebook сидит на buck, Google (вроде бы) на Meson.
    Опенсосрс, может, и сидит на cmake, но он до того на автотулзах сидел что, конечно, огромный шаг для человечества.
     
     
  • 4.21, анонимтвоюмать (?), 18:16, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Google точно не на bazel?
     
     
  • 5.22, Авварон (??), 18:40, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я путаю bazel и meson, так что вполне возможно=) Я потому и написал в скобках что вроде бы.
    Вики говорит что bazel https://en.wikipedia.org/wiki/Bazel_(software)
     
  • 4.38, Аноним (36), 09:47, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >ya-make

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

     
  • 2.8, Денис (??), 14:42, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зоопарк это хорошо.

    Для сборки не нужны рутовые права. Только для установки. По умолчанию /usr/local. Но можно указать в configure другой prefix, например ~/.local

    Мне Cmake не нравится. Потому что я не знаю где в нем все доступные опции искать, как в ./configure.

    Cmake популярен. Но еще meson (python) с ninja используют.

     

  • 1.28, Аноним (28), 20:15, 14/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чем лучше meson?
     
     
  • 2.39, Аноним (36), 09:50, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А чем ваш meson лучше чем bake, blueprint, luamake и xmake?
     

  • 1.37, kuzulis (?), 09:43, 15/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Чем лучше meson?

    А Вы таки скажите а чем мезон то лучше? Что он умеет кроме GCC, CLNG и MSVC? Он умеет кросс-компилить? Он умеет другие тулчейны? Что он может без питона (только таскать питон с собой)?

     
     
  • 2.44, Аноним (44), 11:52, 15/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Он умеет кросс-компилить?

    Умеет, но через такую задницу…

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



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

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