Использование CMake из состава KasperskyOS Community Edition

Для автоматизации процесса подготовки образа решения нужно настроить систему сборки CMake. За основу можно взять параметры системы сборки, используемые в примерах из состава KasperskyOS Community Edition.

В файлах CMakeLists.txt используется стандартный синтаксис CMake, а также команды и макросы из библиотек, поставляемых в KasperskyOS Community Edition.

Рекомендованная структура директорий проекта

При создании решения на базе KasperskyOS рекомендуется использовать следующую структуру директорий в проекте:

Пример структуры директорий проекта

example$ tree

.

├── CMakeLists.txt

├── hello

│ ├── CMakeLists.txt

│ ├── src

│ │ ├── hello.c

├── einit

│ ├── CMakeLists.txt

│ ├── src

│ │ ├── init.yaml.in

│ │ ├── security.psl.in

├── resources

│ ├──xdl

│ ├── Hello.idl

│ ├── Hello.cdl

│ ├── Hello.edl

Сборка образа решения

Чтобы выполнить сборку образа решения, нужно использовать утилиту cmake (исполняемый файл toolchain/bin/cmake из состава KasperskyOS Community Edition).

Пример сборки:

# Сведения о параметрах запуска утилиты cmake можно

# получить командой cmake --help, а также из

# официальной документации по CMake.

# Перед сборкой необходимо установить значения переменных окружения.

$ source /opt/KasperskyOS-Community-Edition-<platform>-<version>/common/set_env.sh

# Инициализация системы сборки

$ cmake -B build -D CMAKE_TOOLCHAIN_FILE="$KOSCEDIR/toolchain/share/toolchain-aarch64-kos.cmake"

# Сборка

# Чтобы собрать образ решения для QEMU, нужно указать цель, заданную в

# параметре NAME CMake-команды build_kos_qemu_image() в файле CMakeLists.txt

# для сборки программы Einit.

# Чтобы собрать образ решения для аппаратной платформы, нужно указать цель,

# заданную в параметре NAME CMake-команды build_kos_hw_image() в файле

# CMakeLists.txt для сборки программы Einit.

# Чтобы собрать образ SD-карты для аппаратной платформы, нужно указать цель,

# заданную в параметре IMAGE_NAME CMake-команды build_sd_image() в файле

# CMakeLists.txt для сборки программы Einit.

# Чтобы собрать образ решения для QEMU и запустить QEMU с этим образом, нужно

# указать цель sim.

$ cmake --build build --target sim

В этом разделе

Корневой файл CMakeLists.txt

Файлы CMakeLists.txt для сборки прикладных программ

Файл CMakeLists.txt для сборки программы Einit

Шаблон init.yaml.in

Шаблон security.psl.in

В начало