CMAKE_REQUIRE_FIND_PACKAGE_
Добавлен в версии 3.22.
Переменная для выполнения вызова find_package() REQUIRED.
Каждый вызов find_package() в проекте, который не REQUIRED, может быть превращен в REQUIRED путём установки переменной CMAKE_REQUIRE_FIND_PACKAGE_<PackageName> в TRUE. Это может использоваться для проверки предположений о среде сборки и для обеспечения того, что сборка завершится ошибкой на ранней стадии, если эти предположения неверны.
Обратите внимание, что установка этой переменной в значение «истина» нарушает некоторые часто используемые шаблоны. Иногда для получения другого порядка поиска, отличного от стандартного, используются несколько вызовов find_package(). Например, проекты могут принудительно проверить известный путь к конкретному пакету перед поиском в других стандартных директориях:
find_package(something PATHS /some/local/path NO_DEFAULT_PATH) find_package(something)
На приведенном выше примере первый вызов ищет пакет something в определённой директории. Если CMAKE_REQUIRE_FIND_PACKAGE_something установлена в значение «истина», то этот первый вызов должен завершиться успешно; в противном случае произойдёт ошибка сборки. Второй вызов не получит возможности использовать стандартные расположения поиска в качестве резервного варианта.
Аналогичный шаблон используется даже некоторыми собственными модулями CMake Find для поиска пакета config первым:
find_package(something CONFIG QUIET) if(NOT something_FOUND) # Fall back to searching using typical Find module logic... endif()
Опять же, если CMAKE_REQUIRE_FIND_PACKAGE_something имеет значение «истина», первый вызов должен завершиться успешно. Это фактически означает, что должен быть найден пакет config для зависимости, и логика модуля Find не используется.
См. также переменную CMAKE_DISABLE_FIND_PACKAGE_<PackageName>.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/variable/CMAKE_REQUIRE_FIND_PACKAGE_PackageName.html