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

Reply via email to