Апублікаваны фінальны выпуск зборачнага інструментара Qbs

Кампанія Qt Company апублікавала зборачны інструментарый Qbs 1.13 (Qt Build Suite). Гэта апошні выпуск Qbs, які фармуецца кампаніяй Qt Company. Нагадаем, што раней было прынята рашэнне аб спыненні распрацоўкі Qbs. Qbs развіваўся як замена qmake, але ў канчатковым рахунку было вырашана выкарыстоўваць CMake у якасці асноўнай зборачнай сістэмы для Qt у доўгатэрміновай перспектыве.

У бліжэйшы час чакаецца стварэнне незалежнага праекта па працягу распрацоўкі Qbs сіламі супольнасці, лёс якога будзе залежаць ад цікавасці да разгляданай сістэмы зборкі з боку незалежных распрацоўшчыкаў. Qt Company спыняе працу над Qbs з-за неабходнасці дадатковых інвестыцый і вялікіх выдаткаў на прасоўванне Qbs.

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

Асноўныя навіны Qbs 1.13:

  • Дададзена магчымасць выкарыстання ў праектах модуляў pkg-config з ужываннем таго ж механізму апрацоўкі залежнасцяў, што прымяняецца для модуляў Qbs. Напрыклад, пры наяўнасці ў сістэме пакета для зборкі OpenSSL на базе pkg-config для яго выкарыстання ў праекце Qbs дастаткова дадаць 'Depends { name: «openssl» }';
  • Рэалізавана аўтаматычнае вызначэнне даступных модуляў Qt. Распрацоўнікам больш не трэба ствараць профіль са шляхамі да модуляў пры дапамозе каманды setup-qt, усе паказаныя ў залежнасцях модулі Qt будуць наладжаныя аўтаматычна;
  • Дададзены сродкі для кантролю за лікам зборачных задач, якія паралельна запускаюцца, на ўзроўні асобных каманд. Напрыклад, пры выкананні звязвання ствараецца вялікая нагрузка на ўвод/выводзь і спажываецца значны аб'ём АЗП, таму кампаноўнік патрабуе іншых налад запуску, выдатных ад кампілятара. Паасобныя налады зараз можна задаць пры дапамозе каманды "qbs -job-limits linker:2,compiler:8";
  • Унесены змены ў мову сцэнарыяў. Правілы зараз могуць вызначацца без указання файла-заглушкі для высновы, а ў пачатку файлаў праектаў не абавязкова выкарыстоўваць дырэктыву "import qbs". У элементы Application, DynamicLibrary і StaticLibrary дададзены новыя ўласцівасці install і installDir для зручнейшай усталёўкі выкананых файлаў;
  • Дададзена падтрымка рэкурсіўнага сканавання скрыптоў кампаноўніка
    GNU linker;

  • Для мовы C++ рэалізавана ўласцівасць cpp.linkerVariant для прымусовага выкарыстання кампаноўнікаў ld.gold, ld.bfd ці lld;
  • Для Qt прадстаўлена ўласцівасць Qt.core.enableBigResources для стварэння буйных рэсурсаў Qt
  • Замест састарэлага элемента AndroidApk прапанавана выкарыстоўваць агульны тып Application;
  • Дададзены модуль для стварэння тэстаў на базе autotest;
  • Дададзены модуль texttemplate з магчымасцямі, падобнымі на QMAKE_SUBSTITUTES у qmake;
  • Дададзена пачатковая падтрымка фармату Protocol Buffers для C++ і Objective-C.

Крыніца: opennet.ru

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