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

30 сентября 2026

ID cmake_lists_applied

Файл CMakeLists.txt для сборки прикладной программы должен содержать следующие команды:

  • EDL-описание класса процессов для программы можно сгенерировать, используя команду generate_edl_file().
  • Если программа предоставляет службы, используя механизм IPC, необходимо сгенерировать транспортный код:
    1. idl.h-файлы генерируются командой nk_build_idl_files()
    2. cdl.h-файлы генерируются командой nk_build_cdl_files()
    3. edl.h-файлы генерируются командой nk_build_edl_files()
  • add_executable (<имя программы> "<путь к файлу исходного кода программы>") – добавление цели для сборки программы.
  • add_dependencies (<имя программы> <имя цели сборки edl.h файла>) – добавление зависимости сборки программы от генерации edl.h-файла.
  • target_link_libraries (<имя программы> <список библиотек>) – определяет библиотеки, с которыми необходимо скомпоновать программу при сборке.

    Например, если программа использует файловый или сетевой ввод/вывод, то она должна быть скомпонована с транспортной библиотекой vfs::client.

    CMake-описания системных программ и драйверов, поставляемых в составе KasperskyOS Community Edition SDK, а также их экспортированных переменных и свойств находятся в соответствующих файлах /opt/KasperskyOS-Community-Edition-<platform>-<version>/sysroot-*-kos/lib/cmake/<имя программы>/<имя программы>Config.cmake

  • Команды CMake-библиотеки kpa для упаковки прикладной программы в KPA-пакет.

Пример файла CMakeLists.txt для сборки простой прикладной программы

CMakeLists.txt

include (platform/kpa)

# Задаем имя программы.

set (PROGRAM_NAME Hello)

set (PACKAGE ${PROGRAM_NAME}.kpa)

# Добавляем цель сборки edl.h-файла.

nk_build_edl_files (${PROGRAM_NAME}_edl_files

NK_MODULE "hello"

EDL "${NK_RESOURCES}/hello/Hello.edl")

# Определяем цель для сборки программы.

add_executable (${PROGRAM_NAME} "src/hello.c")

add_dependencies (${PROGRAM_NAME} ${PROGRAM_NAME}_edl_files)

# Упаковка прикладной программы в KPA-пакет

add_kpa_package (${PACKAGE} ID ${PROGRAM_NAME} MANIFEST_V "2")

add_kpa_component (${PACKAGE} RESOURCE ${PROGRAM_NAME} TYPE "bin")

add_kpa_component (${PACKAGE}

RUN_CONFIGURATION "default"

TYPE "application"

NAME "${PROGRAM_NAME}"

EIID "hello.${PROGRAM_NAME}"

PATH "bin/${PROGRAM_NAME}"

NO_AUTO_VFS_CONNECTION)

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