[CMake] ExternalProject vs add_subdirectory (was Re: SubProject configuration in same build as host)

Dave Partyka dave.partyka at kitware.com
Thu Apr 15 10:23:15 EDT 2010


Humm you are right. HDF5 would need to be built before ParaView even
attempts to configure.

On Thu, Apr 15, 2010 at 10:08 AM, kent williams
<nkwmailinglists at gmail.com>wrote:

> There's a 'chicken-and-egg' problem with using ExternalProject in this
> context: When you configure a project that uses ExternalProject_add,
> that project won't be available to be found by FindPackage until AFTER
> the project is built.  But CMake will want to find it at Configuration
> Time, and it will not yet exist.
>
> The only way I know out of this 'chicken and egg' problem is to make
> ParaView itself an ExternalProject that depends on HDF5.
>
> ExternalProject is great and all, but this is rather an annoying
> problem, because the most natural thing to do would be to add
> ExternalProjects into the CMakeLists.txt for the projects upon which
> they depend. To do this, ExternalProject would probably have to be
> more than a Module.
>
> You can probably finesse this by defining the variables defined by
> e.g. UseHDF5.cmake based on where the ExternalProject will drop its
> files when it's done building and installs.
>
> Or maybe this would be a good thing to add to the ExternalProject
> macro itself -- have it define the variables a project would need to
> use the ExternalProject once it's built.  Then at configure time, the
> build system should be generated so that anything depending on an
> ExternalProject should be built after it.
>
>
> On Thu, Apr 15, 2010 at 5:57 AM, Dave Partyka <dave.partyka at kitware.com>
> wrote:
> > Just thinking out loud but we could make an "external_project" call
> instead.
> > This would sync, configure, build and install it easily without needing
> to
> > override anything. And then ParaView would just FindPackage(HDF5) with
> the
> > internal build directory as a hint.
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100415/42884c37/attachment-0001.htm>


More information about the CMake mailing list