Spec-Zone.ru › CMake 3.21

find_package

  • Базовая подпись и режим модуля
  • Полная подпись и режим конфигурации
  • Выбор версии
  • Процедура поиска
  • Переменные интерфейса файла пакета

Найти внешний проект и загрузить его настройки.

Базовая подпись и режим модуля

find_package(<PackageName> [version] [EXACT] [QUIET] [MODULE]
             [REQUIRED] [[COMPONENTS] [components...]]
             [OPTIONAL_COMPONENTS components...]
             [NO_POLICY_SCOPE])

Ищет и загружает настройки из внешнего проекта. <PackageName>_FOUND будет установлено, чтобы указать, был ли пакет найден. Когда пакет найден, пакетная информация предоставляется через переменные и Импортированные цели, документированные самим пакетом. Опция QUIET отключает информационные сообщения, включая те, которые указывают, что пакет не может быть найден, если он не REQUIRED. Опция REQUIRED останавливает обработку с сообщением об ошибке, если пакет не найден.

Указанный после опции COMPONENTS (или после опции REQUIRED, если она присутствует) список компонентов, необходимых для пакета. Дополнительные необязательные компоненты могут быть перечислены после OPTIONAL_COMPONENTS. Доступные компоненты и их влияние на то, считается ли пакет найденным, определяются целевым пакетом.

Аргумент [version] запрашивает версию, с которой должен быть совместим найденный пакет. Существуют два возможных формата её указания:

  • Единая версия в формате major[.minor[.patch[.tweak]]].
  • Диапазон версий в формате versionMin...[<]versionMax , где versionMin и versionMax имеют тот же формат, что и единая версия. По умолчанию оба конечных значения включаются. Указанием < верхняя граница будет исключена. Диапазоны версий поддерживаются только с CMake 3.19 и более поздними версиями.

Опция EXACT запрашивает точное совпадение версии. Эта опция несовместима с указанием диапазона версий.

Если при рекурсивном вызове внутри модуля поиска не указаны [version] и/или список компонентов, соответствующие аргументы автоматически передаются из внешнего вызова (включая флаг EXACT для [version]). Поддержка версий в настоящее время предоставляется только на основе пакета (см. раздел Выбор версии ниже). Когда указан диапазон версий, но пакет разработан только для ожидания одной версии, пакет проигнорирует верхнюю границу диапазона и учтёт только версию в нижней части диапазона.

См. документацию команды cmake_policy() для обсуждения опции NO_POLICY_SCOPE.

Команда имеет два режима поиска пакетов: "Модуль" и "Конфигурация". Вышеприведенная подпись выбирает режим "Модуль". Если модуль не найден, команда переходит в режим "Конфигурация", описанный ниже. Этот переход отключён, если указана опция MODULE.

В режиме "Модуль" CMake ищет файл с именем Find<PackageName>.cmake. Файл сначала ищется в CMAKE_MODULE_PATH, затем среди Модулей поиска, предоставляемых установкой CMake. Если файл найден, он читается и обрабатывается CMake. Он отвечает за поиск пакета, проверку версии и вывод необходимых сообщений. Некоторые модули поиска предоставляют ограниченную или никакую поддержку версионирования; см. документацию модуля.

Если опция MODULE не указана в приведенной выше подписи, CMake сначала ищет пакет в режиме "Модуль". Затем, если пакет не найден, он ищет его снова в режиме "Конфигурация". Пользователь может установить переменную CMAKE_FIND_PACKAGE_PREFER_CONFIG в значение TRUE , чтобы направить CMake на поиск в режиме "Конфигурация" прежде, чем переходить в режим "Модуль".

Полная подпись и режим конфигурации

Пользовательский код, как правило, должен искать пакеты с использованием приведенной выше базовой подписи. Остальная часть этой документации команды описывает полную подпись команды и детали процесса поиска. Разработчикам проектов, желающим предоставить пакет для поиска этой командой, рекомендуется продолжить чтение.

Полная подпись команды в режиме "Конфигурация":

