On 24. Mar, 2009, at 12:30, Alexandre Feblot wrote:
Dependency graph example: "->" means "depends on" exe1-A -> lib1 -> lib3 -> lib4-A -> lib5 -> lib7 exe1-B -> lib1 -> lib3 -> lib4-B -> lib6 -> lib8 exe2-A -> lib2 -> lib3 -> lib4-A -> lib5 -> lib7 exe2-B -> lib2 -> lib3 -> lib4-B -> lib6 -> lib8 I'd like to keep using the standard cmake mechanism of dependency description in which every lib only defines on which other libs it depends, and let cmake compute the final link line.
I also fail to see why this would be a problem, especially if all libraries are static, as you say (Static libraries are simply archives of object files, so no symbols have to be resolved while they are created since no linking happens). Simply don't have lib3 depend on any of the lib4-X, but add those lib4-X directly to the link-commands of exeY-X.
E.g.: # Establish dependencies between static libraries. target_link_libraries( lib1 lib3 ) target_link_libraries( lib2 lib3 ) target_link_libraries( lib5 lib7 ) target_link_libraries( lib6 lib8 ) target_link_libraries( lib4-A lib5 ) target_link_libraries( lib4-B lib6 ) # Link the executables target_link_libraries( exe1-A lib1 lib4-A ) target_link_libraries( exe1-B lib1 lib4-B ) target_link_libraries( exe2-A lib2 lib4-A ) target_link_libraries( exe2-B lib2 lib4-B ) Hope this helps Michael _______________________________________________ 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://www.cmake.org/mailman/listinfo/cmake
