Выпуск зборачнага інструментара Qbs 2.0

Прадстаўлены выпуск зборачнага інструментара Qbs 2.0. Для зборкі Qbs у ліку залежнасцяў патрабуецца Qt, хоць сам Qbs разлічаны на арганізацыю зборкі любых праектаў. Qbs выкарыстоўвае спрошчаны варыянт мовы QML для вызначэння сцэнарыяў зборкі праекта, што дазваляе вызначаць дастаткова гнуткія правілы зборкі, у якіх могуць падключацца знешнія модулі, выкарыстоўвацца функцыі на JavaScript і стварацца адвольныя правілы зборкі.

Выкарыстоўваны ў Qbs мова сцэнарыяў адаптаваны для аўтаматызацыі генерацыі і разбору сцэнарыяў зборкі інтэграванымі асяроддзямі распрацоўкі. Акрамя таго, Qbs не генеруе make-файлы, а сам, без пасярэднікаў, такіх як утыліта make, кантралюе запуск кампілятараў і кампаноўнікаў, аптымізуючы працэс зборкі на аснове дэталёвага графа ўсіх залежнасцяў. Наяўнасць першапачатковых дадзеных аб структуры і залежнасцях у праекце дазваляе эфектыўна распаралельваць выкананне аперацый у некалькі патокаў. Для буйных праектаў, якія складаюцца з вялікай колькасці файлаў і паддырэкторый, прадукцыйнасць паўторнай перазборкі з выкарыстаннем Qbs можа апярэджваць make у разы – перазборка выконваецца амаль імгненна і не прымушае распрацоўніка марнаваць час на чаканне.

Нагадаем, што ў 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.

Крыніца: opennet.ru

Дадаць каментар