[cmake-developers] Build multiple CMake projects

Petr Kmoch petr.kmoch at gmail.com
Mon Mar 27 03:18:58 EDT 2017


Hi Jerry,

from your description, it seems like you might be looking for the CMake
module ExternalProject:
https://cmake.org/cmake/help/latest/module/ExternalProject.html

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.

Petr


On 24 March 2017 at 19:35, <jerry.c.t at web.de> wrote:

> Hi,
>
> 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).
>
> 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 ...
>
> The number of projects are getting more and more and it's getting harder
> to build them.
>
> So my question:
> 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?
> b) What possiblities are provided by CMake to support this?
> c) Are there tools you can recommend?
>
> jerry
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at http://www.kitware.com/
> opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake-developers
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20170327/517a0c13/attachment.html>


More information about the cmake-developers mailing list