Spec-Zone.ru › CMake 3.17

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. Другие файлы будут обработаны стандартным способом. Это поведение может быть переопределено путём указания переменной SWIG_SOURCE_FILE_EXTENSIONS.

Примечание

Если 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)

Примечание

Если политика CMP0086 установлена в NEW, -module <module_name> передаётся компилятору SWIG.

Свойства целевой библиотеки могут быть установлены для применения той же конфигурации ко всем входным файлам 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 или отсутствие значения: применяется поведение по умолчанию.
  • Установка в 2: применяется новая стратегия обработки файлов поддержки: выходная директория файлов поддержки удаляется перед компиляцией интерфейса SWIG.
CMAKE_SWIG_FLAGS

Добавить флаги ко всем вызовам swig.

CMAKE_SWIG_OUTDIR

Указать, куда записать файлы, специфичные для языка (вариант swig -outdir).

SWIG_OUTFILE_DIR

Указать имя выходной директории, куда будет помещен сгенерированный исходный файл. Если не указано, используется CMAKE_SWIG_OUTDIR.

SWIG_MODULE_<name>_EXTRA_DEPS

Укажите дополнительные зависимости для сгенерированного модуля для <name>.

SWIG_SOURCE_FILE_EXTENSIONS

Указать список расширений файлов источников, чтобы переопределить стандартное поведение, учитывающее только файлы .i в качестве источников для инструмента SWIG. Например:

set(SWIG_SOURCE_FILE_EXTENSIONS ".i" ".swg")

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

Spec-Zone.ru

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