Hi, currently, when exporting library targets, it is required that all in-project libraries which the exported libraries depend on, are also exported in the same export set.
I.e. the following currently does not work: ------------------------------------ add_library(foo SHARED foo.c) install(TARGETS foo EXPORT FooExport DESTINATION lib ) install(TARGETS foo EXPORT FooExportX DESTINATION libx ) install(EXPORT FooExport DESTINATION lib/foo ) install(EXPORT FooExport NAMESPACE "Foo::" DESTINATION lib/foo2 ) install(EXPORT FooExportX DESTINATION lib/fooX ) add_library(bar SHARED bar.c) target_link_libraries(bar foo) install(TARGETS bar EXPORT BarExport DESTINATION lib ) install(EXPORT BarExport NAMESPACE Xyz:: DESTINATION lib/bar ) ------------------------------------ If I would do this, I would get the error for the BarExport export set, that it does not contain target foo, which it depends on. We'd like to make this work, since we need this in KDE. How can this be done ? Here's a relatively simple (I think) idea: export it anyway, and make sure in the generated targets file that those targets which were not part of the export-set exist: if(NOT TARGET Xyz::foo) message(FATAL_ERROR "Exported Xyz::target foo not found") endif() This would leave it to the user to make sure that the export file is loaded before. There is an issue with the used namespace. Maybe it could simply assume that the targets which are not present use the same namespace as it does itself (as shown in the example above) ? Also, CMake could still error out if it detects that a library which an exported library depends on, is not exported at all, also taking into account the namespace. Would that work ? Did I miss something ? Better ideas ? Alex -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers