Документация
ОС Аврора 5.1.0

Конфигурация проекта с Ninja

Ninja — это быстрый и эффективный инструмент сборки, который используется для сборки проектов программного обеспечения. Он заменяет устаревшие и медленные системы сборки, такие как make или CMake. Ninja обеспечивает простой и минималистичный язык описания сборки, что делает его легким в использовании и позволяет быстро выполнять сборку проекта.

Конфигурация проекта с ninja включает определение целей сборки, задание зависимостей между файлами и определение команд, которые нужно выполнить для сборки каждой цели. На основе этой конфигурации ninja генерирует файл сборки (обычно с расширением .ninja), который затем используется для запуска сборки проекта.

Сборка проектов с использованием инструмента Ninja предоставляет различные способы, которые обеспечивают гибкость и удобство в разработке и сборке программного обеспечения.

Конфигурация проекта при использовании CMake

Конфигурация проекта с ninja может быть осуществлена вручную, но часто используются высокоуровневые инструменты, такие как CMake, которые автоматически генерируют конфигурацию с ninja на основе заданных параметров проекта. Для этого нужно вносить следующие правки в spec-файл:

  • В spec файле, система сборки будет проверять наличие пакета "ninja" на хост-системе во время сборки пакета. Поэтому необходимо добавить строчку:

    BuildRequires:  ninja
    
  • Также в зависимости сборки рекомендуется добавить cmake:

    BuildRequires: cmake
    
  • В разделе %build нужно указать инструкции, необходимые для компиляции и сборки пакета с ninja:

    %build
    %cmake -GNinja
    %ninja_build
    
  • В разделе %install настройки, которые определяют процедуру установки пакета для сборки, нужно также изменить на ninja:

    %install
    %make_install
    %ninja_install
    

Пример spec-файла для приложения MimeHandler:

Name:       ru.auroraos.MIMEHandler
Summary:    An application that demonstrates how to create and register your own MIME type handler
Version:    0.1
Release:    1
License:    BSD-3-Clause
URL:        https://auroraos.ru
Source0:    %{name}-%{version}.tar.bz2

Requires:   sailfishsilica-qt5 >= 0.10.9
Requires:   amberpdf-qml-plugin
BuildRequires:  pkgconfig(auroraapp)
BuildRequires:  pkgconfig(Qt5Core)
BuildRequires:  pkgconfig(Qt5DBus)
BuildRequires:  pkgconfig(Qt5Qml)
BuildRequires:  pkgconfig(Qt5Quick)
BuildRequires:  cmake
BuildRequires:  amberpdf
BuildRequires:  ninja

%description
Приложение, демонстрирующее, как создать и зарегистрировать собственный обработчик типа MIME.

%prep
%autosetup

%build
%cmake -GNinja
%ninja_build

%install
%ninja_install

%files
%defattr(-,root,root,-)
%{_bindir}/%{name}
%defattr(644,root,root,-)
%{_datadir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}.png

Пример .spec файла для приложения TabViewDemo.

Cборка проекта в Аврора IDE

Сборка в Аврора IDE:

  1. Открыть проект в Аврора IDE.
  2. Проверить настройки сборки и убедиться, что Ninja выбран в качестве генератора. По умолчанию в IDE выбран генератор Ninja для сборки проекта.
  3. Настроить другие параметры сборки (если необходимо).
  4. Нажать кнопку Собрать проект для начала сборки проекта.

Известная проблема при сборке CMake-проектов в SDK: IDE определяет систему сборки по возможностям компьютера разработчика, на котором запущена, а не сборочного окружения, которое используется для работы. Проблема возникает только для проектов, написанных с помощью UnixMakeFiles.

Для решения этой проблемы необходимо убрать строчку -GUnix Makefiles или -Gninja из spec-файла, а затем выполнить настройку с помощью кнопки Re-configure with initial parameters. В этом случае произойдёт поиск средства сборки согласно параметру сборки, указанному в spec-файле.

Сборка через mb2

Сборка пакетов с использованием скрипта mb2 вызывается из Build Engine. Для сборки необходимо выполнить следующие шаги:

  1. С помощью интерфейса командной строки необходимо авторизоваться в среде сборки.

    ~/AuroraOS/bin/sfdk engine exec
    
  2. Далее необходимо выполнить команду для среды сборки проекта с помощью mb2:

    mb2 -s [путь к *.spec] -t [цель] build
    

Сборка через apptool

Сборка через apptool (сборки i486, arm32, arm64):

  1. С помощью интерфейса командной строки необходимо авторизоваться в среде сборки.

    docker run -it --rm -u `id -u`:`id -g` -v "$PWD":/sources -w /sources hub.omp.ru/public/sdk-build-tools
    
  2. Выполнить команду apptool build для сборки проекта с помощью apptool и указать целевую архитектуру, если необходимо (например, --arch=i486, --arch=arm32, --arch=arm64).

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.