You need to do add the dependencies in the config.cmake file, which means you
need to seperate the config and export file. So in your CMakeLists.txt, you
would do:
install(TARGETS myheaderonlylib EXPORT myheaderonlylib-targets DESTINATION
include)
install(EXPORT myheaderonlylib-targets DESTINATION
share/myheaderonlylib/cmake)
install(FILES myheaderonlylib-config.cmake DESTINATION
share/myheaderonlylib/cmake)
And then in myheaderonlylib-config.cmake you would write:
include(CMakeFindDependencyMacro)
find_dependency(Eigen)
include("${CMAKE_CURRENT_LIST_DIR}/myheaderonlylib-targets.cmake")
This calls `find_dependency`, which is just a wrapper around `find_package`
that makes it more friendly inside of package config cmake file. This the user
just needs to call `find_package(myheaderonlylib)` and Eigen will be found
automatically.
On Fri, 2017-09-29 at 13:40 +0200, Alberto Luaces wrote:
> Hi, I have a header-only library which itself depends on another
> header-only library:
>
> ```
> add_library(myheaderonlylib INTERFACE)
>
> target_include_directories(myheaderonlylib INTERFACE
> $<INSTALL_INTERFACE:include/myheaderonlylib>
> )
>
> target_link_libraries(myheaderonlylib INTERFACE Eigen3::Eigen)
>
> install(TARGETS myheaderonlylib EXPORT myheaderonlylib-config DESTINATION
> include)
>
> install(EXPORT myheaderonlylib-config DESTINATION
> share/myheaderonlylib/cmake)
> ```
>
> When a third library links to "myheaderonlylib", cmake adds the target
> Eigen3::Eigen, but since it is not known there, the configuration step
> fails.
>
> I understand this is a difficult one, but I wonder if there is any other
> way instead of finding Eigen3::Eigen from the client package.
>
> Thanks!
>
> --
> Alberto
>
.
--
Powered by www.kitware.com
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Kitware offers various services to support the CMake community. For more
information on each offering, please visit:
CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake