Hi, I haven't followed the long thread between Brad and Stephen about importing and exporting targets closely...
So, if I understand correctly, in the future the following cmake code find_package(Foo) add_executable(hello main.cpp) target_link_libraries(hello ${Foo_LIBRARIES}) may also set include directories ? If so, I don't like this at all. It changes the meaning of an existing command. I would much prefer if instead there was a new command, e.g. target_use_targets(hello Foo::FooLibrary) which would be obviously different from target_link_libraries(), and it would also only accept other targets as arguments, not library paths. If target_link_libraries() is overloaded to do more than its name says (i.e. not only linking, but also set include dirs and definitions), IMO this will make for hard-to-understand/debug cmake files. In the example above there is no visible hint that what target_link_libraries() actually does. (There is also no hint whether the find_package() expects a module or a Config file) I'd much prefer the following: find_package(Foo NO_MODULE) add_executable(hello main.cpp) target_use_targets(hello Foo::FooLibrary) 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