Tyler Roscoe wrote:
On Wed, Jun 24, 2009 at 03:30:33PM -0700, Hai Nguyen wrote:
add_library( libB ... )
add_executable( ExecB ... )
target_link_libraries( ExecB libB )

but the build order now is: ExecB, libB

I'm getting link errors because libB doesn't exist yet. If I comment out the
ExecB stuff, it builds libB.

Can someone give me a clue on what criteria CMake is using to determine what
builds first?

I think the order is undefined unless there are dependencies to resolve.

I'm a litle surprised that your B example doesn't work, since I thought
CMake was smart enough to notice that execB needs libB and would thus
build libB first.

Anyway, the way to get the correct build order is by using
add_dependencies(). If you do add_dependencies(execB libB) then
everything should work as expected.


I don't think your example is complete. That should work fine, and you do not need add_dependencies ever for library to executable stuff.

-Bill
_______________________________________________
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