The CMakeLists.txt
root file contains general build instructions for the entire solution.
The CMakeLists.txt
root file must contain the following commands:
cmake_minimum_required (VERSION 3.25)
indicates the minimum supported version of CMake
.For a KasperskyOS-based solution build, CMake
version 3.25 or later is required.
The required version of CMake
is provided in KasperskyOS Community Edition and is used by default.
include (platform)
connects the platform
library of CMake
.initialize_platform()
initializes the platform
library.project_header_default
("STANDARD_GNU_17:YES" "STRICT_WARNINGS:NO"
) sets the flags of the compiler and linker.find_package()
command.include_directories()
command.set_target_properties()
command.CMake
descriptions of system programs and drivers provided in KasperskyOS Community Edition, and descriptions of their exported variables and properties are located in the corresponding files at /opt/KasperskyOS-Community-Edition-<version>/sysroot-*-kos/lib/cmake/<program name>/<program name>-config.cmake
Einit
initializing program must be built using the add_subdirectory(einit)
command.add_subdirectory(<program directory name>)
command.Example CMakeLists.txt root file
CMakeLists.txt
cmake_minimum_required(VERSION 3.25)
project (example)
# Initializes the CMake library for the KasperskyOS SDK.
include (platform)
initialize_platform ()
# Set the linker and compiler flags.
project_header_default ("STANDARD_GNU_17:YES" "STRICT_WARNINGS:NO")
# Add package importing components for working with Virtual File System.
# Components are imported from the following file: /opt/KasperskyOS-Community-Edition-<version>/sysroot-*-kos/lib/cmake/vfs/vfs-config.cmake
find_package (vfs REQUIRED COMPONENTS ENTITY CLIENT_LIB)
include_directories (${vfs_INCLUDE})
# Build the Hello application.
add_subdirectory (hello)
# Build the Einit initializing program.
add_subdirectory (einit)
Page top