Использование SWIG
Определяет следующие макросы для использования с SWIG:
SWIG_ADD_LIBRARY(<name>
[TYPE <SHARED|MODULE|STATIC|USE_BUILD_SHARED_LIBS>]
LANGUAGE <language>
SOURCES <file>...
)
- Define swig module with given name and specified language
SWIG_LINK_LIBRARIES(name [ libraries ])
- Link libraries to swig module
Свойства файлов исходного кода в файлах модуля могут быть установлены перед вызовом макроса SWIG_ADD_LIBRARY для указания специального поведения SWIG.
Свойство файла исходного кода CPLUSPLUS вызывает SWIG в режиме C++, например:
set_property(SOURCE mymod.i PROPERTY CPLUSPLUS ON) swig_add_library(mymod LANGUAGE python SOURCES mymod.i)
Свойство файла исходного кода SWIG_FLAGS добавляет пользовательские флаги к исполняемому файлу SWIG.
Свойство файла исходного кода SWIG_MODULE_NAME необходимо для указания фактического имени импорта модуля на целевом языке, если его нельзя автоматически определить из исходного кода или оно отличается от имени файла модуля:
set_property(SOURCE mymod.i PROPERTY SWIG_MODULE_NAME mymod_realname)
Чтобы получить имя целевой библиотеки модуля swig, используйте: ${SWIG_MODULE_${name}_REAL_NAME}.
Также некоторые переменные могут быть установлены для задания специального поведения SWIG.
CMAKE_SWIG_FLAGS можно использовать для добавления специальных флагов ко всем вызовам swig.
CMAKE_SWIG_OUTDIR позволяет указать, куда следует записать файлы, специфичные для языка (опция swig -outdir).
SWIG_OUTFILE_DIR позволяет указать, куда следует записать выходной файл (опция swig -o). Если не указано, используется CMAKE_SWIG_OUTDIR.
Именочная переменная SWIG_MODULE_<name>_EXTRA_DEPS может использоваться для указания дополнительных зависимостей для сгенерированных модулей.
Если для файла исходного кода, сгенерированного swig, необходим какой-либо специальный флаг, можно использовать:
set_source_files_properties( ${swig_generated_file_fullname}
PROPERTIES COMPILE_FLAGS "-bla")
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.10/module/UseSWIG.html