Build Tools
Аврора BT (Build Tools) — следующее поколение инструментов кросс сборки приложения для ОС Аврора. Это вариант поставки, позволяющий использовать инструменты кросс-компиляции.
Содержание
- Особенности
- Работа с Build Tools без установки Аврора SDK
- Работа с Build Tools после установки Аврора SDK
- Ограничения
Особенности
BT поставляется в Docker-образе, содержит в своём составе все необходимые инструменты сборки и имеет следующие особенности:
- Сформированы
sysroots
для всех поддерживаемых платформ (aarch64, armv7hl, x86_64). - Имеет в составе кросс-компиляторы для всех поддерживаемых платформ.
- Имеет набор макросов для кросс-компиляции qmake-проектов.
- Фиксирован и привязан к релизу ОС. Отсутствуют механизмы обновления и доустановки пакетов из репозиториев. Добавить инструменты можно, собрав их из исходников и сохранив как дополнительный слой для Docker-образа. Docker-образ поставляется в составе Аврора SDK в качестве движка сборки. Инструкция по установке Docker для различных ОС находится в разделе Установка Docker.
- Основной инструмент сборки в SDK (BT) — apptool.
Работа с Build Tools без установки Аврора SDK
Build Tools можно использовать без установки Аврора SDK (BT). Для этого необходимо скачать docker-образ Aврора BT, выполнив команду:
docker pull <URL_откуда_скачивать>:<номер_релиза>
Пример:
docker pull hub.omp.ru/public/sdk-build-tools:5.1.0
Работа с Build Tools после установки Аврора SDK
Build Tools также можно использовать, установив Аврора SDK (BT). Для создания нового проекта и его сборки с помощью Build Tools в Docker-контейнере нужно:
- Установить Docker.
- Скачать установочный файл Аврора BT из раздела «Загрузки».
- Запустить мастер установки. Шаги установки Аврора BT аналогичны шагам установки Аврора SDK с инструментом сборки mb2. Единственное отличие — технология виртуализации по умолчанию Docker.
- Создать первый проект в Аврора IDE.
- Запустить приложение.
В результате успешной сборки в директории проекта появится папка RPMS:
Данная директория содержит RPM-пакеты с архитектурами aarch64, armv7hl и x86_64.
При разработке приложения с помощью Аврора BT необходимо в spec-файле вручную установить флаги для файлов:
%files
%defattr(-,root,root,-)
%{_bindir}/%{name}
%defattr(644,root,root,-)
%{_datadir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}.png
Если не прописать установку флагов с помощью defattr
, то валидатор на Windows и macOS будет
выдавать ошибку:
107 blocks
(ERROR) [/usr/share/applications/ru.template.untitled.desktop] Executable has a wrong format or encoding
(ERROR) [/usr/share/icons/hicolor/108x108/apps/ru.template.untitled.png] Executable has a wrong format or encoding
...
(ERROR) [/usr/share/applications/ru.template.untitled.desktop] File must not be executable
(ERROR) [/usr/share/icons/hicolor/108x108/apps/ru.template.untitled.png] File must not be executable
...
Это связано с тем, что на Windows и macOS при запуске в докер-контейнере теряются флаги r,w,x у файлов из-за различий в файловых системах.
Ограничения
В интегрированной среде разработки (IDE) при использовании SDK (BT) есть вероятность столкнуться с определёнными проблемами и ограничениями, которые необходимо учитывать при работе, а именно:
- Docker Desktop либо служба Docker должна быть запущена;
- на MacOS при использовании в качестве workspace домашней папки появляется предупреждение безопасности и монтировании всей папки в Docker, а также запрашивается доступ к файлам.