В документации, касающейся создания пакета CMake , указано, что:
Макрос find_dependency
также устанавливает ClimbingStats_FOUND
в False
, если зависимость не найденанаряду с диагностикой того, что пакет ClimbingStats
не может использоваться без пакета Stats
.
Тем не менее, мы наблюдаем, что это только в случае, если ClimbingStats
запрашивается из нижестоящегобез аргумента REQUIRED
.
Не требуется
find_package(ClimbingStats CONFIG)
Тогда мы получим поведение, описанное выше, то есть:
Found package configuration file:
...
, но для ClimbingStats_FOUND
установлено FALSE
, поэтому пакет "ClimbingStats "считается НЕ НАЙДЕННЫМ. Причина, указанная в пакете:
ClimbingStats could not be found because dependency Stats could not be found.
Обязательно
Если вместо этого мы сделаем обязательный пакет ClimbingStats
:
find_package(ClimbingStats CONFIG REQUIRED)
Тогда об ошибке не упоминается ClimbingStats
вообще
Could not find a package configuration file provided by "Stats" with any of
the following names:
StatsConfig.cmake
stats-config.cmake
Add the installation prefix of "Stats" to CMAKE_PREFIX_PATH or set
"Stats_DIR" to a directory containing one of the above files. If "Stats"
provides a separate development package or SDK, be sure it has been
installed.
Мы неправильно понимаем документацию, связанную выше, или это ошибка в поведении CMake?
Есть ли способ потребовать пакет и при этом получить описательныйсообщение об ошибке (как в первом примере), когда его восходящие потоки не найдены?