Spec-Zone.ru › CMake 3.13

UseSWIG

Этот файл предоставляет поддержку для SWIG. Предполагается, что модуль FindSWIG уже загружен.

Определяет следующую команду для использования с SWIG:

swig_add_library

Определить модуль swig с заданным именем и указанным языком:

swig_add_library(<name>
                 [TYPE <SHARED|MODULE|STATIC|USE_BUILD_SHARED_LIBS>]
                 LANGUAGE <language>
                 [NO_PROXY]
                 [OUTPUT_DIR <directory>]
                 [OUTFILE_DIR <directory>]
                 SOURCES <file>...
                )

Целевые объекты, созданные с помощью команды swig_add_library, обладают теми же возможностями, что и целевые объекты, созданные с помощью команды add_library(), поэтому эти целевые объекты можно использовать с любой командой, ожидающей целевой объект (например, target_link_libraries()).

Примечание

Эта команда создаёт целевой объект со специфицированным <name>, когда политика CMP0078 установлена в NEW. В противном случае, устаревшее поведение выберет другое имя целевого объекта и сохранит его в переменной SWIG_MODULE_<name>_REAL_NAME.

Примечание

Для генераторов с несколькими конфигурациями этот модуль не поддерживает файлы, специфичные для конфигурации, сгенерированные командой SWIG. Все конфигурации сборки должны приводить к одному и тому же файлу сгенерированного исходного кода.

TYPE
SHARED, MODULE и STATIC имеют тот же смысл, что и для команды add_library(). Если USE_BUILD_SHARED_LIBS указано, тип библиотеки будет STATIC или SHARED в зависимости от того, равно ли текущее значение переменной BUILD_SHARED_LIBS ON. Если тип не указан, будет использовано значение MODULE.
LANGUAGE
Указать целевой язык.
NO_PROXY
Запретить генерацию слоя обёртки (опция swig -noproxy).
OUTPUT_DIR

Указать, куда записать файлы, специфичные для языка (опция swig -outdir). Если не указано, будет использовано значение переменной CMAKE_SWIG_OUTDIR. Если ни то, ни другое не указано, значение по умолчанию зависит от значения переменной UseSWIG_MODULE_VERSION следующим образом:

  • Если UseSWIG_MODULE_VERSION равно 1 или не определено, выходные данные записываются в каталог CMAKE_CURRENT_BINARY_DIR.
  • Если UseSWIG_MODULE_VERSION равно 2, будет использован отдельный каталог. Путь к этому каталогу можно получить из свойства целевого объекта SWIG_SUPPORT_FILES_DIRECTORY.
OUTFILE_DIR
Указать имя каталога вывода, куда будет помещён сгенерированный файл исходного кода (опция swig -o). Если не указано, будет использовано значение переменной SWIG_OUTFILE_DIR. Если ни то, ни другое не указано, используется значение OUTPUT_DIR или CMAKE_SWIG_OUTDIR.
SOURCES
Список исходных файлов для библиотеки. Файлы с расширением .i будут идентифицированы как исходные файлы для инструмента SWIG. Другие файлы будут обработаны стандартным образом.

Примечание

Если UseSWIG_MODULE_VERSION установлено в 2, настоятельно рекомендуется использовать отдельный каталог, уникальный для целевого объекта, когда указаны опция OUTPUT_DIR или переменная CMAKE_SWIG_OUTDIR. Содержимое каталога вывода удаляется при сборке целевого объекта, поэтому, чтобы избежать конфликтов между целевыми объектами или потери других важных файлов, каждый целевой объект должен иметь свой собственный отдельный каталог вывода.

swig_link_libraries

Связать библиотеки с модулем swig:

swig_link_libraries(<name> <item>...)

Эта команда имеет те же возможности, что и команда target_link_libraries().

Примечание

Если переменная UseSWIG_TARGET_NAME_PREFERENCE установлена в STANDARD, эта команда устарела, и следует использовать команду target_link_libraries().

Свойства файлов исходного кода для модульных файлов обязательно должны быть установлены перед вызовом команды swig_add_library, чтобы указать специальное поведение SWIG и обеспечить, что сгенерированные файлы получат необходимые настройки.

CPLUSPLUS

Вызвать SWIG в режиме c++. Например:

