<div dir="ltr"><div><div><div>Hi Jerry,<br><br></div>from your description, it seems like you might be looking for the CMake module ExternalProject: <a href="https://cmake.org/cmake/help/latest/module/ExternalProject.html">https://cmake.org/cmake/help/latest/module/ExternalProject.html</a><br><br></div>The idea is that you create a "superbuild" CMake project which consists of ExternalProject_Add calls and related infrastructure, specifying dependencies between the projects etc. Building this "superbuild" will then result in acquiring, building, and installing the individual external projects, in proper order.<br><br></div>Petr<br><br><div class="gmail_extra"><br><div class="gmail_quote">On 24 March 2017 at 19:35,  <span dir="ltr"><<a href="mailto:jerry.c.t@web.de" target="_blank">jerry.c.t@web.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I have some CMake projects which depend on each other. They provide Config scripts (all generated with the help of CMakePackageConfigHelpers) and the CMake projects find there dependencies with find_package(). Even the transitive dependencies are correctly modelled (exported to the Config scripts with find_dependency).<br>
<br>
The setup in general is fine. The only drawback is that I have to build and install them manually in the correct order. For example A depends on B depends on C, I have to build+install first C, than B, then A ...<br>
<br>
The number of projects are getting more and more and it's getting harder to build them.<br>
<br>
So my question:<br>
a) Is there a CMake way to generate a dependency graph and build them in the correct order, i.e., the same as CMake does within a project with the targets but this time on project level?<br>
b) What possiblities are provided by CMake to support this?<br>
c) Are there tools you can recommend?<br>
<br>
jerry<br>
--<br>
<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" rel="noreferrer" target="_blank">http://www.cmake.org/Wiki/<wbr>CMake_FAQ</a><br>
<br>
Kitware offers various services to support the CMake community. For more information on each offering, please visit:<br>
<br>
CMake Support: <a href="http://cmake.org/cmake/help/support.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/<wbr>support.html</a><br>
CMake Consulting: <a href="http://cmake.org/cmake/help/consulting.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/<wbr>consulting.html</a><br>
CMake Training Courses: <a href="http://cmake.org/cmake/help/training.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/<wbr>training.html</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/<wbr>opensource/opensource.html</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/cmake-developers" rel="noreferrer" target="_blank">http://public.kitware.com/<wbr>mailman/listinfo/cmake-<wbr>developers</a><br>
</blockquote></div><br></div></div>