While Marcus states what is likely the preferred way, I just added an ADD_DEPENDENCIES(internal_target external_target) statement that seems to always work?
Allen > Date: Wed, 12 Jan 2011 13:23:52 -0500 > From: "Marcus D. Hanwell" <marcus.hanw...@kitware.com> > Subject: Re: [CMake] How to have a target depend on an External > Project > To: kent williams <nkwmailingli...@gmail.com> > Cc: CMake ML <cmake@cmake.org> > Message-ID: > <aanlktindoc6guenk7rxq=0yy+sxacoium52ix8zih...@mail.gmail.com> > Content-Type: text/plain; charset=ISO-8859-1 > > 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