<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On 17 July 2015 at 19:48, David Cole <span dir="ltr"><<a href="mailto:DLRdave@aol.com" target="_blank">DLRdave@aol.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I have adopted the technique of splitting a project into two<br>
ExternalProject_Add calls, the first of which is named<br>
"download-${projectName}" with empty configure, build and install<br>
stages, and the second of which is named ${projectName} with an empty<br>
download step (using DOWNLOAD_COMMAND "").<br>
<br>
Then, the "real" project depends on the download-only project, and ALL<br>
download-only projects can occur in parallel (to the limit of the<br>
number of parallel jobs...)<br>
<br>
The other benefit of doing it this way is you can have a single<br>
"download-all" external project which depends on all your individual<br>
download-only projects. This comes in handy if you want to download<br>
everything all at once and then go offline with it. Or, if you want to<br>
share the same download step with multiple downstream<br>
configure/build/install commands (for example, ALL configurations for<br>
ALL architectures, each combination of which is a separate EP_Add<br>
call...)<br>
<br>
<br>
HTH,<br>
David C.<br>
<div><div class="h5"><br></div></div></blockquote><div><br></div><div><br></div><div>Very interesting, I didn't think about that.</div><div>I'll experiment with it ASAP, thanks for the suggestion.</div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
<br>
<br>
On Fri, Jul 17, 2015 at 12:53 PM, Klaim - Joël Lamotte<br>
<<a href="mailto:mjklaim@gmail.com">mjklaim@gmail.com</a>> wrote:<br>
> I am setting up a bunch of dependencies using ExternalProject module.<br>
> One of the dependencies, say A, needs another dependency B to be built<br>
> before A can be built.<br>
> ExternalProject_Add_StepDependencies solves the problem fine.<br>
><br>
> However, I did it this way:<br>
><br>
> ExternalProject_Add_StepDependencies( A configure B )<br>
><br>
> Because I wanted A and B repositories to be cloned in parallel, as it should<br>
> be<br>
> safe to do so. Only A's configure step require that B be built and installed<br>
> first.<br>
> As A and B have very big repositories, it might help to have them be<br>
> downloaded<br>
> concurrently.<br>
><br>
> Is there a way to do this?<br>
><br>
> Joël Lamotte<br>
><br>
><br>
</div></div>> --<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:<br>
> <a href="http://www.cmake.org/Wiki/CMake_FAQ" rel="noreferrer" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
><br>
> Kitware offers various services to support the CMake community. For more<br>
> 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/support.html</a><br>
> CMake Consulting: <a href="http://cmake.org/cmake/help/consulting.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/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/training.html</a><br>
><br>
> Visit other Kitware open-source projects at<br>
> <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
><br>
> Follow this link to subscribe/unsubscribe:<br>
> <a href="http://public.kitware.com/mailman/listinfo/cmake" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/cmake</a><br>
</blockquote></div><br></div></div>