find_package(<PackageName> [version] [EXACT] [QUIET]
             [REQUIRED] [[COMPONENTS] [components...]]
             [OPTIONAL_COMPONENTS components...]
             [CONFIG|NO_MODULE]
             [NO_POLICY_SCOPE]
             [NAMES name1 [name2 ...]]
             [CONFIGS config1 [config2 ...]]
             [HINTS path1 [path2 ... ]]
             [PATHS path1 [path2 ... ]]
             [PATH_SUFFIXES suffix1 [suffix2 ...]]
             [NO_DEFAULT_PATH]
             [NO_PACKAGE_ROOT_PATH]
             [NO_CMAKE_PATH]
             [NO_CMAKE_ENVIRONMENT_PATH]
             [NO_SYSTEM_ENVIRONMENT_PATH]
             [NO_CMAKE_PACKAGE_REGISTRY]
             [NO_CMAKE_BUILDS_PATH] # Deprecated; does nothing.
             [NO_CMAKE_SYSTEM_PATH]
             [NO_CMAKE_SYSTEM_PACKAGE_REGISTRY]
             [CMAKE_FIND_ROOT_PATH_BOTH |
              ONLY_CMAKE_FIND_ROOT_PATH |
              NO_CMAKE_FIND_ROOT_PATH])

Опция CONFIG , синонимичная опция NO_MODULE или использование опций, не указанных в базовой подписи , применяют чистый режим "Конфигурация". В чистом режиме "Конфигурация" команда пропускает поиск в режиме "Модуль" и сразу переходит к поиску в режиме "Конфигурация".

Поиск в режиме "Конфигурация" пытается найти файл конфигурации, предоставленный искомым пакетом. В кэш добавляется запись под названием <PackageName>_DIR для хранения каталога, содержащего файл. По умолчанию команда ищет пакет с именем <PackageName>. Если указана опция NAMES , вместо <PackageName> используются имена, следующие за ней. Команда ищет файл под названием <PackageName>Config.cmake или <lower-case-package-name>-config.cmake для каждого указанного имени. Используя опцию CONFIGS , можно указать новый набор возможных имён файлов конфигурации. Процедура поиска описана ниже. После нахождения файл конфигурации читается и обрабатывается CMake. Поскольку файл предоставлен пакетом, он уже знает расположение содержимого пакета. Полный путь к файлу конфигурации сохраняется в переменной cmake <PackageName>_CONFIG.

Все файлы конфигурации, которые рассматривались CMake при поиске установки пакета с подходящей версией, хранятся в переменной cmake <PackageName>_CONSIDERED_CONFIGS, а связанные версии - в <PackageName>_CONSIDERED_VERSIONS.

Если файл конфигурации пакета не найден, CMake сгенерирует ошибку, описывающую проблему, если не указан аргумент QUIET . Если REQUIRED указан и пакет не найден, генерируется фатальная ошибка, и шаг конфигурации прекращает выполнение. Если <PackageName>_DIR установлено в каталог, не содержащий файл конфигурации, CMake проигнорирует его и начнёт поиск заново.

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

Выбор версии

Когда указан аргумент [version] , режим "Конфигурация" будет находить только версию пакета, заявляющую о совместимости с запрошенной версией (см. указание формата). Если указана опция EXACT , может быть найдена только версия пакета, заявляющая о точном соответствии запрошенной версии. CMake не устанавливает никаких соглашений о значении номеров версий. Номера версий пакетов проверяются файлами "version", предоставляемыми самими пакетами. Для файла конфигурации кандидата пакета <config-file>.cmake соответствующий файл версии находится рядом с ним и называется либо <config-file>-version.cmake , либо <config-file>Version.cmake . Если такой файл версии недоступен, то файл конфигурации считается несовместимым ни с одной запрошенной версией. Базовый файл версии с кодом соответствия версий общего назначения можно создать с помощью модуля CMakePackageConfigHelpers. При обнаружении файла версии он загружается для проверки запрошенного номера версии. Файл версии загружается вложенной области, в которой определены следующие переменные:

PACKAGE_FIND_NAME

Имя пакета

PACKAGE_FIND_VERSION

Полная строка запрошенной версии

PACKAGE_FIND_VERSION_MAJOR

Главная версия, если запрошена, иначе 0

PACKAGE_FIND_VERSION_MINOR

Вспомогательная версия, если запрошена, иначе 0

PACKAGE_FIND_VERSION_PATCH

Версия исправления, если запрошена, иначе 0

PACKAGE_FIND_VERSION_TWEAK

Версия доработки, если запрошена, иначе 0

PACKAGE_FIND_VERSION_COUNT

Число компонентов версии, от 0 до 4

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

