Разница между find_dependency и find_package в cmake? - PullRequest
0 голосов
/ 10 мая 2018

В package-Config.cmake, если я сделаю find_package вместо find_dependency, как это повлияет на мое приложение?В каких сценариях он сломается?

1 Ответ

0 голосов
/ 10 мая 2018

Согласно документации , find_dependency это просто оболочка вокруг find_package:

Он предназначен для использования в файле конфигурации пакета (<package>Config.cmake). find_dependency передает правильные параметры для QUIET и REQUIRED , которые были переданы исходному вызову find_package(). Любые дополнительные аргументы передаются find_package().

Если зависимость не может быть найдена, она устанавливает информационное диагностическое сообщение и вызывает return(), чтобы завершить обработку файла конфигурации вызывающего пакета и вернуться к команде find_package(), которая его загрузила.

Если вы используете, например, find_package(REQUIRED) вместо find_dependency, и пакет не будет найден, пользователю будет трудно понять, что ошибка связана с внешним пакетом, а не только с внутренний. Кроме того, если внешний вызов find_package не использует опцию REQUIRE , выполнение внутреннего вызова с этой опцией несовместимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...