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

Прадстаўлены выпуск зборачнага інструментара 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.

Крыніца: opennet.ru

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