The OpenNET Project / Index page

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

Выпуск сборочного инструментария Qbs 1.15 и среды разработки Qt Design Studio 1.4

22.12.2019 10:33

Представлен выпуск сборочного инструментария Qbs 1.15. Это второй выпуск после ухода компании Qt Company от разработки проекта, подготовленный силами сообщества, заинтересованного в продолжении разработки Qbs. Для сборки Qbs в числе зависимостей требуется Qt, хотя сам Qbs рассчитан на организацию сборки любых проектов. Qbs использует упрощённый вариант языка QML для определения сценариев сборки проекта, что позволяет определять достаточно гибкие правила сборки, в которых могут подключаться внешние модули, использоваться функции на JavaScript и создаваться произвольные правила сборки.

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

Напомним, что в прошлом году компанией Qt Company было принято решение о прекращении разработки Qbs. Qbs развивался как замена qmake, но в конечном счёте было решено использовать CMake в качестве основной сборочной системы для Qt в долгосрочной перспективе. Разработка Qbs теперь продолжена в форме независимого проекта, поддерживаемого силами сообщества и заинтересованными разработчиками. Для разработки пока продолжает использоваться инфраструктура Qt Company.

Основные новшества Qbs 1.15:

  • Добавлена новая команда "qbs session", предоставляющая API на основе формата JSON для взаимодействия с другими утилитами через stdin/stdout. Например, можно использовать для интеграции поддержки Qbs в IDE, не использующих Qt и C++;
  • Проверки на уровне проекта вынесены на стадию до разбора профиля, что упрощает взаимодействие с пакетными менеджерами, такими как Conan и vcpkg, а также даёт возможность разрешить все зависимости, в том числе связанные с инструментарием компилятора, не привязываясь к особенностям конкретных платформ;
  • В объекты Command, JavaScriptCommand и AutotestRunner добавлено свойство timeout для выявления и завершения зависших команд;
  • Обеспечена корректная поддержка компилятора Xcode 11;
  • Для Windows обеспечена поддержка работы Clang в режиме mingw;
  • Добавлена поддержка микроконтроллеров msp430 с использованием GCC, IAR и IDE STM8, а также микроконтроллеров STM8 с IAR и SDCC;
  • Добавлен новый генератор проектов для IAR Embedded Workbench, поддерживающий ARM, AVR, 8051, MSP430 и STM8;
  • Добавлен новый генератор проектов для KEIL uVision 4, поддерживающий ARM и 8051;
  • При сборке Qbs, Qt и runtime компилятора для упрощения формирования пакетов библиотеки теперь могут быть упакованы для Linux, macOS и Windows.

Одновременно представлен выпуск Qt Design Studio 1.4, окружения для проектирования интерфейса пользователя и разработки графических приложений на базе Qt. Qt Design Studio позволяет упростить совместную работу дизайнеров и разработчиков над созданием рабочих прототипов сложных и масштабируемых интерфейсов. Дизайнеры могут сосредоточиться только над графическим макетом оформления, в то время как разработчики могут уделить основное внимание разработке логики работы приложения, используя автоматически сгенерированный для макетов дизайнера QML-код. При помощи предлагаемого в Qt Design Studio рабочего процесса можно в считанные минуты превратить подготовленные в Photoshop или других графических редакторах макеты в рабочие прототипы, пригодные для запуска на реальных устройствах.

Предлагается коммерческая версия и Community-редакция Qt Design Studio. Коммерческая версия поставляется бесплатно, разрешает распространять подготовленные компоненты интерфейсов только обладателям коммерческой лицензии на Qt. Community-редакция не налагает ограничений на использование, но не включает модули для импорта графики из Photoshop и Sketch. Приложение представляет собой специализированный вариант среды Qt Creator, собираемый из общего репозитория. Большая часть специфичных для Qt Design Studio изменений входит в основную кодовую базу Qt Creator. Модули интеграции с Photoshop и Sketch являются проприетарными.

