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

30 сентября 2026

ID cmake_using_sdk_cmake

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

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

При сборке с помощью CMake по умолчанию применяются флаги -Wall -Wextra -Wconversion -Wsign-conversion -Wformat=2 -Wformat-security -Werror=format-security -fPIE

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

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

  • В корне проекта создать корневой файл CMakeLists.txt, содержащий общие инструкции сборки для всего решения.
  • Исходный код каждой из разрабатываемых программ следует разместить в отдельной директории, в поддиректории src.
  • Создать файлы CMakeLists.txt для сборки каждой прикладной программы в соответствующих директориях.
  • Создать отдельную директорию einit, содержащую поддиректорию src, в которую следует поместить описание политики безопасности решения security.psl.

    Также в эту директорию можно поместить любые другие файлы, которые необходимо включить в образ решения, например файлы настроек initial_install.json и system_services.json для системной программы ServiceManager.

  • Создать файл CMakeLists.txt для сборки образа решения.
  • Файлы EDL-, CDL- и IDL-описаний следует разместить в директории resources/xdl/ в корне проекта. (EDL-описание можно сгенерировать во время сборки, используя команду generate_edl_file().)

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

example$ tree

.

├── CMakeLists.txt

├── hello

│ ├── CMakeLists.txt

│ ├── src

│ │ ├── hello.c

├── einit

│ ├── CMakeLists.txt

│ ├── src

│ │ ├── initial_install.json

│ │ ├── security.psl

│ │ ├── system_services.json

├── resources

│ ├──xdl

│ ├── Hello.idl

│ ├── Hello.cdl

│ ├── Hello.edl

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

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

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

# Сведения о параметрах запуска утилиты 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-*-kos.cmake"

# Сборка

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

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

$ cmake --build build --target sim

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!