Spec-Zone.ru › CMake 3.25

UseSWIG

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

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

swig_add_library

Новая в версии 3.8.

Определить модуль 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()).

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

Изменено в версии 3.15: Альтернативное имя библиотеки (установленное с помощью свойства OUTPUT_NAME, например) будет передано в Python и CSharp библиотеки оболочки.

Изменено в версии 3.21: Сгенерированная библиотека использует стандартные соглашения об именовании для CSharp языка, когда политика CMP0122 установлена в значение NEW. В противном случае применяется поведение по умолчанию.

Примечание

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

Примечание

Для генераторов Makefile Generators, если для некоторых исходных файлов свойство USE_SWIG_DEPENDENCIES имеет значение FALSE, swig_add_library не отслеживает зависимости файлов, поэтому для целей, которые требуют существования файлов, сгенерированных <name>_swig_compilation, требуется пользовательский целевой объект swig. Другие генераторы могут зависеть от исходных файлов, которые будут сгенерированы SWIG.

TYPE

SHARED, MODULE и STATIC имеют такое же семантическое значение, как и для команды add_library(). Если указан USE_BUILD_SHARED_LIBS, тип библиотеки будет STATIC или SHARED в зависимости от того, равно ли текущее значение переменной BUILD_SHARED_LIBS ON. Если тип не указан, будет использоваться MODULE.

LANGUAGE

Укажите целевой язык.

Новая в версии 3.1: Поддержка языков Go и Lua.

Новая в версии 3.2: Поддержка языка R.

Новая в версии 3.18: Поддержка языка Fortran.

NO_PROXY

Новая в версии 3.12.

Предотвратить генерацию слоя оболочки (опция swig -noproxy).

OUTPUT_DIR

Новая в версии 3.12.

Укажите, куда записать файлы, специфичные для языка (опция 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

Новая в версии 3.12.

Укажите имя выходной директории, куда будет помещён сгенерированный исходный файл (опция swig -o). Если не указано, будет использована переменная SWIG_OUTFILE_DIR . Если ни то, ни другое не указано, будет использоваться OUTPUT_DIR или CMAKE_SWIG_OUTDIR вместо этого.

SOURCES

Список исходных файлов для библиотеки. Файлы с расширением .i будут идентифицированы как исходные файлы для инструмента SWIG . Другие файлы будут обработаны стандартным образом.

Новая в версии 3.14: Это поведение может быть переопределено путём указания переменной 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)
SWIG_FLAGS

Устарело начиная с версии 3.12: Заменено на свойства с высокой степенью детализации.

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

INCLUDE_DIRECTORIES, COMPILE_DEFINITIONS and COMPILE_OPTIONS

Введено в версии 3.12.

Добавление пользовательских флагов для компилятора SWIG и семантически эквивалентно свойствам INCLUDE_DIRECTORIES, COMPILE_DEFINITIONS и COMPILE_OPTIONS.

USE_TARGET_INCLUDE_DIRECTORIES

Введено в версии 3.13.

Если установлено в значение TRUE, содержимое свойства цели INCLUDE_DIRECTORIES будет передано SWIG компилятору. Если установлено в значение FALSE, свойство цели INCLUDE_DIRECTORIES будет проигнорировано. Если не задано, будет использовано свойство цели SWIG_USE_TARGET_INCLUDE_DIRECTORIES.

GENERATED_INCLUDE_DIRECTORIES, GENERATED_COMPILE_DEFINITIONS and GENERATED_COMPILE_OPTIONS

Введено в версии 3.12.

Добавление пользовательских флагов для сгенерированного исходного кода C/C++. Они соответственно заполнят свойства INCLUDE_DIRECTORIES, COMPILE_DEFINITIONS и COMPILE_OPTIONS сгенерированного файла C/C++.

DEPENDS

Введено в версии 3.12.

Указание дополнительных зависимостей к файлу исходного кода.

USE_SWIG_DEPENDENCIES

Введено в версии 3.20.

