Have you tried using target_link_libraries(A D E F) in A/Deps.cmake instead of add_dependencies ?  I think that the add_dependencies command only enforces a build order between targets.  I don&#39;t think it actually adds libraries to the link line.<br>
<br><div class="gmail_quote">On 18 July 2011 17:54, Marco Corvo <span dir="ltr">&lt;<a href="mailto:marco.corvo@pd.infn.it">marco.corvo@pd.infn.it</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hi all,<br>
<br>
I&#39;m facing the following problem trying to generate the dependencies tree of an executable. I have a working area<br>
<br>
/path/to/my/working/area/<u></u>MyPackage<br>
<br>
with, say, one executable I want to build. The relevant CMakeLists.txt line is something like:<br>
<br>
add_executable(App src/App.cc)<br>
target_link_libraries(App A B C D)<br>
<br>
now these libs (A B C D) are already installed somewhere and they depend on other libraries of my software release. Say they&#39;re under<br>
<br>
/path/to/sw/release/X.Y.Z/lib/<u></u>arch/libA.a<br>
/path/to/sw/release/X.Y.Z/lib/<u></u>arch/libB.a<br>
/path/to/sw/release/X.Y.Z/lib/<u></u>arch/libC.a<br>
/path/to/sw/release/X.Y.Z/lib/<u></u>arch/libD.a<br>
/path/to/sw/release/X.Y.Z/lib/<u></u>arch/libE.a<br>
<br>
...<br>
<br>
and that A depends on D, E and F. When I run my build, cmake only finds that my App has A, B, C and D as dependencies, while actually these libraries have also their own dependencies.<br>
<br>
I tried to add a .cmake file to each package in the release area<br>
<br>
/path/to/sw/release/X.Y.Z/<u></u>packageA/Deps.cmake<br>
/path/to/sw/release/X.Y.Z/<u></u>packageB/Deps.cmake<br>
/path/to/sw/release/X.Y.Z/<u></u>packageD/Deps.cmake<br>
<br>
with<br>
<br>
add_library(A STATIC IMPORTED)<br>
add_dependencies(A D E F...)<br>
<br>
which is &quot;include&quot;ed with my CmakeLists.txt file in order to let cmake know that when I build App it depends on A, B, C D _and_ A itself depends in his turn on D, E and F. This should create a complete dependencies tree for my App.<br>

<br>
I know that add_dependencies gives &quot;Adding dependency to non-existent target&quot; with cmake version before 2.8.4 if the target is IMPORTED while with 2.8.4/5 on a Scientific Linux 5 I&#39;m getting a seg fault with the add_dep directive.<br>

<br>
Is this nevertheless the way to solve this problem? Are there other ways to build the dependencies tree of an executable which depends directly on some libs and indirectly on some other ones? Consider that I build static libraries, so I need to have the full list of libraries when linking the executable.<br>

<br>
Thanks in advance for your help.<br>
<br>
Cheers<br>
<br>
Marco<br>
<br>
-- <br>
Marco Corvo<br>
SuperB experiment<br>
CNRS - Orsay<br>
c/o INFN - Padova<br>
______________________________<u></u>_________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/<u></u>opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/<u></u>CMake_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/<u></u>listinfo/cmake</a><br>
</blockquote></div><br>