Опубліковано фінальний випуск складального інструментарію 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

Додати коментар або відгук