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.



On Fri, Jul 17, 2015 at 12:53 PM, Klaim - Joël Lamotte
<mjkl...@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
-- 

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

Reply via email to