В новом выпуске:

  • Добавлена поддержка интеграции с появившимся в Qt 5.14 модулем Qt Quick 3D, предоставляющим унифицированный API для создания интерфейсов пользователя на базе Qt Quick, сочетающих элементы 2D и 3D графики.
  • Добавлена поддержка импорта 3D-ресурсов в форматах FBX, Collada (.dae), glTF2, Blender и obj, а также конвертации ресурсов из Qt 3d Studio (.uia и .uip);
  • Добавлен новый режим редактирования 3D-сцен, позволяющий при открытии интерфейса на QML манипулировать компонентами сцены при помощи типовых инструментов, таких как перемещение, масштабирование и вращение. Режим упрощает синхронизацию содержимого 3D и 2D, так как можно одновременно наблюдать за видом 3D-сцены и 2D-представлением;
  • В средства проектирования 2D-интерфейсов добавлены инструменты выравнивания и распределения, позволяющие создавать сложные раскладки с автоматической расстановкой отступов между элементами;
  • Добавлен редактор привязок, позволяющий привязывать свойства без создания биндингов в текстовом редакторе, а выбирая свойства через контекстное меню;
  • Расширены возможности модулей Qt Bridge для Sketch и Photoshop, позволяющих на основе макетов, подготовленных в Sketch или Photoshop, создавать готовые к использованию компоненты и экспортировать их в QML-код.


  1. Главная ссылка к новости (https://www.qt.io/blog/qbs-1.1...)
  2. OpenNews: Релиз фреймворка Qt 5.14 и среды разработки Qt Creator 4.11.0
  3. OpenNews: Выпуск Qt for MCUs 1.0, редакции Qt5 для микроконтроллеров
  4. OpenNews: Введён в строй Qt Marketplace, каталог-магазин модулей и дополнений для Qt
  5. OpenNews: Выпуск среды разработки Qt Design Studio 1.3
  6. OpenNews: Выпуск сборочного инструментария Qbs 1.14, развитие которого продолжило сообщество
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/52078-qt
Ключевые слова: qt, qbs
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (37) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:49, 22/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –16 +/
    > Qbs не генерирует make-файлы, а сам, без посредников, таких как утилита make, контролирует запуск компиляторов и компоновщиков

    Это в духе всех Qt-проектов. Монструозный инопланетянский ксено-комбайн, никак не вписывающийся в земную GNU/Linux-цивилизацию.

     
     
  • 2.2, A.Stahl (ok), 11:20, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +6 +/
    А твой любимый Thunar не использует ls для узнавания списка файлов/директорий. Фу!
     
     
  • 3.4, Аноним (4), 11:59, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    И работает несравненно быстрее любой другой гляделки файлов даже mc.
     
     
  • 4.6, A.Stahl (ok), 12:03, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +11 +/
    И что? Qbs, может, тоже намного быстрее make. Но ведь анониму всё равно. Аноним возмущается что система сборки СОБИРАЕТ, а не использует для сборки другую систему сборки.


     
     
  • 5.22, Аноним (22), 17:01, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну дык!
    Тут, скорее, патологическая ненависть к Qt, и если такой же комбайн выйдет на Gtk, то аноним тут же бросится восхвалять гениальные инновации - как это невероятно, что теперь не нужно запускать отдельную программу для каждого действия.
     
  • 4.7, Аноним (7), 12:16, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > И работает несравненно быстрее любой другой гляделки файлов даже mc.

    Неправда, постоянно видел отзывы, что он в 10 раз медленней dolphin. И я даже видел код, где именно dolphin читерит и нарушает законы природы.

     
     
  • 5.10, Аноним (10), 12:41, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    На папках с большим количеством файлов долфин явно пасует. На системах с HDD в принципе не шевелится он даже еле запускается. Долфин обгоняет по функционалу (два окна слева и справа чего стоят), но уж точно не в скорости. Вот долфин уж точно скорее комбайн. Хотя эталон комбайна это Конкуер который и браузер и файловый менеджер и плеер и черт в ступе и падает на каждый чих.
     
     
  • 6.13, Аноним (7), 13:05, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >большим количеством файлов

    Ядро первым пасует, только с год назад только появилась возможность прерывать операции.

    >На системах с HDD в принципе не шевелится он даже еле запускается

    Это ложь.

    >комбайн

    Эталон минималистичности и быстродействия. После "легковесных" фм вроде pcmanfm и thunar особенно заметно. Хотя, если индексатор включен... Я могу представить, откуда проблемам производительности взяться. Наверное, если запустить тот же стандартный Beagle, окажется, что и не так уж медленно было.

     
     
  • 7.14, Аноним (14), 13:52, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Если ты про ту индексацию от которой тормозит вся система, то она выключена. Если есть какой-то другой индексатор, то в любом что это за индексатор что от него становится только медленне, какой тогда смысл в индексации и использовать в долфине. В любом случае я себе доверяю тунар гораздо быстрее работает, а долфин тормоз и от рута его не запустить.
     
     
  • 8.25, derfenix (ok), 17:57, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот отсюда надо было начинать ... текст свёрнут, показать
     
  • 6.23, Аноним (22), 17:06, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > На папках с большим количеством файлов долфин явно пасует. На системах с HDD в принципе не шевелится он даже еле запускается.

    Использую КДЕ, установленный на HDD, Dolphin открывается и не тормозит. Если конкретно у тебя руки растут из ягодиц, то это не файловый менеджер виноват.

     
  • 2.3, Ведущий психиатр (?), 11:27, 22/12/2019 Скрыто модератором
  • +2 +/
     
     
  • 3.5, Аноним (4), 12:01, 22/12/2019 Скрыто модератором
  • +/
     
     
  • 4.9, Ведущий психиатр (?), 12:25, 22/12/2019 Скрыто модератором
  • +1 +/
     
     
  • 5.17, Аноним (17), 15:57, 22/12/2019 Скрыто модератором
  • +/
     
  • 3.8, Аноним (8), 12:23, 22/12/2019 Скрыто модератором
  • –1 +/
     
     
  • 4.11, Аноним (10), 12:43, 22/12/2019 Скрыто модератором
  • –1 +/
     
  • 2.12, Аноним (12), 13:04, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Все известные мне реализации make некорректно обрабатывают правила с несколькими целями, выполняют их по несколько раз. Правильная реализация была бы даже совместима с POSIX, но кому-то религия запрещает.

    А тут с этим какая ситуация?

     
     
  • 3.15, Аноним (14), 14:14, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    POSIX это корпарастический стандарт из UNIX следовать ему официальный зашквар. Единственное что Столлман придумал само название POSIX стандарту ISO/IEC 9945 и нужен этот стандарт в том числе для прохождение сертификации на право быть юниксом. При этом ни один Линукс дистр её не прошел, кроме какой-то поделки от Хуавей.
     
     
  • 4.21, Аноним (17), 16:11, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Деннис Ритчи, один из создателей Unix, выразил своё мнение, что Unix-подобные системы, такие, как Linux, являются де-факто Unix-системами.
     
     
  • 5.24, анонн (ok), 17:23, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Деннис Ритчи, один из создателей Unix, выразил своё мнение, что Unix-подобные системы, такие, как Linux, являются де-факто Unix-системами.

    Ссылочку (а еще лучше - сразу цитатку) можно? Только чур, не в притянутой за уши интерпретации русскоязычной вики-педии, а в оригинале.
    И времечко (дату) высказывания тоже неплохо - если это было лет 12-15 назад, задолго до засилья любителей "это теперь ваш новый стандарт!" и "шоб как в венде (другого мы все равно толком не знаем), только на халяву!", я возможно даже особо спорить не буду.

     
     
  • 6.27, Аноним (1), 18:27, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > ссылочку на RT пожалуйста где это написано
    > вы все врети

    Hahaha, classic.

    > "это теперь ваш новый стандарт!"
    > "шоб как в венде (другого мы все равно толком не знаем), только на халяву!"

    Так ты ж и есть автор этих цитат. Подробнее о твоем любимом демагогическом приемчике: https://ru.rationalwiki.org/wiki/Чучело

    Кстати, я тут искал-искал, - и не нашел BSD: https://www.opengroup.org/openbrand/register/

    Зато нашел Huawei EulerOS 2.0: https://www.opengroup.org/openbrand/register/brand3622.htm

    Который на системдосе: https://support.huawei.com/enterprise/en/doc/EDOC1000111843/68eac01b/introduct

    </аргументация>
    <звуки-отрицательства author="аннон">

     
     
  • 7.28, анонн (ok), 18:58, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ну да, запрос пруфцов у анонимых анонимов - это ж смешно Не царско-анонимное эт... большой текст свёрнут, показать
     
     
  • 8.29, Аноним (1), 20:07, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Q e d автор цитаты именно ты Поцтеринг призывал забить на портабельность, кот... большой текст свёрнут, показать
     
     
  • 9.30, анонн (ok), 21:26, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Во-первых cмотрим внимательно Т е в аглицкий ты похоже не очень умеешь, да и ... большой текст свёрнут, показать
     
     
  • 10.31, Аноним (1), 06:00, 23/12/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Обо рался Объяви свою позицию мемом А вот и отодвигание ворот подъехало https... большой текст свёрнут, показать
     
     
  • 11.34, анонн (ok), 13:09, 23/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Сел в очередной раз в лужу - придумай что-то, тут же опровергни и гордо обвини в... текст свёрнут, показать
     
     
  • 12.35, Аноним (1), 14:52, 23/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    curl -s https www opengroup org openbrand register 124 grep -i bsd Бли... текст свёрнут, показать
     
  • 3.20, ABBAPOH (ok), 16:11, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Всё хорошо, у правила может быть сколько угодно артефактов (пример - бинарь+дебаг инфо - это два артефакта), всё, от чего правило зависит (т.е. сорцы и другие либы), вызывает пересборку, но не более того. Далее оба артефакта используются "независимо" - пересобирается только то, что зависит либо от бинаря, либо от дебаг инфо. Хотя я навскидку не могу придумать примеров, когда от дебаг инфо что-то зависит=)

    Qbs достаточно умная, чтобы корректно обрабатывать даже свои изменения - я игрался с линкером под вендой и она была достаточно умна чтобы только перелинковывать бинари (но не пересобирать весь мир). Команда линкера поменялась => надо перелинковать. Команда компиляции не менялась (и переменные окружения) => ничего делать не надо.

     
  • 2.18, ABBAPOH (ok), 16:02, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Такой способ позволяет "более лучше" строить граф зависимостей и, соответственно, параллелить сборку.
    cmake + ninja на примере QtCreator сдыхает раньше, чем Qbs (впрочем, рано или поздно сдыхают оба, что весьма забавно - сборка должна хорошо параллелиться - знай себе собирай файлы независимо).
    Пруф - cmake сдыхает в районе 30 потоков, qbs доживает до 40 с небольшим; после этого оба выходят на плато - сколько ядер не досыпай, сборка не ускоряется https://lists.qt-project.org/pipermail/qbs/attachments/20190722/6fb78e56/attac
     
  • 2.33, Аноним (33), 12:16, 23/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Дуплик, залогиься.
     

  • 1.16, Аноним (16), 15:24, 22/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    а чем make не угодил?
     
     
  • 2.19, ABBAPOH (ok), 16:04, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тем, что рекурсивный make тупо не работает; либо надо генерить один огромный файл, что геморно, либо использовать ninja
     
     
  • 3.36, Аноним (36), 18:01, 23/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Тем, что рекурсивный make тупо не работает

    В каком смысле не работает? Вполне себе работает, а с jobserver'ом как в GNU make даже эффективно параллелится.

    >надо генерить один огромный файл

    Не надо, для этого есть инклуды

     
     
  • 4.37, ABBAPOH (ok), 19:49, 23/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > В каком смысле не работает? Вполне себе работает, а с jobserver'ом как в GNU make даже эффективно параллелится.

    Вот тут товарищи с вами на согласятся http://aegis.sourceforge.net/auug97.pdf
    Либо рекурсивные мейкфайлы не полны и потому сломаны (т.е. "не работают") - примеры в статье на стр 3-4; либо они содержат туеву хучу дублированной информации - то есть либа Б зависящая от либы А должна зависеть от всех хедеров и ее зависимостей. Ба, да это же buildraph!

    > Не надо, для этого есть инклуды

    Ну а вот это вы объясните генераторам типа qmake (насчет cmake не в курсе, но он всегда был поумнее) которые так не делают.

    Или вы предлагаете писать мейкфайлы руками? Спасибо, не надо, я лучше на богомерзком JavaScript правила попишу

     
  • 2.26, Аноним (26), 18:26, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    это замена cmake а не make по идеологии. qbs в теории может генерить мейкфайлы (и я даже начинал чет подобное пилить для него, так же как MSBuild)
     
     
  • 3.32, alex (??), 11:15, 23/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    нет, Cmake не самодостаточен, а qbs сам собирает.
     

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



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

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