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