KasperskyOS Community Edition 1.2

nk_build_idl_files()

Команда объявлена в файле /opt/KasperskyOS-Community-Edition-<version>toolchain/share/cmake/Modules/platform/nk2.cmake.

nk_build_idl_files(NAME ...)

Команда создает 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 компилятора.

Пример вызова:

nk_build_idl_files (echo_idl_files NK_MODULE "echo" IDL "resources/Ping.idl")

Пример использования команды см. в статье "Файлы CMakeLists.txt для сборки прикладных программ".