Добавление динамических библиотек в образ решения на базе KasperskyOS
Чтобы добавить динамические библиотеки в образ решения на базе KasperskyOS, нужно использовать параметры PACK_DEPS_COPY_ONLY ON
, PACK_DEPS_LIBS_PATH
и PACK_DEPS_COPY_TARGET
в CMake
-командах build_kos_qemu_image()
и build_kos_hw_image()
.
Пример:
Динамические библиотеки, от которых зависят программы решения, будут добавлены в образ накопителя (например, с файловой системой ext4), который будет включен в образ решения.
Динамические библиотеки, которые загружаются в память вызовом функции dlopen()
интерфейса POSIX, не попадут в образ решения.
Система сборки выполняет следующие действия:
- Осуществляет поиск динамических библиотек и копирует эти библиотеки в директорию, путь к которой указан в параметре
PACK_DEPS_LIBS_PATH
CMake
-командbuild_kos_qemu_image()
иbuild_kos_hw_image()
. (Чтобы найденные динамические библиотеки попали в образ накопителя, эта директория должна находиться в файловой системе, которая будет помещена в образ накопителя.) - Создает образ накопителя, который включает директорию с динамическими библиотеками.
Чтобы создать образ накопителя, нужно использовать
CMake
-командуadd_custom_command()
. Цель, указанная в параметреDEPENDS
CMake
-командыadd_custom_command()
, означает создание образа накопителя. Цель, указанная в параметреPACK_DEPS_COPY_TARGET
CMake
-командbuild_kos_qemu_image()
иbuild_kos_hw_image()
, означает копирование динамических библиотек. Чтобы образ накопителя был создан только после завершения копирования динамических библиотек, нужно использоватьCMake
-командуadd_dependencies()
. - Добавляет образ накопителя в образ решения.
Чтобы добавить образ накопителя в образ решения, нужно указать полный путь к образу накопителя в параметре
IMAGE_FILES
CMake
-командbuild_kos_qemu_image()
иbuild_kos_hw_image()
.