Содержание
Библиотеки CMake в составе KasperskyOS Community Edition
Этот раздел содержит описание библиотек, поставляемых в KasperskyOS Community Edition и предназначенных для автоматизации сборки решения на базе KasperskyOS.
Библиотека platform
Библиотека platform
содержит следующие команды:
initialize_platform()
– команда для инициализации библиотекиplatform
.Команда
initialize_platform()
может вызываться с параметромFORCE_STATIC
, который включает принудительную статическую компоновку исполняемых файлов:- По умолчанию, если тулчейн в составе KasperskyOS SDK поддерживает динамическую компоновку, то команда
initialize_platform()
делает так, что для сборки всех исполняемых файлов, заданных черезCMake
-командыadd_executable()
, флаг-rdynamic
используется автоматически. - При вызове
initialize_platform (FORCE_STATIC)
в корневом файлеCMakeLists.txt
тулчейн, поддерживающий динамическую компоновку, выполняет статическую компоновку исполняемых файлов.
Команда
initialize_platform()
может вызываться с параметромNO_NEW_VERSION_CHECK
, который отключает проверку наличия обновлений SDK и передачу версии SDK на сервер "Лаборатории Касперского".Чтобы отключить проверку наличия обновлений SDK и передачу данных версии SDK на сервер Kaspersky при сборке решения используйте следующий вызов:
initialize_platform(NO_NEW_VERSION_CHECK)
. Подробнее о политике предоставления данных см. "Предоставление данных".- По умолчанию, если тулчейн в составе KasperskyOS SDK поддерживает динамическую компоновку, то команда
project_static_executable_header_default()
– команда для включения принудительной статической компоновки исполняемых файлов, заданных через последующиеCMake
-командыadd_executable()
в одном файлеCMakeLists.txt
. Тулчейн, поддерживающий динамическую компоновку, выполняет статическую компоновку этих исполняемых файлов.platform_target_force_static()
– команда для включения принудительной статической компоновки исполняемого файла, заданного черезCMake
-командуadd_executable()
. Тулчейн, поддерживающий динамическую компоновку, выполняет статическую компоновку этого исполняемого файла. Например, если вызываютсяCMake
-командыadd_executable(client "src/client.c")
иplatform_target_force_static(client)
, то для программыclient
выполняется статическая компоновка.project_header_default()
– команда для указания флагов компиляции.Параметры команды задаются в виде пар, состоящих из флага компиляции и его значения:
"FLAG_1:VALUE_1"
"FLAG_2:VALUE_2"
..."FLAG_N:VALUE_N"
.CMake
-библиотекаplatform
преобразует эти пары в параметры компилятора.
При использовании команд initialize_platform(FORCE_STATIC)
, project_static_executable_header_default()
и platform_target_force_static()
могут возникать ошибки компоновки, если статический вариант требуемых библиотек отсутствует (например, не собран или не поставлен в составе KasperskyOS SDK). Но даже при наличии статического варианта требуемых библиотек эти ошибки могут возникать из-за того, что при использовании команд initialize_platform(FORCE_STATIC)
, project_static_executable_header_default()
и platform_target_force_static()
система сборки по умолчанию может выполнять поиск динамического варианта требуемых библиотек, а не статического, как ожидается. Чтобы избежать ошибок, нужно, во-первых, обеспечить наличие статического варианта требуемых библиотек, во-вторых, настроить систему сборки на поиск статических библиотек (для некоторых библиотек этой возможности может не быть) либо явно задавать компоновку со статическими библиотеками.
Примеры настройки системы сборки на поиск статических библиотек:
Пример, в котором явно задана компоновка со статической библиотекой:
Подробнее об использовании динамических библиотек см. "Использование динамических библиотек".
Эти команды используются в файлах CmakeLists.txt
для программы Einit и прикладных программ.
Библиотека nk
Этот раздел содержит описание команд и макросов CMake
-библиотеки для работы с компилятором NK.
generate_edl_file()
Команда объявлена в файле /opt/KasperskyOS-Community-Edition-<version>/toolchain/share/cmake/Modules/platform/nk2.cmake
.
Команда генерирует EDL-файл с описанием класса процессов.
Параметры:
NAME
– имя создаваемого EDL-файла. Обязательный параметр.PREFIX
– в этом параметре необходимо указать имя класса процессов, исключив из него имя EDL-файла. Например, если имя класса процессов, для которого создается EDL-файл, определено какkl.core.NameServer
, то в параметреPREFIX
необходимо передать значениеkl.core
.EDL_COMPONENTS
– имя компонента и его экземпляра, которые будут включены в EDL-файл. Например:EDL_COMPONENTS "env: kl.Env"
. Для включения нескольких компонентов нужно использовать несколько параметровEDL_COMPONENTS
.SECURITY
– квалифицированное имя метода интерфейса безопасности, который будет включен в EDL-файл.OUTPUT_DIR
– директория, где будет создан EDL-файл. По умолчанию${CMAKE_CURRENT_BINARY_DIR}
.
В результате работы команды переменная EDL_FILE
экспортируется и содержит путь до сгенерированного EDL-файла.
Пример вызова:
Пример использования команды см. в статье "Файлы CMakeLists.txt для сборки прикладных программ".
В началоnk_build_idl_files()
Команда объявлена в файле /opt/KasperskyOS-Community-Edition-<version>/toolchain/share/cmake/Modules/platform/nk2.cmake
.
Команда создает CMake
-цель для генерации .idl.h
-файлов для одного или нескольких заданных IDL-файлов при помощи компилятора NK.
Параметры:
NAME
– имяCMake
-цели для сборки.idl.h
-файлов. Если цель еще не создана, то она будет создана с помощьюadd_library()
с указанным именем. Обязательный параметр.NOINSTALL
– если указана эта опция, то файлы будут только сгенерированы в рабочей директории, но не будут установлены в глобальные директории:${CMAKE_BINARY_DIR}/_headers_ ${CMAKE_BINARY_DIR}/_headers_/${PROJECT_NAME}
.NK_MODULE
– в этом параметре необходимо указать имя пакета, исключив из него имя IDL-файла. Например, если в IDL-описании имя пакета задано какkl.core.NameServer
, то в параметреNK_MODULE
необходимо передать значениеkl.core
.WORKING_DIRECTORY
– рабочая директория для вызова компилятора NK, по умолчанию:${CMAKE_CURRENT_BINARY_DIR}
.DEPENDS
– дополнительные цели сборки, от которых зависит IDL-файл.Для добавления нескольких целей нужно использовать несколько параметров
DEPENDS
.IDL
– путь к IDL-файлу, для которого генерируется idl.h-файл. Обязательный параметр.Для добавления нескольких IDL-файлов нужно использовать несколько параметров
IDL
.Если один IDL-файл импортирует другой IDL-файл, то генерацию idl.h-файлов нужно производить в порядке, необходимом для соблюдения зависимостей (сначала самые вложенные).
NK_FLAGS
– дополнительные флаги для NK компилятора.
Пример вызова:
Пример использования команды см. в статье "Файлы CMakeLists.txt для сборки прикладных программ".
В началоnk_build_cdl_files()
Команда объявлена в файле /opt/KasperskyOS-Community-Edition-<version>/toolchain/share/cmake/Modules/platform/nk2.cmake
.
Команда создает CMake
-цель для генерации .cdl.h
-файлов для одного или нескольких заданных CDL-файлов при помощи компилятора NK.
Параметры:
NAME
– имяCMake
-цели для сборки.cdl.h
-файлов. Если цель еще не создана, то она будет создана с помощьюadd_library()
с указанным именем. Обязательный параметр.NOINSTALL
– если указана эта опция, то файлы будут только сгенерированы в рабочей директории, но не установлены в глобальные директории:${CMAKE_BINARY_DIR}/_headers_ ${CMAKE_BINARY_DIR}/_headers_/${PROJECT_NAME}
.IDL_TARGET
– цель сборки.idl.h
-файлов для IDL-файлов, содержащих описания служб, предоставляемых компонентами, описанными в CDL-файлах.NK_MODULE
– в этом параметре необходимо указать имя компонента, исключив из него имя CDL-файла. Например, если в CDL-описании имя компонента задано какkl.core.NameServer
, то в параметреNK_MODULE
необходимо передать значениеkl.core
.WORKING_DIRECTORY
– рабочая директория для вызова компилятора NK, по умолчанию:${CMAKE_CURRENT_BINARY_DIR}
.DEPENDS
– дополнительные цели сборки, от которых зависит CDL-файл.Для добавления нескольких целей нужно использовать несколько параметров
DEPENDS
.CDL
– путь к CDL-файлу, для которого генерируется.cdl.h
-файл. Обязательный параметр.Для добавления нескольких CDL-файлов нужно использовать несколько параметров
CDL
.NK_FLAGS
– дополнительные флаги для NK компилятора.
Пример вызова:
Пример использования команды см. в статье "Файлы CMakeLists.txt для сборки прикладных программ".
В началоnk_build_edl_files()
Команда объявлена в файле /opt/KasperskyOS-Community-Edition-<version>/toolchain/share/cmake/Modules/platform/nk2.cmake
.
Команда создает CMake
-цель для генерации .edl.h
-файла для одного заданного EDL-файла при помощи компилятора NK.
Параметры:
NAME
– имяCMake
-цели сборки.edl.h
-файла. Если цель еще не создана, то она будет создана с помощьюadd_library()
с указанным именем. Обязательный параметр.NOINSTALL
– если указана эта опция, то файлы будут только сгенерированы в рабочей директории, но не установлены в глобальные директории:${CMAKE_BINARY_DIR}/_headers_ ${CMAKE_BINARY_DIR}/_headers_/${PROJECT_NAME}
.CDL_TARGET
– цель сборки.cdl.h
-файлов для CDL-файлов, содержащих описания компонентов EDL-файла, для которого выполняется сборка.IDL_TARGET
– цель сборки .idl.h-файлов для IDL-файлов, содержащих описания интерфейсов EDL-файла, для которого выполняется сборка.NK_MODULE
– в этом параметре необходимо указать имя класса процессов, исключив из него имя EDL-файла. Например, если в EDL-описании имя класса процессов задано какkl.core.NameServer
, то в параметреNK_MODULE
необходимо передать значениеkl.core
.WORKING_DIRECTORY
– рабочая директория для вызова компилятора NK, по умолчанию:${CMAKE_CURRENT_BINARY_DIR}
.DEPENDS
– дополнительные цели сборки, от которых зависит EDL-файл.Для добавления нескольких целей нужно использовать несколько параметров
DEPENDS
.EDL
– путь к EDL файлу, для которого генерируется edl.h-файл. Обязательный параметр.NK_FLAGS
– дополнительные флаги для NK компилятора.
Примеры вызова:
Пример использования команды см. в статье "Файлы CMakeLists.txt для сборки прикладных программ".
В началоГенерация транспортного кода для разработки на языке C++
Для генерации транспортных прокси-объектов и стабов с помощью генератора nkppmeta
при сборке решения используются CMake
-команды add_nk_idl(), add_nk_cdl() и add_nk_edl().
add_nk_idl()
Команда объявлена в файле /opt/KasperskyOS-Community-Edition-<version>/toolchain/share/cmake/Modules/platform/nk2.cmake
.
Команда создает CMake
-цель для генерации заголовочного файла *.idl.cpp.h
для заданного IDL-файла при помощи компилятора nkppmeta
. Также команда создает библиотеку, содержащую транспортный код для заданного интерфейса. Для компоновки с этой библиотекой необходимо использовать команду bind_nk_targets()
.
Генерируемые заголовочные файлы содержат представление на языке C++ для интерфейса и типов данных, описанных в IDL-файле, а также методы, необходимые для использования прокси-объектов и стабов.
Параметры:
NAME
– имяCMake
-цели. Обязательный параметр.IDL_FILE
– путь к IDL-файлу. Обязательный параметр.NK_MODULE
– в этом параметре необходимо указать имя пакета, исключив из него имя IDL-файла. Например, если в IDL-описании имя пакета задано какkl.core.NameServer
, то в параметреNK_MODULE
необходимо передать значениеkl.core
.LANG
– в этом параметре необходимо указать значениеCXX
.
Пример вызова:
add_nk_cdl()
Команда объявлена в файле /opt/KasperskyOS-Community-Edition-<version>/toolchain/share/cmake/Modules/platform/nk2.cmake
.
Команда создает CMake
-цель для генерации файла *.cdl.cpp.h
для заданного CDL-файла при помощи компилятора nkppmeta
. Команда также создает библиотеку, содержащую транспортный код для заданного компонента. Для компоновки с этой библиотекой необходимо использовать команду bind_nk_targets()
.
Файл *.cdl.cpp.h
содержит дерево вложенных компонентов и служб, предоставляемых компонентом, описанным в CDL-файле.
Параметры:
NAME
– имяCMake
-цели. Обязательный параметр.CDL_FILE
– путь к CDL-файлу. Обязательный параметр.NK_MODULE
– в этом параметре необходимо указать имя компонента, исключив из него имя CDL-файла. Например, если в CDL-описании имя компонента задано какkl.core.NameServer
, то в параметреNK_MODULE
необходимо передать значениеkl.core
.LANG
– в этом параметре необходимо указать значениеCXX
.
Пример вызова:
add_nk_edl()
Команда объявлена в файле /opt/KasperskyOS-Community-Edition-<version>/toolchain/share/cmake/Modules/platform/nk2.cmake
.
Команда создает CMake
-цель для генерации файла *.edl.cpp.h
для заданного EDL-файла при помощи компилятора nkppmeta
. Также команда создает библиотеку, содержащую транспортный код для серверной или клиентской программы. Для компоновки с этой библиотекой необходимо использовать команду bind_nk_targets()
.
Файл *.edl.cpp.h
содержит дерево вложенных компонентов и служб, предоставляемых классом процессов, описанным в EDL-файле.
Параметры:
NAME
– имяCMake
-цели. Обязательный параметр.EDL_FILE
– путь к EDL-файлу. Обязательный параметр.NK_MODULE
– в этом параметре необходимо указать имя класса процессов, исключив из него имя EDL-файла. Например, если в EDL-описании имя класса процессов задано какkl.core.NameServer
, то в параметреNK_MODULE
необходимо передать значениеkl.core
.LANG
– в этом параметре необходимо указать значениеCXX
.
Пример вызова:
Библиотека image
Этот раздел содержит описание команд и макросов CMake
-библиотеки image
, входящей в состав KasperskyOS Community Edition и содержащей скрипты сборки образа решения.
build_kos_qemu_image()
Команда объявлена в файле /opt/KasperskyOS-Community-Edition-<version>/toolchain/share/cmake/Modules/platform/image.cmake
.
Команда создает CMake
-цель сборки образа решения для QEMU.
Параметры:
NAME
– имяCMake
-цели для сборки образа решения. Обязательный параметр.PERFCNT_KERNEL
– использовать ядро со счетчиками производительности, если оно доступно в составе KasperskyOS Community Edition.EINIT_ENTITY
– имя исполняемого файла, из которого будет запускаться программаEinit
.EXTRA_XDL_DIR
– дополнительные директории для включения при сборке программыEinit
.CONNECTIONS_CFG
– путь до файлаinit.yaml
или шаблона init.yaml.in.SECURITY_PSL
– путь до файлаsecurity.psl
или шаблона security.psl.in.KLOG_ENTITY
– цель сборки системной программыKlog
, отвечающей за аудит безопасности. Если цель не указана – аудит не выполняется.QEMU_FLAGS
– дополнительные флаги для запуска QEMU.IMAGE_BINARY_DIR_BIN
– директория для финального образа и других артефактов, по умолчанию совпадает сCMAKE_CURRENT_BINARY_DIR
.NO_AUTO_BLOB_CONTAINER
– не включать в образ решения программуBlobContainer
, необходимую для работы с динамическими библиотеками в разделяемой памяти. Подробнее см. "Включение системной программы BlobContainer в решение на базе KasperskyOS".PACK_DEPS
,PACK_DEPS_COPY_ONLY
,PACK_DEPS_LIBS_PATH
,PACK_DEPS_COPY_TARGET
– параметры, задающие способ добавления динамических библиотек в образ решения.GINGER_ENABLE
– включить (GINGER_ENABLE TRUE
) или выключить (GINGER_ENABLE FALSE
) шаблонизатор Ginger.GINGER_DEFINITIONS
– набор переменных, используемых при раскрытии PSL-шаблонов Ginger. Например,GINGER_DEFINITIONS "foo=bar baz=quux USE_DYNLD"
задает переменнуюfoo
со значениемbar
, переменнуюbaz
со значениемquux
и переменнуюUSE_DYNLD
со значениемTRUE
. ПеременнаяUSE_DYNLD
имеет значениемTRUE
, поскольку переменные, используемые при раскрытии PSL-шаблонов Ginger, по умолчанию имеют значениеTRUE
.GINGER_DUMP_DIR
– путь к директории, где будут сохранены PSL-файлы, полученные из PSL-шаблонов Ginger. Эти PSL-файлы нужны только для того, чтобы проверить, что получилось в результате раскрытия PSL-шаблонов Ginger, и не используются для генерации исходного кода модуля безопасности Kaspersky Security Module. (При генерации исходного кода модуля безопасности PSL-шаблоны Ginger раскрываются в памяти независимо от того, используется параметрGINGER_DUMP_DIR
или нет.) Имена PSL-файлов формируются на основе абсолютных путей к PSL-шаблонам Ginger. Например, PSL-файлfoo!bar!baz.psl
соответствует PSL-шаблону Ginger, расположенному по пути/foo/bar/baz.psl
.IMAGE_FILES
– исполняемые файлы прикладных и системных программ (кроме программыEinit
) и любые другие файлы для добавления в образ ROMFS.Для добавления нескольких программ или файлов можно использовать несколько параметров
IMAGE_FILES
.<пути до файлов>
– свободные параметры, тоже чтоIMAGE_FILES
.
Пример вызова:
Пример использования команды см. в статье "Файлы CMakeLists.txt для сборки программы Einit".
В началоbuild_kos_hw_image()
Команда объявлена в файле /opt/KasperskyOS-Community-Edition-<version>/toolchain/share/cmake/Modules/platform/image.cmake
.
Команда создает CMake
-цель сборки образа решения для аппаратной платформы.
Параметры:
NAME
– имяCMake
-цели для сборки образа решения. Обязательный параметр.PERFCNT_KERNEL
– использовать ядро со счетчиками производительности, если оно доступно в составе KasperskyOS Community Edition.EINIT_ENTITY
– имя исполняемого файла, из которого будет запускаться программаEinit
.EXTRA_XDL_DIR
– дополнительные директории для включения при сборке программыEinit
.CONNECTIONS_CFG
– путь до файла init.yaml или шаблона init.yaml.in.SECURITY_PSL
– путь до файла security.psl или шаблона security.psl.in.KLOG_ENTITY
– цель сборки системной программыKlog
, отвечающей за аудит безопасности. Если цель не указана – аудит не выполняется.IMAGE_BINARY_DIR_BIN
– директория для финального образа и других артефактов, по умолчаниюCMAKE_CURRENT_BINARY_DIR
.NO_AUTO_BLOB_CONTAINER
– не включать в образ решения программуBlobContainer
, необходимую для работы с динамическими библиотеками в разделяемой памяти. Подробнее см. "Включение системной программы BlobContainer в решение на базе KasperskyOS".PACK_DEPS
,PACK_DEPS_COPY_ONLY
,PACK_DEPS_LIBS_PATH
,PACK_DEPS_COPY_TARGET
– параметры, задающие способ добавления динамических библиотек в образ решения.GINGER_ENABLE
– включить (GINGER_ENABLE TRUE
) или выключить (GINGER_ENABLE FALSE
) шаблонизатор Ginger.GINGER_DEFINITIONS
– набор переменных, используемых при раскрытии PSL-шаблонов Ginger. Например,GINGER_DEFINITIONS "foo=bar baz=quux USE_DYNLD"
задает переменнуюfoo
со значениемbar
, переменнуюbaz
со значениемquux
и переменнуюUSE_DYNLD
со значениемTRUE
. ПеременнаяUSE_DYNLD
имеет значениемTRUE
, поскольку переменные, используемые при раскрытии PSL-шаблонов Ginger, по умолчанию имеют значениеTRUE
.GINGER_DUMP_DIR
– путь к директории, где будут сохранены PSL-файлы, полученные из PSL-шаблонов Ginger. Эти PSL-файлы нужны только для того, чтобы проверить, что получилось в результате раскрытия PSL-шаблонов Ginger, и не используются для генерации исходного кода модуля безопасности Kaspersky Security Module. (При генерации исходного кода модуля безопасности PSL-шаблоны Ginger раскрываются в памяти независимо от того, используется параметрGINGER_DUMP_DIR
или нет.) Имена PSL-файлов формируются на основе абсолютных путей к PSL-шаблонам Ginger. Например, PSL-файлfoo!bar!baz.psl
соответствует PSL-шаблону Ginger, расположенному по пути/foo/bar/baz.psl
.IMAGE_FILES
– исполняемые файлы прикладных и системных программ (кроме программыEinit
) и любые другие файлы для добавления в образ ROMFS.Для добавления нескольких программ или файлов можно использовать несколько параметров
IMAGE_FILES
.<пути до файлов>
– свободные параметры, тоже чтоIMAGE_FILES
.
Пример вызова:
Пример использования команды см. в статье "Файлы CMakeLists.txt для сборки программы Einit".
В началоБиблиотека build_sd_image
Библиотека build_sd_image
входит в состав KasperskyOS SDK и содержит команду build_sd_image()
. Эта команда объявлена в файле /opt/KasperskyOS-Community-Edition-<version>/common/build-sd-image.cmake
.
Команда создает CMake-цель сборки образа SD-карты для запуска решения на аппаратной платформе.
Параметры:
IMAGE_NAME
– имя CMake-цели для сборки образа SD-карты для запуска решения на аппаратной платформе. Обязательный параметр.KOS_IMAGE_TARGET
– имя CMake-цели для сборки образа решения для аппаратной платформы, который будет добавлен в образ SD-карты.KOS_COPY_PATH
– путь к директории, в которую будет скопирован образ решения для аппаратной платформы перед добавлением в образ SD-карты.IMAGE_FS
– путь к корневой директории файловой системы, которая будет использоваться для образа SD-карты. Значение по умолчанию:${CMAKE_BINARY_DIR}/hdd
.OUTPUT_IMAGE_NAME
– имя образа SD-карты.DISK_SIZE
– размер создаваемого образа SD-карты в мегабайтах. Значение по умолчанию: 1024 МБ.PARTITION_CMD
– набор параметров, которые будут использоваться для создания и настройки разделов в образе SD-карты. Разделяйте параметры знаком пробела.
Пример вызова:
Библиотека kpa
Этот раздел содержит описание команд CMake
-библиотеки kpa
, предназначенной для сборки KPA-пакетов.
add_kpa_package()
Команда объявлена в файле /opt/KasperskyOS-Community-Edition-<version>/toolchain/share/cmake/Modules/platform/kpa.cmake
.
Команда создает CMake
-цель для сборки KPA-пакета. При сборке этой цели автоматически создается манифест KPA-пакета и сам KPA-пакет, в который включаются все компоненты, добавленные к этой цели с помощью CMake
-команды add_kpa_component().
Параметры:
KPA_TARGET_NAME
– имяCMake
-цели. Обязательный параметр.MANIFEST_V
– версия манифеста KPA-пакета. Обязательный параметр. Должен иметь значение"2"
.VERSION
– версия KPA-пакета. Значение по умолчанию:PROJECT_VERSION
.ID
– идентификатор KPA-пакета. Значение по умолчанию:KPA_TARGET_NAME
.DEVELOPER_ID
– идентификатор разработчика. Значение по умолчанию:"unspecified"
.DONT_VERIFY
– если задан, не будет выполняться проверка наличия всех компонентов KPA-пакета, указанных в его манифесте и отсутствия неуказанных компонентов, а также расчет контрольных сумм компонентов KPA-пакета и сравнение их с указанными в манифесте KPA-пакета.
Свойства создаваемой CMake
-цели:
KPA_OUTPUT_DIR
– директория для размещения KPA-пакета.KPA_OUTPUT_NAME
– имя файла .kpa без расширения. Значение по умолчанию:${DEVELOPER_ID}.${ID}
.
Пример вызова:
add_kpa_component()
Команда объявлена в файле /opt/KasperskyOS-Community-Edition-<version>/toolchain/share/cmake/Modules/platform/kpa.cmake
.
Команда добавляет компонент в указанную CMake
-цель сборки KPA-пакета. Эту команду можно вызывать несколько раз для одной цели сборки KPA-пакета. Цель сборки KPA-пакета создается командой add_kpa_package().
Параметры:
PACKAGE_NAME
– имяCMake
-цели сборки KPA-пакета. Обязательный параметр.MODE
– тип компонента. Обязательный параметр. Возможны следующие значения:LIBRARY
– компонент является динамической библиотекой. Необходимо указать полный путь к файлу или имяCMake
-цели. При установке KPA-пакета помещается в директорию/<имя_пакета>/lib
.FILES
– компонент является файлом. Необходимо указать полный путь к файлу. При установке KPA-пакета помещается в директорию/<имя_пакета>/res
.DIRECTORY
– компонент является директорией с файлами. Необходимо указать полный путь к директории. При установке KPA-пакета помещается в директорию/<имя_пакета>/res
.RUN_CONFIGURATION
– компонент является конфигурацией запуска программы. Необходимо указать следующие параметры:ID
– уникальный в рамках KPA-пакета идентификатор конфигурации запуска программы. Обязательный параметр.NAME
– имя конфигурации запуска. Обязательный параметр.TYPE
– тип конфигурации запуска:"gui"
– процесс с графическим пользовательским интерфейсом или"service"
– процесс-служба. Обязательный параметр.PATH
– полный путь к исполняемому файлу компонента после установки KPA-пакета относительно директории/<имя_пакета>
.EIID
– класс безопасности программы. Обязательный параметр.PRIMARY
– указывает, является эта конфигурация запуска первичной при старте программы.AUTORUN
– указывает, является ли эта конфигурация запускаемой автоматически.ARGS
– список аргументов командной строки для запуска программы в виде массива строк.ENV
– список переменных окружения для запуска программы.
RESOURCE
– используется для добавления произвольных данных в KPA-пакет. Необходимо указать следующие параметры:- полный путь к файлу или директории, содержащей данные. Обязательный параметр
- В параметре
TYPE
указать тип данных:"res"
,"bin"
,"lib"
или"manifestLocale"
. Обязательный параметр. Подробнее см. "Список объектов components". - Опционально, в параметре
DIRECTORY_PATH
указать путь к директории, в которую данные будут помещены после установки KPA-пакета, относительно директории/<имя_пакета>/res
.
Примеры вызова: