Я написал некоторую библиотеку только для заголовков, например:
cmake_minimum_required(VERSION 3.10)
add_library(testLib INTERFACE)
...
find_package(GSL REQUIRED)
find_package(Boost 1.32 REQUIRED)
target_link_libraries(testLib INTERFACE Boost::boost GSL::gsl GSL::gslcblas)
и написал в файле testLibConfig.cmake:
include(CMakeFindDependencyMacro)
find_dependency(GSL)
find_dependency(Boost 1.32)
include("${CMAKE_CURRENT_LIST_DIR}/testLibTargets.cmake")
но когда я пытаюсь использовать его как:
find_package(testLib)
Я получаю сообщение об ошибке:
Целевые ссылки «importTest» на целевые «GSL::gsl», но цель не найдена. Возможно, отсутствует вызов find_package() для цели IMPORTED или отсутствует цель ALIAS?
и аналогичное сообщение об ошибке для компонента gslcblas. Однако, включив библиотеку как
find_package(testLib)
find_package(GSL)
Сообщение об ошибке исчезнет. Обратите внимание, что аналогичные знания об используемом библиотечном бусте клиенту не нужны. Я делаю что-то не так?