PACKAGE_FIND_VERSION_RANGE

Полная строка запрошенного диапазона версий

PACKAGE_FIND_VERSION_RANGE_MIN

Указывает, нужно ли включать или исключать нижнюю границу диапазона версий. В настоящее время единственное поддерживаемое значение для этой переменной — INCLUDE.

PACKAGE_FIND_VERSION_RANGE_MAX

Указывает, нужно ли включать или исключать верхнюю границу диапазона версий. Поддерживаемые значения для этой переменной — INCLUDE и EXCLUDE.

PACKAGE_FIND_VERSION_MIN

Полная строка запрошенной версии нижней границы диапазона

PACKAGE_FIND_VERSION_MIN_MAJOR

Основная версия нижней границы, если запрошена, иначе 0

PACKAGE_FIND_VERSION_MIN_MINOR

Вспомогательная версия нижней границы, если запрошена, иначе 0

PACKAGE_FIND_VERSION_MIN_PATCH

Версия исправления нижней границы, если запрошена, иначе 0

PACKAGE_FIND_VERSION_MIN_TWEAK

Версия доработки нижней границы, если запрошена, иначе 0

PACKAGE_FIND_VERSION_MIN_COUNT

Количество компонентов версии нижней границы, от 0 до 4

PACKAGE_FIND_VERSION_MAX

Полная строка запрошенной версии верхней границы диапазона

PACKAGE_FIND_VERSION_MAX_MAJOR

Основная версия верхней границы, если запрошена, иначе 0

PACKAGE_FIND_VERSION_MAX_MINOR

Вспомогательная версия верхней границы, если запрошена, иначе 0

PACKAGE_FIND_VERSION_MAX_PATCH

Версия исправления верхней границы, если запрошена, иначе 0

PACKAGE_FIND_VERSION_MAX_TWEAK

Версия доработки верхней границы, если запрошена, иначе 0

PACKAGE_FIND_VERSION_MAX_COUNT

Количество компонентов версии верхней границы, от 0 до 4

Независимо от того, указана ли одна версия или диапазон версий, переменная PACKAGE_FIND_VERSION_COMPLETE будет определена и содержать полную запрошенную строку версии.

Файл версии проверяет, удовлетворяет ли он запрошенной версии, и устанавливает эти переменные:

PACKAGE_VERSION

Полная предоставленная строка версии

PACKAGE_VERSION_EXACT

Истина, если версия — точное совпадение

PACKAGE_VERSION_COMPATIBLE

Истина, если версия совместима

PACKAGE_VERSION_UNSUITABLE

Истина, если не подходит как любая версия

Эти переменные проверяются командой find_package для определения того, предоставляет ли файл конфигурации приемлемую версию. Они недоступны после возвращения вызова find_package. Если версия приемлема, устанавливаются следующие переменные:

<PackageName>_VERSION

Полная предоставленная строка версии

<PackageName>_VERSION_MAJOR

Основная версия, если предоставлена, иначе 0

<PackageName>_VERSION_MINOR

Вспомогательная версия, если предоставлена, иначе 0

<PackageName>_VERSION_PATCH

Версия исправления, если предоставлена, иначе 0

<PackageName>_VERSION_TWEAK

Версия доработки, если предоставлена, иначе 0

<PackageName>_VERSION_COUNT

Количество компонентов версии, от 0 до 4

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

Для управления порядком, в котором find_package проверяет совместимость, используются две переменные CMAKE_FIND_PACKAGE_SORT_ORDER и CMAKE_FIND_PACKAGE_SORT_DIRECTION. Например, для выбора наибольшей версии можно задать

SET(CMAKE_FIND_PACKAGE_SORT_ORDER NATURAL)
SET(CMAKE_FIND_PACKAGE_SORT_DIRECTION DEC)

перед вызовом find_package.

Процедура поиска

CMake создает набор возможных префиксов установки для пакета. Под каждым префиксом ищутся несколько каталогов для файла конфигурации. Таблицы ниже показывают искомые каталоги. Каждая запись предназначена для деревьев установки, следуя соглашениям Windows (W), UNIX (U) или Apple (A)

