On Wed, Jan 12, 2011 at 12:53 PM, kent williams
<nkwmailingli...@gmail.com> wrote:
> For better or worse (mostly better) we are now heavy users of
> ExternalProject.  That module works really well to pull in external
> dependencies and get them built.
>
> ExternalProject_add has a DEPENDS keyword that lets you specify
> dependencies on other External Projects.  But an ExternalProject isn't
> an actual CMake target, so I can't figure out how to make a regular
> CMake target depend on an External Project.
>
> Suggestions?

Don't mix external projects and real targets. An external project
dependency is different to a target dependency. When expressing
external project dependencies you are stating that this external
project needs these others to be built before it is even configured.

With regular targets there is an assumption that the dependency is
part of the current build, and so CMake knows everything about it, or
it was already built. If you have Qt in an external project, and a Qt
based application depending on it, the find_package(Qt4) will fail
during initial configure, as there is no Qt built/installed.

Instead you would normally have your own project as an external
project that depends on the others it requires to build. That way,
when your external project is configured the others will have been
built and therefore could be found.

I hope that makes the mechanism a little clearer. You could take a
look at the Titan project as one example where we have many external
projects that we build, and the Libraries/Applications external
projects that depend upon them and use them.

Marcus
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to