The OpenNET Project / Index page

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

Выпуск сборочного инструментария Qbs 1.21 и начало тестирования Qt 6.3

15.01.2022 19:18

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

  • Переделан механизм провайдеров модулей (генераторов модулей). Для фреймворков, таких как Qt и Boost, теперь можно использовать более одного провайдера, определять какой из провайдеров запускать при помощи нового свойства qbsModuleProviders и указывать приоритет для выбора сгенерированных разными провайдерами модулей. Например, можно указать два провайдера "Qt" и "qbspkgconfig", первый из которых попытается использовать пользовательскую установку Qt (через поиск qmake), и если подобная установка не будет найдена второй провайдер попытается задействовать Qt, предоставляемый системой (через вызов pkg-config):
    
       CppApplication {
           Depends { name: "Qt.core" }
           files: "main.cpp"
           qbsModuleProviders: ["Qt", "qbspkgconfig"]
       }
    
  • Добавлен провайдер "qbspkgconfig", который пришёл на смену провайдеру модулей "fallback", пытавшемуся сгенерировать модуль при помощи pkg-config, если искомый модуль не был сгенерирован другими провайдерами. В отличие от "fallback" в "qbspkgconfig" вместо вызова утилиты pkg-config применяется встроенная C++ библиотека для прямого чтения файлов ".pc", что позволяет ускорить работу и получить дополнительную информацию о зависимостях пакетов, недоступную при вызове утилиты pkg-config.
  • Добавлена поддержка спецификации C++23, определяющей будущий стандарт C++.
  • Для инструментария GCC добавлена поддержка архитектуры Elbrus E2K.
  • Для платформы Android добавлено свойство Android.ndk.buildId, позволяющее переопределить значение по умолчанию для флага компоновщика "--build-id".
  • В модулях capnproto и protobuf реализована возможность использования runtime, предоставленных провайдером qbspkgconfig.
  • Решены проблемы с отслеживанием изменений в файлах с исходным кодом на платформе FreeBSD, возникавшие из-за отбрасывания миллисекунд при оценке времени изменения файла.
  • Добавлено свойство ConanfileProbe.verbose, упрощающее отладку проектов, использующих пакетный менеджер Conan.

Дополнительно можно отметить начало альфа-тестирования фреймворка Qt 6.3, в котором реализован новый модуль "Qt Language Server" с поддержкой протоколов Language Server и JsonRpc 2.0, в модуль Qt Core добавлена большая порция новых функций, в модуле Qt Quick Dialogs реализован QML-тип MessageDialog для использования предоставляемых платформой диалоговых окон, в модуль Qt Wayland Compositor добавлен композитный сервер Qt Shell и API для создания собственных расширений пользовательской оболочки.

