Spec-Zone.ru › CMake 3.17

FindPython3

Поиск интерпретатора, компилятора и среды разработки Python 3 (включая каталоги заголовочных файлов и библиотеки).

Поддерживаются следующие компоненты:

  • Interpreter: поиск интерпретатора Python 3
  • Compiler: поиск компилятора Python 3. Предлагается только для IronPython.
  • Development: поиск артефактов разработки (каталоги заголовочных файлов и библиотеки)
  • NumPy: поиск каталогов заголовочных файлов NumPy.

Если не указаны COMPONENTS, предполагается Interpreter.

Для обеспечения согласованных версий между компонентами Interpreter, Compiler, Development и NumPy, укажите все компоненты одновременно:

find_package (Python3 COMPONENTS Interpreter Development)

Этот модуль ищет только версию 3 Python. Этот модуль может использоваться совместно с модулем FindPython2, чтобы использовать обе версии Python.

Модуль FindPython может использоваться, если версия Python для вас не важна.

Примечание

Если оба компонента Interpreter и Development указаны, этот модуль ищет только интерпретатор с той же архитектурой платформы, что и определённая конфигурацией CMake. Это ограничение не применяется, если указан только компонент Interpreter.

Импортированные цели

Этот модуль определяет следующие импортированные цели (когда CMAKE_ROLE равняется PROJECT):

Python3::Interpreter

Интерпретатор Python 3. Цель определена, если найден компонент Interpreter.

Python3::Compiler

Компилятор Python 3. Цель определена, если найден компонент Compiler.

Python3::Python

Библиотека Python 3 для встраивания Python. Цель определена, если найден компонент Development.

Python3::Module

Библиотека Python 3 для модулей Python. Цель определена, если найден компонент Development.

Python3::NumPy

Библиотека NumPy для Python 3. Цель определена, если найден компонент NumPy.

Переменные результатов

Этот модуль установит следующие переменные в вашем проекте (см. Стандартные имена переменных):

Python3_FOUND

Система имеет запрошенные компоненты Python 3.

Python3_Interpreter_FOUND

Система имеет интерпретатор Python 3.

Python3_EXECUTABLE

Путь к интерпретатору Python 3.

Python3_INTERPRETER_ID
Короткий, уникальный для интерпретатора строковый идентификатор. Возможные значения:
  • Python
  • ActivePython
  • Anaconda
  • Canopy
  • IronPython
Python3_STDLIB

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

Информация возвращена distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True).

Python3_STDARCH

Стандартный зависимый от платформы каталог установки.

Информация возвращена distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True).

Python3_SITELIB

Внеший независимый от платформы каталог установки.

Информация возвращена distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False).

Python3_SITEARCH

Внеший зависимый от платформы каталог установки.

Информация возвращена distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False).

Python3_SOABI

Суффикс расширения для модулей.

Информация возвращена distutils.sysconfig.get_config_flag('SOABI') или вычислена из distutils.sysconfig.get_config_flag('EXT_SUFFIX') или python3-config --extension-suffix.

Python3_Compiler_FOUND

Система имеет компилятор Python 3.

Python3_COMPILER

Путь к компилятору Python 3. Предлагается только для IronPython.

Python3_COMPILER_ID
Короткий, уникальный для компилятора строковый идентификатор. Возможные значения:
  • IronPython
Python3_Development_FOUND

Система имеет артефакты разработки Python 3.

Python3_INCLUDE_DIRS

Каталоги заголовочных файлов Python 3.

Python3_LIBRARIES

Библиотеки Python 3.

Python3_LIBRARY_DIRS

Каталоги библиотек Python 3.

Python3_RUNTIME_LIBRARY_DIRS

Каталоги библиотек времени выполнения Python 3.

Python3_VERSION

Версия Python 3.

Python3_VERSION_MAJOR

Основная версия Python 3.

Python3_VERSION_MINOR

Дополнительная версия Python 3.

Python3_VERSION_PATCH

Версия исправления Python 3.

Python3_NumPy_FOUND

Система имеет NumPy.

Python3_NumPy_INCLUDE_DIRS

Каталоги заголовочных файлов NumPy.

Python3_NumPy_VERSION

Версия NumPy.

Рекомендации

Python3_ROOT_DIR

Определите корневой каталог установки Python 3.

Python3_USE_STATIC_LIBS
  • Если не определено, поиск общих библиотек и статических библиотек будет производиться в этом порядке.
  • Если установлено в TRUE, поиск будет производиться только в статических библиотеках.
  • Если установлено в FALSE, поиск будет производиться только в общих библиотеках.
Python3_FIND_ABI

Эта переменная определяет, какие ABIs, как определено в PEP 3149, должны быть обработаны.

Примечание

Если Python3_FIND_ABI не определено, будет производиться поиск любого ABI.

Переменная Python3_FIND_ABI представляет собой кортеж из 3 элементов, в котором указываются pydebug (d), pymalloc (m) и unicode (u) флаги. Каждый элемент может принимать одно из следующих значений:

  • ON: Соответствующий флаг выбран.
  • OFF: Соответствующий флаг не выбран.
  • ANY: Будут обработаны оба варианта (ON и OFF)

