Содержание
Генерация транспортного кода для разработки на языке 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
.
Пример вызова: