Сборка программы
23 января 2025
ID 249263
В Kaspersky IoT Secure Gateway 1000 SDK вы можете собрать KPA-пакет программы, который в дальнейшем сможете установить на устройство или на QEMU.
Для сборки KPA-пакета для установки в Kaspersky IoT Secure Gateway 1000 требуется выполнить ряд действий:
- Добавить дополнительные CMake команды в файл
CMakeLists.txtпрограммы. - Создать файл шаблона манифеста программы
manifest.json.in, который используется при сборке программы.
После выполнения требований, вы можете использовать команду kosctl build в директории проекта.
Для упрощения процедуры создания проекта программы и выполнения требований, вы можете использовать один из шаблонов инструмента kosctl для создания проекта, например:
kosctl new myhello --template helloworld -- app_id="myhello" app_name="My Hello World"
CMake команды для сборки KPA-пакета
Для сборки KPA-пакета требуется добавить следующие команды в файл CMakeLists.txt программы:
include (kisg/generate_application_kpa)– подключает зависимость для сборки KPA-пакета.include (kisg/strip_binary_macro)– подключает зависимость для удаления информации об отладке и таблицы символов. Не используйте для сборки программ с целью отладки.strip_binary_macro([имя_программы])– функция для удаления информации об отладке и таблицы символов. Игнорируется при выполнении сборки с помощью командыkosctl build -b type=debug.generate_application_kpa()– функция для сборки KPA-пакета. Принимает следующие параметры:APP_BINARY– имя бинарного файла программы.APP_BUILD_NUMBER– номер сборки программы.APP_VERSION– версия программы.APP_ID– уникальный идентификатор программы.APP_NAME– отображаемое имя программы.RESOURCES– путь до файла манифеста.BINARY_DIR– путь до генерируемых бинарных файлов.SHARED_LIB_NAMES– имена динамических библиотек, которые требуется добавить в KPA-пакет. Этот параметр доступен только для программ с классом безопасности (eiid) vpn.Client. Указанные библиотеки предварительно требуется добавить в проект с помощью CMake-функцииtarget_link_libraries(), а также добавить в список объектов components манифеста программы.SHARED_LIB_PATH– путь до динамических библиотек, указанных в параметреSHARED_LIB_NAMES.UI_RESOURCE_NAME– путь до ресурсов пользовательского интерфейса. Указывается относительно параметраRESOURCES. Необязательный параметр. Если параметр не указан, то программа будет собираться без пользовательского интерфейса.
Манифест программы
Манифест программы представляет собой файл формата JSON и содержит информацию, которая необходима при установке и использовании программы. Например, файл манифеста содержит следующие сведения:
- уникальное имя программы;
- информацию о разработчике;
- разрешения для программы;
- зависимости, требования и параметры запуска программы;
- действия, которые требуется выполнять с файлами программы при установке.