target_link_libraries takes target names as its arguments as well as full
paths to libraries. Just use CMake target names in target_link_libraries
calls and do NOT use add_dependencies for libraries.
add_dependencies is very useful for custom targets and custom commands to
guarantee build order. I have never heard of anybody else using it to add
library-to-library or executable-to-library dependencies.

target_link_libraries is really the way to go.


On Thu, Dec 4, 2008 at 5:12 PM, Robert Dailey <[EMAIL PROTECTED]> wrote:

> On Thu, Dec 4, 2008 at 4:06 PM, Alexander Neundorf <
> [EMAIL PROTECTED]> wrote:
>
>> But, if you do in cmake:
>> target_link_libraries(staticLibB staticLibA)
>> this will not really link (as it would for a shared lib), but it will
>> nevertheless keep track of the dependencies.
>> So when liking
>> target_link_libraries(myApp staticLibB)
>> cmake knows that it has to add staticLibA to the linker command.
>
>
> But that's one of the things that really bothers me. This is that
> redundancy I was talking about earlier. If I do:
>
> add_dependencies( C B )
> target_link_libraries( C staticLibB )
>
> It's a bit pointless. For example, CMake should be smart enough to know
> that by adding a dependency to B, it should look at the library that it is
> outputting (In this case, staticLibB.lib) and add that to an implicit call
> to target_link_libraries(). I only want to use target_link_libraries() to
> link against external third party libraries that aren't explicitly
> represented as a project in my CMake build process.
>
> If I decide to change the output name for the static library B outputs, I'm
> forced to then revisit all of the target_link_libraries() calls and rename
> staticLibB. This is a management issue (amongst other things).
>
> _______________________________________________
> CMake mailing list
> CMake@cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
>
_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to