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 запрашивает точное соответствие версии. Эта опция несовместима с указанием диапазона версий.
Если в рекурсивном вызове внутри find-модуля не указаны [version] и/или список компонентов, соответствующие аргументы автоматически передаются из внешнего вызова (включая флаг EXACT для [version]). Поддержка версий в настоящее время предоставляется только на основе пакета (см. раздел Выбор версии ниже). Когда указан диапазон версий, но пакет спроектирован только для ожидания одной версии, пакет проигнорирует верхнее конечное значение диапазона и учтет только единственную версию в нижней части диапазона.
См. документацию команды cmake_policy() для обсуждения опции NO_POLICY_SCOPE.
Команда имеет два режима поиска пакетов: «Модуль» и «Конфигурация». Вышеприведённые параметры выбирают режим «Модуль». Если модуль не найден, команда переходит к режиму «Конфигурация», описанному ниже. Этот переход отключается, если задана опция MODULE.
В режиме «Модуль» CMake ищет файл с именем Find<PackageName>.cmake. Сначала файл ищется в CMAKE_MODULE_PATH, затем среди Модулей поиска, предоставляемых установкой CMake. Если файл найден, он читается и обрабатывается CMake. Он отвечает за поиск пакета, проверку версии и вывод необходимых сообщений. Некоторые find-модули предоставляют ограниченную или никакую поддержку версирования; проверьте документацию модуля.
Если опция 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 не устанавливает никакой конвенции для версий. Версии пакетов проверяются файлами «версии», предоставляемыми самими пакетами. Для кандидата файла конфигурации пакета <config-file>.cmake соответствующий файл версии расположен рядом с ним и назван либо <config-file>-version.cmake или <config-file>Version.cmake. Если такой файл версии недоступен, считается, что файл конфигурации не совместим ни с какой запрошенной версией. Базовый файл версии, содержащий код для соответствия версиям, можно создать, используя модуль CMakePackageConfigHelpers. При обнаружении файла версии он загружается для проверки запрошенного номера версии. Файл версии загружается в вложенном пространстве имён, в котором определены следующие переменные:
-
PACKAGE_FIND_NAME -
<PackageName> -
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ищутся на платформах, использующих ABI x32, если свойство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_* параметры активированы.
- Пути поиска, указанные в переменной CMake
<PackageName>_ROOTи переменной среды<PackageName>_ROOT, где<PackageName>— пакет, который нужно найти. Переменные корневых путей пакета сохраняются как стек, поэтому если вызов происходит внутри модуля find, пути корня из родительского модуля find также будут проверяться после путей текущего пакета. Это можно пропустить, если передатьNO_PACKAGE_ROOT_PATHили установивCMAKE_FIND_USE_PACKAGE_ROOT_PATHна значениеFALSE. См. политикуCMP0074. -
Пути поиска, указанные в переменных кэша, специфичных для CMake. Они предназначены для использования в командной строке с
-DVAR=value. Значения интерпретируются как списки, разделённые точкой с запятой. Это можно пропустить, если передатьNO_CMAKE_PATHили установивCMAKE_FIND_USE_CMAKE_PATHна значениеFALSE: -
Пути поиска, указанные в переменных среды, специфичных для CMake. Они предназначены для установки в конфигурации оболочки пользователя и поэтому используют системный разделитель путей хоста (
;в Windows и:в UNIX). Это можно пропустить, если передатьNO_CMAKE_ENVIRONMENT_PATHили установивCMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATHна значениеFALSE:<PackageName>_DIRCMAKE_PREFIX_PATHCMAKE_FRAMEWORK_PATHCMAKE_APPBUNDLE_PATH
- Пути поиска, заданные опцией
HINTS. Обычно это пути, вычисленные путём анализа системы, например, подсказка, предоставленная местоположением другого уже найденного элемента. Зашитые предположения должны быть указаны с помощью опцииPATHS. -
Поиск в стандартных системных переменных среды. Это можно пропустить, если передать
NO_SYSTEM_ENVIRONMENT_PATHили установивCMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATHна значениеFALSE. Элементы пути, заканчивающиеся на/binили/sbin, автоматически преобразуются в родительские каталоги:PATH
-
Поиск путей, хранящихся в реестре пакетов CMake Пользовательского реестра пакетов. Это можно пропустить, если передать
NO_CMAKE_PACKAGE_REGISTRYили установив переменнуюCMAKE_FIND_USE_PACKAGE_REGISTRYна значениеFALSEили устаревшую переменнуюCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRYна значениеTRUE.См. руководство
cmake-packages(7)для получения подробной информации о пользовательском реестре пакетов. -
Поиск переменных CMake, определённых в файлах платформы для текущей системы. Это можно пропустить, если передать
NO_CMAKE_SYSTEM_PATHили установивCMAKE_FIND_USE_CMAKE_SYSTEM_PATHна значениеFALSE:Пути платформы, содержащиеся в этих переменных, — это расположения, которые обычно содержат установленное программное обеспечение. Например,
/usr/localдля платформ на базе UNIX. -
Поиск путей, хранящихся в реестре пакетов CMake Системного реестра пакетов. Это можно пропустить, если передать
NO_CMAKE_SYSTEM_PACKAGE_REGISTRYили установивCMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRYна значениеFALSEили устаревшую переменнуюCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRYна значениеTRUE.См. руководство
cmake-packages(7)для получения подробной информации о системном реестре пакетов. - Поиск путей, заданных опцией
PATHS. Обычно это жёстко заданные предположения.
Переменная 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>)
Как только один из вызовов завершится успешно, переменная результата будет установлена и сохранена в кэше, так что ни один вызов не будет повторять поиск.
По умолчанию значение, хранящееся в переменной результата, будет путём, в котором найден файл. Переменная CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS может быть установлена на TRUE перед вызовом find_package, чтобы разрешить символические ссылки и сохранить фактический путь к файлу.
Каждый вызов find_package (не помеченный как ОБОЯЗАТЕЛЬНЫЙ) можно отключить, установив переменную CMAKE_DISABLE_FIND_PACKAGE_<PackageName> в значение TRUE.
Переменные интерфейса файла пакета
При загрузке файла модуля поиска или конфигурации пакета find_package определяет переменные для предоставления информации о параметрах вызова (и восстанавливает их исходное состояние перед возвратом):
-
CMAKE_FIND_PACKAGE_NAME -
Искомый
<PackageName> -
<PackageName>_FIND_REQUIRED -
Истина, если был задан параметр
REQUIRED -
<PackageName>_FIND_QUIETLY -
Истина, если был задан параметр
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 -
Истина, если был задан параметр
EXACT -
<PackageName>_FIND_COMPONENTS -
Список запрошенных компонентов
-
<PackageName>_FIND_REQUIRED_<c> -
Истина, если компонент
<c>обязателен, ложь, если компонент<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–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.19/command/find_package.html