<prefix>/                                                       (W)
<prefix>/(cmake|CMake)/                                         (W)
<prefix>/<name>*/                                               (W)
<prefix>/<name>*/(cmake|CMake)/                                 (W)
<prefix>/(lib/<arch>|lib*|share)/cmake/<name>*/                 (U)
<prefix>/(lib/<arch>|lib*|share)/<name>*/                       (U)
<prefix>/(lib/<arch>|lib*|share)/<name>*/(cmake|CMake)/         (U)
<prefix>/<name>*/(lib/<arch>|lib*|share)/cmake/<name>*/         (W/U)
<prefix>/<name>*/(lib/<arch>|lib*|share)/<name>*/               (W/U)
<prefix>/<name>*/(lib/<arch>|lib*|share)/<name>*/(cmake|CMake)/ (W/U)

В системах, поддерживающих macOS, ищутся следующие каталоги для фреймворков или пакетов приложений, содержащих файл конфигурации:

<prefix>/<name>.framework/Resources/                    (A)
<prefix>/<name>.framework/Resources/CMake/              (A)
<prefix>/<name>.framework/Versions/*/Resources/         (A)
<prefix>/<name>.framework/Versions/*/Resources/CMake/   (A)
<prefix>/<name>.app/Contents/Resources/                 (A)
<prefix>/<name>.app/Contents/Resources/CMake/           (A)

Во всех случаях <name> обрабатывается как регистронезависимый и соответствует любому из указанных имен (<PackageName> или имена, заданные NAMES).

Пути с lib/<arch> активируются, если переменная CMAKE_LIBRARY_ARCHITECTURE установлена. lib* включает одно или несколько значений lib64, lib32, libx32 или lib (в порядке поиска).

  • Пути с lib64 ищутся в 64-битных платформах, если свойство FIND_LIBRARY_USE_LIB64_PATHS установлено в TRUE.
  • Пути с lib32 ищутся в 32-битных платформах, если свойство FIND_LIBRARY_USE_LIB32_PATHS установлено в TRUE.
  • Пути с libx32 ищутся в платформах с x32 ABI, если свойство FIND_LIBRARY_USE_LIBX32_PATHS установлено в TRUE.
  • Путь lib всегда ищется.

Если PATH_SUFFIXES указан, суффиксы добавляются к каждому (W) или (U) каталогу по одному.

Этот набор каталогов предназначен для совместной работы с проектами, которые предоставляют файлы конфигурации в своих деревьях установки. Каталоги, отмеченные (W) предназначены для установки в Windows, где префикс может указывать на верхнюю часть каталога установки приложения. Те, которые отмечены (U) предназначены для установки в UNIX, где префикс общий для нескольких пакетов. Это просто соглашение, поэтому все каталоги (W) и (U) все равно ищутся во всех платформах. Каталоги, помеченные (A) предназначены для установки в Apple. Переменные CMAKE_FIND_FRAMEWORK и CMAKE_FIND_APPBUNDLE определяют порядок предпочтения.