set_property(SOURCE mymod.i PROPERTY CPLUSPLUS ON)
swig_add_library(mymod LANGUAGE python SOURCES mymod.i)
INCLUDE_DIRECTORIES, COMPILE_DEFINITIONS and COMPILE_OPTIONS
Добавить пользовательские флаги к компилятору SWIG и иметь тот же смысл, что и свойства INCLUDE_DIRECTORIES, COMPILE_DEFINITIONS и COMPILE_OPTIONS.
USE_TARGET_INCLUDE_DIRECTORIES
Если установлено значение TRUE, содержимое свойства целевого объекта INCLUDE_DIRECTORIES будет передано компилятору SWIG . Если установлено значение FALSE, свойство целевого объекта INCLUDE_DIRECTORIES будет проигнорировано. Если не установлено, будет использовано свойство целевого объекта SWIG_USE_TARGET_INCLUDE_DIRECTORIES.
GENERATED_INCLUDE_DIRECTORIES, GENERATED_COMPILE_DEFINITIONS and GENERATED_COMPILE_OPTIONS
Добавить пользовательские флаги к сгенерированному исходному коду C/C++. Они будут соответственно заполнять свойства INCLUDE_DIRECTORIES, COMPILE_DEFINITIONS и COMPILE_OPTIONS сгенерированного файла C/C++.
DEPENDS
Указать дополнительные зависимости от исходного файла.
SWIG_MODULE_NAME

Указать фактическое имя импорта модуля на языке целевого объекта. Это необходимо, если его нельзя автоматически извлечь из исходного кода или если оно отличается от имени файла модуля. Например:

set_property(SOURCE mymod.i PROPERTY SWIG_MODULE_NAME mymod_realname)

Свойства целевой библиотеки могут быть установлены для применения одной и той же конфигурации ко всем входным файлам SWIG.

SWIG_INCLUDE_DIRECTORIES, SWIG_COMPILE_DEFINITIONS and SWIG_COMPILE_OPTIONS

Эти свойства будут применены ко всем входным файлам SWIG и имеют тот же смысл, что и свойства целевого объекта INCLUDE_DIRECTORIES, COMPILE_DEFINITIONS и COMPILE_OPTIONS.

set (UseSWIG_TARGET_NAME_PREFERENCE STANDARD)
swig_add_library(mymod LANGUAGE python SOURCES mymod.i)
set_property(TARGET mymod PROPERTY SWIG_COMPILE_DEFINITIONS MY_DEF1 MY_DEF2)
set_property(TARGET mymod PROPERTY SWIG_COMPILE_OPTIONS -bla -blb)
SWIG_USE_TARGET_INCLUDE_DIRECTORIES
Если установлено значение TRUE, содержимое свойства целевого объекта INCLUDE_DIRECTORIES будет передано компилятору SWIG . Если установлено значение FALSE или не определено, свойство целевого объекта INCLUDE_DIRECTORIES будет проигнорировано. Это поведение можно переопределить, указав свойство исходного файла USE_TARGET_INCLUDE_DIRECTORIES.
SWIG_GENERATED_INCLUDE_DIRECTORIES, SWIG_GENERATED_COMPILE_DEFINITIONS and SWIG_GENERATED_COMPILE_OPTIONS
Эти свойства будут заполнять соответственно свойства INCLUDE_DIRECTORIES, COMPILE_DEFINITIONS и COMPILE_FLAGS всех сгенерированных файлов C/C++.
SWIG_DEPENDS
Добавить зависимости ко всем входным файлам SWIG.

Следующие свойства целевого объекта являются свойствами вывода и могут использоваться для получения информации о вспомогательных файлах, сгенерированных во время компиляции интерфейса SWIG.

SWIG_SUPPORT_FILES

Это свойство вывода, список файлов обёртки, сгенерированных во время компиляции SWIG.

set (UseSWIG_TARGET_NAME_PREFERENCE STANDARD)
swig_add_library(mymod LANGUAGE python SOURCES mymod.i)
get_property(support_files TARGET mymod PROPERTY SWIG_SUPPORT_FILES)

Примечание

Перечислены только самые главные файлы поддержки. В случае использования некоторых расширенных функций SWIG (например, %template), связанные вспомогательные файлы могут не быть перечислены. Используйте свойство SWIG_SUPPORT_FILES_DIRECTORY для обработки вспомогательных файлов.

SWIG_SUPPORT_FILES_DIRECTORY
Это свойство вывода указывает каталог, где будут сгенерированы вспомогательные файлы.

Некоторые переменные могут быть установлены для настройки поведения swig_add_library и SWIG:

UseSWIG_MODULE_VERSION

Укажите различные поведения для модуля UseSWIG.

  • Установите в 1 или undefined: применяется поведение по умолчанию.
  • Установите в 2: применяется новая стратегия относительно файлов поддержки: каталог выходных файлов поддержки удаляется перед компиляцией интерфейса SWIG.
CMAKE_SWIG_FLAGS
Добавить флаги ко всем вызовам swig.
CMAKE_SWIG_OUTDIR
Укажите, куда записать языковые файлы (опция swig -outdir).
SWIG_OUTFILE_DIR
Укажите имя выходного каталога, куда будет помещён сгенерированный исходный файл. Если не указано, используется CMAKE_SWIG_OUTDIR.
SWIG_MODULE_<name>_EXTRA_DEPS
Укажите дополнительные зависимости для сгенерированного модуля для <name>.

© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.13/module/UseSWIG.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API