Из этого кортежа различные ABIs будут обрабатываться от наиболее специализированных к наиболее общим. Кроме того, будут обрабатываться версии debug после версий non-debug.

Например, если у нас есть:

set (Python3_FIND_ABI "ON" "ANY" "ANY")

Следующие комбинации флагов будут добавлены к именам артефактов в указанном порядке: dmu, dm, du, и d.

И для поиска всех возможных ABIs:

set (Python3_FIND_ABI "ANY" "ANY" "ANY")

Будут использованы следующие комбинации, в указанном порядке: mu, m, u, <empty>, dmu, dm, du и d.

Примечание

Эта подсказка полезна только на системах POSIX. Таким образом, на системах Windows, когда Python3_FIND_ABI определено, дистрибутивы Python с сайта python.org будут найдены только в том случае, если для каждого флага значение установлено в OFF или ANY.

Python3_FIND_STRATEGY

Эта переменная определяет, как будет выполняться поиск. Переменная Python3_FIND_STRATEGY может быть установлена в одно из следующих значений:

  • VERSION: Попробуйте найти последнюю версию во всех указанных местах. Это значение по умолчанию, если политика CMP0094 не определена или установлена в OLD.
  • LOCATION: Остановка поиска как только будет найдена версия, удовлетворяющая ограничениям по версии. Это значение по умолчанию, если политика CMP0094 установлена в NEW.
Python3_FIND_REGISTRY

В Windows переменная Python3_FIND_REGISTRY определяет порядок предпочтения между реестром и переменными среды. Переменная Python3_FIND_REGISTRY может быть установлена в одно из следующих значений:

  • FIRST: Попытка использовать реестр перед переменными среды. Это значение по умолчанию.
  • LAST: Попытка использовать реестр после переменных среды.
  • NEVER: Никогда не пытаться использовать реестр.
Python3_FIND_FRAMEWORK

В macOS переменная Python3_FIND_FRAMEWORK определяет порядок предпочтения между компонентами пакетов в стиле Apple и в стиле Unix. Эта переменная может принимать те же значения, что и переменная CMAKE_FIND_FRAMEWORK.

Примечание

Значение ONLY не поддерживается, поэтому вместо него будет использовано FIRST.

Если Python3_FIND_FRAMEWORK не определено, будет использована переменная CMAKE_FIND_FRAMEWORK, если она определена.

Python3_FIND_VIRTUALENV

Эта переменная определяет обработку виртуальных сред, управляемых virtualenv или conda . Она имеет смысл только при активной виртуальной среде (т.е., когда интерпретируется скрипт activate). В этом случае она имеет приоритет перед переменными Python3_FIND_REGISTRY и CMAKE_FIND_FRAMEWORK . Переменная Python3_FIND_VIRTUALENV может быть установлена в одно из следующих значений:

  • FIRST: Виртуальная среда используется перед другими стандартными путями для поиска интерпретатора. Это значение по умолчанию.
  • ONLY: Только виртуальная среда используется для поиска интерпретатора.
  • STANDARD: Виртуальная среда не используется для поиска интерпретатора. В этом случае переменная Python3_FIND_REGISTRY (Windows) или CMAKE_FIND_FRAMEWORK (macOS) может быть установлена в значение LAST или NEVER для выбора интерпретатора из виртуальной среды по умолчанию.

Примечание

Если запрашивается компонент Development, настоятельно рекомендуется также включить компонент Interpreter, чтобы получить ожидаемый результат.

Спецификация артефактов

Для решения особых случаев можно напрямую указать артефакты, задав следующие переменные:

Python3_EXECUTABLE

Путь к интерпретатору.

Python3_COMPILER

Путь к компилятору.

Python3_LIBRARY

Путь к библиотеке. Он будет использоваться для вычисления переменных Python3_LIBRARIES, Python3_LIBRAY_DIRS и Python3_RUNTIME_LIBRARY_DIRS.

Python3_INCLUDE_DIR

Путь к каталогу заголовков Python . Он будет использоваться для вычисления переменной Python3_INCLUDE_DIRS.

Python3_NumPy_INCLUDE_DIR

Путь к каталогу заголовков NumPy . Он будет использоваться для вычисления переменной Python3_NumPy_INCLUDE_DIRS.

Примечание

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

Примечание

Когда артефакт указан, все HINTS будут проигнорированы, и поиск этого артефакта не будет выполнен.

Если указано более одного артефакта, пользователь несет ответственность за обеспечение согласованности различных артефактов.

Команды

Этот модуль определяет команду Python3_add_library (когда CMAKE_ROLE равно PROJECT), которая имеет ту же семантику, что и add_library() и добавляет зависимость к цели Python3::Python или, когда тип библиотеки MODULE, к цели Python3::Module, и учитывает правила именования модулей Python:

Python3_add_library (<name> [STATIC | SHARED | MODULE [WITH_SOABI]]
                     <source1> [<source2> ...])

Если тип библиотеки не указан, предполагается MODULE.

Для типа библиотеки MODULE, если указан параметр WITH_SOABI, суффикс модуля будет включать значение Python3_SOABI , если таковое имеется.

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

Spec-Zone.ru

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