Набор префиксов установки строится с помощью следующих шагов. Если NO_DEFAULT_PATH указан, все NO_* параметры включены.

  1. Новое в версии 3.12: Пути поиска, указанные в переменной CMake <PackageName>_ROOT и переменной среды <PackageName>_ROOT, где <PackageName> — это пакет, который нужно найти. Переменные корневого каталога пакета поддерживаются как стек, поэтому, если вызывается модуль поиска, пути корневого каталога из родительского модуля поиска также будут проверяться после путей текущего пакета. Это можно пропустить, если передано значение NO_PACKAGE_ROOT_PATH или установив переменную CMAKE_FIND_USE_PACKAGE_ROOT_PATH в значение FALSE. См. политику CMP0074.

  2. Пути поиска, указанные в переменных кэша, специфичных для CMake. Они предназначены для использования в командной строке с -DVAR=value. Значения интерпретируются как списки, разделённые точкой с запятой. Это можно пропустить, если передано значение NO_CMAKE_PATH или установив переменную CMAKE_FIND_USE_CMAKE_PATH в значение FALSE:

    • CMAKE_PREFIX_PATH
    • CMAKE_FRAMEWORK_PATH
    • CMAKE_APPBUNDLE_PATH
  3. Пути поиска, указанные в переменных среды, специфичных для CMake. Они предназначены для установки в конфигурации оболочки пользователя и поэтому используют системный разделитель путей (; в Windows и : в UNIX). Это можно пропустить, если передано значение NO_CMAKE_ENVIRONMENT_PATH или установив переменную CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH в значение FALSE:

    • <PackageName>_DIR
    • CMAKE_PREFIX_PATH
    • CMAKE_FRAMEWORK_PATH
    • CMAKE_APPBUNDLE_PATH
  4. Пути поиска, указанные параметром HINTS. Обычно это пути, вычисленные путём интроспекции системы, такие как подсказки, полученные из местоположения другого уже найденного элемента. Зашитые значения должны быть указаны с помощью параметра PATHS.
  5. Поиск в стандартных системных переменных среды. Это можно пропустить, если передано значение NO_SYSTEM_ENVIRONMENT_PATH или установив переменную CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH в значение FALSE. Элементы пути, оканчивающиеся на /bin или /sbin, автоматически преобразуются в их родительские каталоги:

    • PATH
  6. Поиск путей, хранящихся в реестре пакетов CMake Пользовательского реестра пакетов. Это можно пропустить, если передано значение NO_CMAKE_PACKAGE_REGISTRY или установив переменную CMAKE_FIND_USE_PACKAGE_REGISTRY в значение FALSE или устаревшую переменную CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY в значение TRUE.

    См. руководство cmake-packages(7) для получения подробной информации о пользовательском реестре пакетов.

  7. Поиск переменных CMake, определённых в файлах платформы для текущей системы. Это можно пропустить, если передано значение NO_CMAKE_SYSTEM_PATH или установив переменную CMAKE_FIND_USE_CMAKE_SYSTEM_PATH в значение FALSE:

    • CMAKE_SYSTEM_PREFIX_PATH
    • CMAKE_SYSTEM_FRAMEWORK_PATH
    • CMAKE_SYSTEM_APPBUNDLE_PATH

    Пути платформы, содержащиеся в этих переменных, представляют собой расположения, которые обычно включают установленное программное обеспечение. Например, /usr/local для платформ на основе UNIX.

  8. Поиск путей, хранящихся в реестре пакетов CMake Системного реестра пакетов. Это можно пропустить, если передано значение NO_CMAKE_SYSTEM_PACKAGE_REGISTRY или установив переменную CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY в значение FALSE или устаревшую переменную CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY в значение TRUE.

    См. руководство cmake-packages(7) для получения подробной информации о системном реестре пакетов.

  9. Поиск путей, указанных параметром PATHS. Обычно это жёстко заданные значения.

Новое в версии 3.16: Добавлены переменные CMAKE_FIND_USE_<CATEGORY>_PATH для глобального отключения различных расположений поиска.

Переменная CMake CMAKE_FIND_ROOT_PATH указывает один или несколько каталогов, которые должны быть добавлены перед всеми другими каталогами поиска. Это эффективно "перезадаёт корень" всего поиска в указанных расположениях. Пути, являющиеся потомками переменной CMAKE_STAGING_PREFIX, исключаются из этого изменения корня, так как эта переменная всегда является путём в системе хоста. По умолчанию CMAKE_FIND_ROOT_PATH пуста.

Переменная CMAKE_SYSROOT также может быть использована для указания ровно одного каталога, используемого в качестве префикса. Установка CMAKE_SYSROOT также имеет и другие эффекты. См. документацию по этой переменной для получения дополнительной информации.

Эти переменные особенно полезны при кросс-компиляции для указания корневого каталога целевой среды, и CMake также будет искать там. По умолчанию сначала проверяются каталоги, перечисленные в CMAKE_FIND_ROOT_PATH, затем каталог CMAKE_SYSROOT, а затем каталоги без корня. Поведение по умолчанию можно изменить, установив CMAKE_FIND_ROOT_PATH_MODE_PACKAGE. Это поведение можно переопределить вручную в каждом вызове, используя параметры:

CMAKE_FIND_ROOT_PATH_BOTH

Поиск в указанном выше порядке.

NO_CMAKE_FIND_ROOT_PATH

Не использовать переменную CMAKE_FIND_ROOT_PATH.

ONLY_CMAKE_FIND_ROOT_PATH

Искать только в переопределённых каталогах и каталогах ниже CMAKE_STAGING_PREFIX.

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

find_package (<PackageName> PATHS paths... NO_DEFAULT_PATH)
find_package (<PackageName>)

После успешного выполнения одного из вызовов переменная result будет установлена и сохранена в кэше, чтобы никакой вызов не искал снова.

