Представлен выпуск сборочного инструментария Qbs 2.0. Для сборки Qbs в числе зависимостей требуется Qt, хотя сам Qbs рассчитан на организацию сборки любых проектов. Qbs использует упрощённый вариант языка QML для определения сценариев сборки проекта, что позволяет определять достаточно гибкие правила сборки, в которых могут подключаться внешние модули, использоваться функции на JavaScript и создаваться произвольные правила сборки.
Gjuha e skenarëve e përdorur në Qbs është adaptuar për automatizimin e gjenerimit dhe analizës së skenarëve të ndërtimit nga mjediset e integruara të zhvillimit. Për më tepër, Qbs nuk gjeneron skedarë make, por vetë, pa ndërmjetës, siç është utilitarja make, kontrollon ekzekutimin e kompilatorëve dhe lidhësve, duke optimizuar procesin e ndërtimit mbi një grafik të detajuar të të gjitha varësive. Prania e të dhënave fillestare mbi strukturën dhe varësitë në projekt lejon ekzekutimin efektiv të operacioneve në disa mënyra. Për projektet e mëdha, të cilat përbëhen nga një numër të madh skedash dhe nën direktorish, performanca e ripërtëritjes së përdorimit të Qbs mund të përmbushë me shumë më tepër se make - ripërtëritja realizohet pothuajse menjëherë dhe nuk e bën zhvilluesin të kalojë kohë duke pritur.
Напомним, что в 2018 году компанией Qt Company было принято решение о прекращении разработки Qbs. Qbs развивался как замена qmake, но в конечном счёте было решено использовать CMake в качестве основной сборочной системы для Qt в долгосрочной перспективе. Разработка Qbs теперь продолжена в форме независимого проекта, поддерживаемого силами сообщества и заинтересованными разработчиками. Для разработки пока продолжает использоваться инфраструктура Qt Company.
Значительное изменение номера версии связано с реализацией нового JavaScript-бэкенда, который пришёл на смену QtScript, объявленному устаревшим в Qt 6. Продолжать сопровождение QtScript своими силами из-за сложных привязок к JavaScriptCore признано нереалистичным, поэтому в качестве основы для нового бэкенда выбран самодостаточный и компактный JavaScript-движок QuickJS, созданный Фабрисом Белларом (Fabrice Bellard), основавшим в своё время проекты QEMU и FFmpeg. Движок поддерживает спецификацию ES2019 и по производительности заметно превосходит имеющиеся аналоги (XS на 35%, DukTape более чем в два раза, JerryScript в три раза, а MuJS в семь раз).
С точки зрения разработки сборочных сценариев переход на новый движок не должен привести к заметным изменениям. Производительность также сохранится примерно на том же уровне. Из отличий отмечаются более строгие требования в новом движке к использованию неопределённых значений, что может выявить проблемы в имеющихся проектах, которые оставались незамеченными при использовании QtScript.
Burimi: opennet.ru
