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

Reply via email to