Корневой файл CMakeLists.txt
содержит общие инструкции сборки для всего решения.
Корневой файл CMakeLists.txt
должен содержать следующие команды:
cmake_minimum_required (VERSION 3.25)
– указание минимальной поддерживаемой версии CMake
.Для сборки решения на базе KasperskyOS требуется CMake
версии не ниже 3.25.
Требуемая версия CMake
поставляется в составе KasperskyOS Community Edition и используется по умолчанию.
include (platform)
– подключение CMake
-библиотеки platform
.initialize_platform()
– инициализация библиотеки platform
.project_header_default("STANDARD_GNU_11:YES" "STRICT_WARNINGS:NO"
) – установка флагов компилятора и компоновщика.find_package()
.include_directories()
.set_target_properties()
.CMake
-описания системных программ и драйверов, поставляемых в составе KasperskyOS Community Edition, а также их экспортируемых переменных и свойств находятся в соответствующих файлах /opt/KasperskyOS-Community-Edition-<version>/sysroot-aarch64-kos/lib/cmake/<имя программы>/<имя программы>-config.cmake
Einit
должна быть выполнена с помощью команды add_subdirectory(einit)
.add_subdirectory(<имя директории программы>)
.Пример корневого файла CMakeLists.txt
CMakeLists.txt
cmake_minimum_required(VERSION 3.12)
project (example)
# Инициализация библиотеки CMake для KasperskyOS SDK.
include (platform)
initialize_platform ()
project_header_default ("STANDARD_GNU_11:YES" "STRICT_WARNINGS:NO")
# Подключение пакета, импортирующего компоненты для работы с виртуальной файловой системой.
# Компоненты импортируются из папки: /opt/KasperskyOS-Community-Edition-<version>/sysroot-aarch64-kos/lib/cmake/vfs/vfs-config.cmake
find_package (vfs REQUIRED COMPONENTS ENTITY CLIENT_LIB)
include_directories (${vfs_INCLUDE})
# Подключение пакета, импортирующего компоненты для сборки программы аудита и
# подключения к ней.
find_package (klog REQUIRED)
include_directories (${klog_INCLUDE})
# Сборка инициализирующей программы Einit
add_subdirectory (einit)
# Сборка прикладной программы hello
add_subdirectory (hello)
В начало