Если установлено в значение TRUE, неявные зависимости генерируются инструментом swig самостоятельно. Это свойство имеет смысл только для генераторов Makefile, Ninja, Xcode и Visual Studio (Visual Studio 11 2012 и выше) генераторов. Значение по умолчанию FALSE.

Введено в версии 3.21: Добавлена поддержка генератора Xcode.

Введено в версии 3.22: Добавлена поддержка генераторов Visual Studio Generators.

SWIG_MODULE_NAME

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

set_property(SOURCE mymod.i PROPERTY SWIG_MODULE_NAME mymod_realname)

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

OUTPUT_DIR

Введено в версии 3.19.

Указывает, куда записать файлы, специфичные для языка (опция SWIG -outdir ) для данного файла исходного кода. Если не указано, используются другие способы определения каталога вывода (см. опцию OUTPUT_DIR команды swig_add_library()).

OUTFILE_DIR

Введено в версии 3.19.

Указывает каталог вывода, куда будет помещён сгенерированный файл исходного кода (опция SWIG -o ) для данного файла исходного кода. Если не указано, используется свойство источника OUTPUT_DIR. Если ни то, ни другое не указано, используются другие способы определения каталога файла вывода (см. опцию OUTFILE_DIR команды swig_add_library()).

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

SWIG_INCLUDE_DIRECTORIES, SWIG_COMPILE_DEFINITIONS and SWIG_COMPILE_OPTIONS

Введено в версии 3.12.

Эти свойства будут применены ко всем входным файлам 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

Введено в версии 3.13.

Если установлено в TRUE, содержимое свойства цели INCLUDE_DIRECTORIES будет передано SWIG компилятору. Если установлено в FALSE или не определено, свойство цели INCLUDE_DIRECTORIES будет проигнорировано. Это поведение может быть переопределено указанием свойства источника USE_TARGET_INCLUDE_DIRECTORIES.

SWIG_GENERATED_INCLUDE_DIRECTORIES, SWIG_GENERATED_COMPILE_DEFINITIONS and SWIG_GENERATED_COMPILE_OPTIONS

Введено в версии 3.12.

Эти свойства соответственно заполнят свойства INCLUDE_DIRECTORIES, COMPILE_DEFINITIONS и COMPILE_FLAGS всех сгенерированных файлов C/C++.

SWIG_DEPENDS

Введено в версии 3.12.

Добавление зависимостей ко всем входным файлам SWIG.

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

SWIG_SUPPORT_FILES

Введено в версии 3.12.

Этот список свойств вывода содержит список файлов-оберток, сгенерированных во время компиляции 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

Введено в версии 3.12.

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

Примечание

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

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

UseSWIG_MODULE_VERSION

Новое в версии 3.12.

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

  • Значение 1 или undefined: применяется поведение по умолчанию.
  • Значение 2: применяется новая стратегия, касающаяся файлов поддержки: директория вывода файлов поддержки удаляется перед компиляцией интерфейса SWIG.
CMAKE_SWIG_FLAGS

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

CMAKE_SWIG_OUTDIR

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

SWIG_OUTFILE_DIR

Новое в версии 3.8.

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

SWIG_MODULE_<name>_EXTRA_DEPS

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

SWIG_SOURCE_FILE_EXTENSIONS

Новое в версии 3.14.

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

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

Новое в версии 3.20.

Если установлено в значение TRUE, инструмент swig сам генерирует неявные зависимости. Эта переменная имеет смысл только для генераторов Makefile, Ninja, Xcode и Visual Studio (Visual Studio 11 2012 и выше) генераторов. Значение по умолчанию FALSE.

Свойство файла-источника USE_SWIG_DEPENDENCIES, если не определено, будет инициализировано значением этой переменной.

Новое в версии 3.21: Добавлена поддержка генератора Xcode.

Новое в версии 3.22: Добавлена поддержка генераторов Visual Studio Generators.

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

Spec-Zone.ru

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