Spec-Zone.ru › CMake 3.12

FindPackageHandleStandardArgs

Этот модуль предоставляет функцию, предназначенную для использования в Find Modules при реализации вызовов find_package(<PackageName>). Он обрабатывает аргументы REQUIRED, QUIET и связанные с версией аргументы find_package. Он также устанавливает переменную <PackageName>_FOUND. Пакет считается найденным, если все перечисленные переменные содержат допустимые результаты, например, допустимые пути к файлам.

find_package_handle_standard_args

Существует две сигнатуры:

find_package_handle_standard_args(<PackageName>
  (DEFAULT_MSG|<custom-failure-message>)
  <required-var>...
  )

find_package_handle_standard_args(<PackageName>
  [FOUND_VAR <result-var>]
  [REQUIRED_VARS <required-var>...]
  [VERSION_VAR <version-var>]
  [HANDLE_COMPONENTS]
  [CONFIG_MODE]
  [FAIL_MESSAGE <custom-failure-message>]
  )

Переменная <PackageName>_FOUND будет установлена в TRUE, если все переменные <required-var>... действительны и удовлетворяются любые необязательные ограничения, и FALSE в противном случае. Сообщение об успехе или ошибке может отображаться в зависимости от результатов и от того, был ли передан параметр REQUIRED и/или QUIET в вызов find_package().

Параметры:

(DEFAULT_MSG|<custom-failure-message>)
В простой сигнатуре это указывает сообщение об ошибке. Используйте DEFAULT_MSG для запроса вычисления сообщения по умолчанию (рекомендуется). Недопустимо в полной сигнатуре.
FOUND_VAR <result-var>
Устарело. Указывает либо <PackageName>_FOUND, либо <PACKAGENAME>_FOUND в качестве результирующей переменной. Это существует только для совместимости со старыми версиями CMake и теперь игнорируется. Переменные результата обоих имен всегда устанавливаются для совместимости.
REQUIRED_VARS <required-var>...
Укажите переменные, которые необходимы для этого пакета. Они могут быть указаны в сгенерированном сообщении об ошибке, в котором пользователя просят установить отсутствующие значения переменных. Поэтому это обычно должны быть записи кэша, такие как FOO_LIBRARY, а не выходные переменные, такие как FOO_LIBRARIES.
VERSION_VAR <version-var>
Укажите имя переменной, которая содержит версию найденного пакета. Эта версия будет проверена на соответствие (возможно) указанной требуемой версии, переданной в вызов find_package(), включая её параметр EXACT. Сообщения по умолчанию включают информацию о требуемой версии и версии, которая была фактически найдена, как если версия верна, так и нет.
HANDLE_COMPONENTS
Включить обработку компонентов пакета. В этом случае команда сообщит, какие компоненты были найдены, а какие отсутствуют, и переменная <PackageName>_FOUND будет установлена в FALSE, если какие-либо из необходимых компонентов (т. е. не те, которые перечислены после параметра OPTIONAL_COMPONENTS find_package()) отсутствуют.
CONFIG_MODE
Укажите, что вызывающий модуль поиска является обёрткой вокруг вызова find_package(<PackageName> NO_MODULE). Это подразумевает значение VERSION_VAR равное <PackageName>_VERSION. Команда автоматически проверит, был ли найден файл конфигурации пакета.
FAIL_MESSAGE <custom-failure-message>
Укажите пользовательское сообщение об ошибке вместо использования сгенерированного сообщения по умолчанию. Не рекомендуется.

Пример для простой сигнатуры:

find_package_handle_standard_args(LibXml2 DEFAULT_MSG
  LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR)

Пакет LibXml2 считается найденным, если оба LIBXML2_LIBRARY и LIBXML2_INCLUDE_DIR действительны. Тогда также LibXml2_FOUND устанавливается в TRUE. Если он не найден и был использован REQUIRED, он завершается с ошибкой message(FATAL_ERROR), независимо от того, использовался QUIET или нет. Если он найден, будет сообщено об успехе, включая содержимое первого <required-var>. При повторных запусках CMake одно и то же сообщение не будет выводиться снова.

Пример для полной сигнатуры:

find_package_handle_standard_args(LibArchive
  REQUIRED_VARS LibArchive_LIBRARY LibArchive_INCLUDE_DIR
  VERSION_VAR LibArchive_VERSION)

В этом случае пакет LibArchive считается найденным, если оба LibArchive_LIBRARY и LibArchive_INCLUDE_DIR действительны. Также версия LibArchive будет проверена с использованием версии, содержащейся в LibArchive_VERSION. Поскольку FAIL_MESSAGE не указан, будут выведены сообщения по умолчанию.

Ещё один пример для полной сигнатуры:

find_package(Automoc4 QUIET NO_MODULE HINTS /opt/automoc4)
find_package_handle_standard_args(Automoc4  CONFIG_MODE)

В этом случае модуль FindAutmoc4.cmake является обёрткой вокруг вызова find_package(Automoc4 NO_MODULE) и добавляет дополнительный каталог поиска для automoc4. Затем вызов find_package_handle_standard_args генерирует правильное сообщение об успехе/неудаче.

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

Spec-Zone.ru

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