В модуле Qt QML предложена реализация компилятора qmltc (QML type compiler), позволяющего скомпилировать структуры объектов QML в классы на языке C++. Для коммерческих пользователей Qt 6.3 началось тестирование продукта Qt Quick Compiler, который помимо вышеотмеченного QML Type Compiler включает QML Script Compiler, позволяющий компилировать функции и выражения QML в код на C++. Отмечается, что применение Qt Quick Compiler позволит приблизить производительность программ на базе QML к нативным программам, в частности при компиляции расширений отмечается сокращение времени запуска и выполнения приблизительно на 30% по сравнению с использованием интерпретируемого варианта.

  1. Главная ссылка к новости (https://www.qt.io/blog/qbs-1.2...)
  2. OpenNews: Выпуск сборочного инструментария Qbs 1.20
  3. OpenNews: Выпуск сборочной системы Bazel 2.0
  4. OpenNews: Релиз goredo 1.0.0, реализации системы сборки redo, предложенной DJB
  5. OpenNews: Выпуск сборочной системы Meson 0.58. Проект по созданию реализации Meson на языке Си
  6. OpenNews: Релиз системы сборки CMake 3.22
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/56515-qbs
Ключевые слова: qbs, build
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (51) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, leibniz (??), 19:22, 15/01/2022 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.2, Аноним (2), 19:24, 15/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Последняя рабочая версия Qt 5.12.12. Дальше квест.
     
     
  • 2.3, Аноним (3), 19:36, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    просто Qt знают толк в коммерции ;)
     
     
  • 3.15, Аноним (15), 21:37, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Лучше гтк юзать.
     
     
  • 4.21, Аноним (21), 21:58, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Еоторый не имеет и половины возможностей Qt.
     
     
  • 5.22, Аноним (21), 21:58, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    *Который
     
  • 5.51, Антошка (??), 11:47, 17/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да я бы даже сказал, что и десятой части не умеет. А если учесть сборку для мобильных (Android, iOS, Sailfish и тд) и embedded, то лимит GTK плавненько стремится к нулю.
     
  • 2.4, Агл (?), 19:37, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    почему?
     
     
  • 3.16, Аноним (15), 21:38, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Слишком много стали ломать.
     
  • 2.5, Аноним (5), 20:19, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а в qt6 вообще много чего сломали в плане совместимости. на мелких проектах кажется, что всё круто, собирается без изменений, но на +- крупных уже едут include-ы, линковка, нельзя нормально слинковать либы, не поддерживающие cmake-ом qt6 (а все их форкать задолбаешься) и т.д.

    в принципе нормальный процесс, на qt3-qt4 и qt4-qt5 то же самое было, до этого хз

     
     
  • 3.6, Sokoloff (?), 20:43, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > в принципе нормальный процесс, на qt3-qt4 и qt4-qt5 то же самое было, до этого хз

    Что-то мне по-дуругому помнитья. С Qt3 на Qt4, да был сложный переход, там много чего поменяли.
    А вот с Qt4 на Qt5 код править почти не пришлось, у меня долгое время был переключатель версии в CMake. Тут скорее cmake-ры подкинули проблем, взяли и поменяли систему подключения для Qt5, а для Qt4 поленились написать аналог, и приходилось тянуть два куска кода в CMake.  

     
     
  • 4.8, Аноним (5), 20:49, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    с qt4 на qt5 да, полегче было, но с деплоем подкинули проблем.

    а ещё бесит, когда путают тся/ться

     
  • 3.7, Аноним (7), 20:47, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    То же самое было без либ совместимости. Недавно, правда, всё же навязали зависимость от либ совместимости, но насколько я знаю уже весь софт портировали и они остались постольку-поскольку. А так вон в некоторых проектах до сих пор код не менявшийся со времён кутэ2 используется, где-то видел махровое легаси. Вот то, что половину требуемых модулей отломали, это довольно неприятно. Но нас всё это не касается, потому что у пользователей опенсорсных систем есть только дырявая и багованная 5.15.2 (спасибо эффективным менеджерам из куте, удружили).
     
     
  • 4.24, Аноним (24), 22:17, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну траблы даже с коммерческими лицухами. Пытался проект перетащить на 5.15, потом 6, в результате плюнул и пока на 5.12.10 остался. С поддержкой пообщался, в принципе, помогают, если время будет, то все решаемо. Но жеванный крот, столько проблем еще и за свои деньги. Проще и дешевле таскать либы и юзать некоммерческую версию, все равно работы с этими мажорными и даже минорными обновами чудом не пропадут, только ручками и потерей времени на причесывание :(
     
     
  • 5.38, Аноним (2), 09:37, 16/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Аналогично Сделал проект для народа типа макет для студентов для отладки расче... большой текст свёрнут, показать
     
     
  • 6.43, OlegY (ok), 13:23, 16/01/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А мои коллеги удивляются, почему выбрал версию 5.14.2
     
  • 6.46, Аноним (24), 19:10, 16/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Если новый продукт делать, то да, в сторону Qt уже глядеть не буду, тем более, что от этих фреймворков мне только гуй и нужен. В свое время все осложнялось тем, что надо было зоопарк девайсов поддерживать, в т.ч. BB10, для которой пришлось заморочиться, чтобы более-менее современные версии Qt собирались и работали. Одно время со Sciter забавлялся, лицензию на исходники купил, думал доработать поддержку мобильных устройств. Гиблое дело оказалось, хотя как замена электрону для людей мог бы сойти. По-хорошему, слишком нас этими фреймворками разбаловали, а когда вендорлок получаешь, только и остается вздыхать :) Короче, нужно свой стандарт придумывать :)
     
  • 2.44, primus2010 (?), 17:15, 16/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    После выхода Qt4 ,была статья "Qt3 -- лучшая Qt".
     

  • 1.9, Аноним (9), 20:49, 15/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    Кто эти люди великие, которые пишут программы на Qt? Назовите мне хоть одну программу на qt которую используют широко? Мы сейчаас говорит широко т.к. на Win и  Mac, мы не говорим об 1% Linux.
     
     
  • 2.10, Аноним (10), 20:54, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    QtCreqtor же!
     
  • 2.11, Аноним (7), 21:04, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Около 100% запускалок игр используют либо кути либо электрон. Но вообще, десктоп, я так понимаю, далеко не главный рынок, они делают упор на рынок автомобильных систем и там либо адок с андроидом, либо адок с винке, либо кути. Мобильный пынок что-то они успешно просирали, не знаю как сейчас. Отсутствие жабы было бы значительным преимуществом.
     
     
  • 3.17, Аноним (15), 21:40, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > Около 100% запускалок игр используют либо кути либо электрон.

    "Около 100% запускалок игр используют электрон", - вот так точнее.

     
  • 2.12, Аноним (12), 21:16, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    qBitTorrent используется очень широко, VLC Player
     
     
  • 3.27, Анончик (?), 00:26, 16/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    c VLC не так все однозначно, но да в win/lin там морда на Qt.
    Transmission можно вспомнить, морда на любой вкус
     
  • 2.13, Аноним (-), 21:18, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Назовите мне хоть одну программу на qt которую используют широко?

    telegram, vlc, krita, kde (просто господи), qbittorrent, wireshark, virtualbox, 2GIS

     
     
  • 3.14, Аноним (-), 21:24, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    погуглил - оказывается, куча где используется, в т.ч. в проприетари

    https://en.wikipedia.org/wiki/Qt_(software)

    ну и про nokia не будем забывать, святая контора была, мир её праху

     
     
  • 4.18, Аноним (15), 21:43, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > про nokia не будем забывать, святая контора была

    Вот именно, БЫЛА. Сгинула потому, что не успела мигрировать с этого кутэ.

     
     
  • 5.19, Аноним (15), 21:44, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • –5 +/
    P.S. Участи ноклы ожидают все, кто ещё пользуется кутэ.
     
     
  • 6.20, Аноним (21), 21:56, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нокию погубила MS через засланного казачка. Следуя вашей логике, Qt настолько хорошь, что это и была основная цель, чтобы устранить конкурента .NET
     
     
  • 7.23, Аноним (23), 22:03, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    *хорош
     
  • 7.25, Аноним (15), 22:33, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Начало у тебя здравое, а потом пошла хромать логика. Причины и цели сотрудничества у этих сторон совершенно разные. Для MS - расчистить дорогу гуглу и эпплу (так сказать, дружеская помощь одной амер. компании двум другим амер. компаниям). Для ноклы - пытаться справиться с кризисом из-за использования кутэ.
     
     
  • 8.31, Аноним (31), 01:55, 16/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А у тебя вообще все хромает Гугл и эпл это конкуренты MS Причина была одна - о... текст свёрнут, показать
     
  • 7.26, Аноним (15), 22:36, 15/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Qt настолько хорошь, что это и была основная цель, чтобы устранить конкурента .NET

    Ты б хоть поинтересовался, на чём пишут под андроид и айфоны...

     
     
  • 8.32, Аноним (31), 01:58, 16/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это сейчас, а в те времена MS пыталась вздететь на смартфонах И про Qt это был ... текст свёрнут, показать
     
  • 3.28, ilyafedin (ok), 00:54, 16/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Viber тоже на Qt, с Qt WebEngine
     
     
  • 4.42, Аноним (5), 12:53, 16/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    не слышал про него
     
  • 3.36, Аноним (36), 09:32, 16/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    OneDrive, MegaSync
     
  • 2.37, Аноним (36), 09:32, 16/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Partition magic home edition
     
  • 2.39, Аноним (2), 09:41, 16/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    На Qt + Python есть МИС с десятками тысяч установок.
     
     
  • 3.50, Аноним (50), 11:08, 17/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Кикие?
     
  • 2.40, InuYasha (??), 10:10, 16/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    OBS Studio
    MKVtoolnix
     
  • 2.41, Rezzet (??), 11:02, 16/01/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Battle.net клиент, WOT GAME Centre, десктопные клиенты телеграма, вайбера. Раньше скайп был, его перетащили на электрон после чего скайп стал глючным недоразумением которым невозможно пользоваться.
     
  • 2.52, adolfus (ok), 12:51, 18/01/2022 [^] [^^] [^^^] [ответить]  
  • +/
    slickedit -- мощнейший профессиональный редактор кода
    okular, например. Есть что-то более удобное и мощное?
    kate -- очень быстрый и мощный текстовый редактор с поддержкой рег. выражений.
    kile -- вообще никаких аналогов нет, особенно в связке с okular
    edb -- отладчик для nasm

    И все это по человечески работает на гетерогенных мультимониторных конфигурациях. Например, рабочая 1920x1200 + 1600x1200 + 1920x1200 и домашняя 1920x1200 + 1920x1080

     

  • 1.29, Аноним (29), 01:20, 16/01/2022 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –4 +/
     

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

  • 1.45, Аноним (45), 18:13, 16/01/2022 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +2 +/
     

  • 1.48, Аноним (48), 02:56, 17/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    У меня и на банкоматах морда на Qt написана была
     
  • 1.49, keydon (ok), 04:13, 17/01/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Qt очень далек от того чем бы я хотел пользоваться, но остальные еще дальше, увы.
     

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



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

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