По умолчанию значение, хранящееся в переменной result, будет путем, в котором найден файл. Переменная CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS может быть установлена в TRUE перед вызовом find_package для разрешения символических ссылок и сохранения реального пути к файлу.

Каждый вызов find_package без атрибута REQUIRED может быть отключен путём установки переменной CMAKE_DISABLE_FIND_PACKAGE_<PackageName> в TRUE.

Переменные интерфейса файлов пакета

При загрузке файла модуля поиска или файла конфигурации пакета find_package определяет переменные для предоставления информации об аргументах вызова (и восстанавливает их исходное состояние перед возвратом):

CMAKE_FIND_PACKAGE_NAME

Искомый <PackageName>

<PackageName>_FIND_REQUIRED

True, если задан параметр REQUIRED

<PackageName>_FIND_QUIETLY

True, если задан параметр QUIET

<PackageName>_FIND_VERSION

Полная строка запрошенной версии

<PackageName>_FIND_VERSION_MAJOR

Основная версия, если запрошена, иначе 0

<PackageName>_FIND_VERSION_MINOR

Дополнительная версия, если запрошена, иначе 0

<PackageName>_FIND_VERSION_PATCH

Версия исправления, если запрошена, иначе 0

<PackageName>_FIND_VERSION_TWEAK

Версия доработки, если запрошена, иначе 0

<PackageName>_FIND_VERSION_COUNT

Количество компонентов версии, от 0 до 4

<PackageName>_FIND_VERSION_EXACT

True, если задан параметр EXACT

<PackageName>_FIND_COMPONENTS

Список запрошенных компонентов

<PackageName>_FIND_REQUIRED_<c>

True, если компонент <c> обязателен, false, если компонент <c> необязателен

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

<PackageName>_FIND_VERSION_RANGE

Полная строка запрошенного диапазона версий

<PackageName>_FIND_VERSION_RANGE_MIN

Определяет, включена или исключена нижняя граница диапазона версий. В настоящее время INCLUDE - единственное поддерживаемое значение.

<PackageName>_FIND_VERSION_RANGE_MAX

Определяет, включена или исключена верхняя граница диапазона версий. Возможные значения для этой переменной INCLUDE или EXCLUDE.

<PackageName>_FIND_VERSION_MIN

Полная строка запрошенной версии нижней границы диапазона

<PackageName>_FIND_VERSION_MIN_MAJOR

Основная версия нижней границы, если запрошена, иначе 0

<PackageName>_FIND_VERSION_MIN_MINOR

Дополнительная версия нижней границы, если запрошена, иначе 0

<PackageName>_FIND_VERSION_MIN_PATCH

Версия исправления нижней границы, если запрошена, иначе 0

<PackageName>_FIND_VERSION_MIN_TWEAK

Версия доработки нижней границы, если запрошена, иначе 0

<PackageName>_FIND_VERSION_MIN_COUNT

Количество компонентов версии нижней границы, от 0 до 4

<PackageName>_FIND_VERSION_MAX

Полная строка запрошенной версии верхней границы диапазона

<PackageName>_FIND_VERSION_MAX_MAJOR

Основная версия верхней границы, если запрошена, иначе 0

<PackageName>_FIND_VERSION_MAX_MINOR

Дополнительная версия верхней границы, если запрошена, иначе 0

<PackageName>_FIND_VERSION_MAX_PATCH

Версия исправления верхней границы, если запрошена, иначе 0

<PackageName>_FIND_VERSION_MAX_TWEAK

Версия доработки верхней границы, если запрошена, иначе 0

<PackageName>_FIND_VERSION_MAX_COUNT

Количество компонентов версии верхней границы, от 0 до 4

Независимо от того, указана ли одна версия или диапазон версий, переменная <PackageName>_FIND_VERSION_COMPLETE будет определена и содержать полную запрошенную строку версии, как указано.

В режиме модуля загруженный модуль поиска отвечает за выполнение запроса, подробно описанного в этих переменных; см. подробности в модуле поиска. В режиме конфигурации find_package обрабатывает REQUIRED, QUIET, и [version] параметры автоматически, но оставляет за файлом конфигурации пакета обработку компонентов таким образом, чтобы это имело смысл для пакета. Файл конфигурации пакета может установить <PackageName>_FOUND в false, чтобы сообщить find_package что требования к компонентам не удовлетворены.

© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.21/command/find_package.html

Spec-Zone.ru

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