Spec-Zone.ru › CMake 3.16

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_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 runtime.

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)

На основе этого кортежа будут проверены различные ABI, начиная с наиболее специализированных и заканчивая наиболее общими. Более того, версии 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

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

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

Команды

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

Python3_add_library (my_module MODULE src1.cpp)

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

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

Spec-Zone.ru

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