[CMake] ExternalProject_Add_StepDependencies parallel download/cloning

Klaim - Joël Lamotte mjklaim at gmail.com
Fri Jul 17 21:06:47 EDT 2015


On 17 July 2015 at 19:48, David Cole <DLRdave at aol.com> wrote:

> I have adopted the technique of splitting a project into two
> ExternalProject_Add calls, the first of which is named
> "download-${projectName}" with empty configure, build and install
> stages, and the second of which is named ${projectName} with an empty
> download step (using DOWNLOAD_COMMAND "").
>
> Then, the "real" project depends on the download-only project, and ALL
> download-only projects can occur in parallel (to the limit of the
> number of parallel jobs...)
>
> The other benefit of doing it this way is you can have a single
> "download-all" external project which depends on all your individual
> download-only projects. This comes in handy if you want to download
> everything all at once and then go offline with it. Or, if you want to
> share the same download step with multiple downstream
> configure/build/install commands (for example, ALL configurations for
> ALL architectures, each combination of which is a separate EP_Add
> call...)
>
>
> HTH,
> David C.
>
>

Very interesting, I didn't think about that.
I'll experiment with it ASAP, thanks for the suggestion.




>
>
> On Fri, Jul 17, 2015 at 12:53 PM, Klaim - Joël Lamotte
> <mjklaim at gmail.com> wrote:
> > I am setting up a bunch of dependencies using ExternalProject module.
> > One of the dependencies, say A, needs another dependency B to be built
> > before A can be built.
> > ExternalProject_Add_StepDependencies solves the problem fine.
> >
> > However, I did it this way:
> >
> > ExternalProject_Add_StepDependencies( A configure B )
> >
> > Because I wanted A and B repositories to be cloned in parallel, as it
> should
> > be
> > safe to do so. Only A's configure step require that B be built and
> installed
> > first.
> > As A and B have very big repositories, it might help to have them be
> > downloaded
> > concurrently.
> >
> > Is there a way to do this?
> >
> > Joël Lamotte
> >
> >
> > --
> >
> > 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20150718/84f40fbd/attachment-0001.html>


More information about the CMake mailing list