Hi John, the primary tool for superbuilds in CMake's arsenal is ExternalProject_Add from module ExternalProject. I don't have much experience with it, but you can read its docs to see if it could help you.
Petr On Thu, Apr 18, 2013 at 5:38 AM, John Gallagher < [email protected]> wrote: > Hello all, > > Some Googling has led me to questions that have been asked that are > similar to this one but I haven't seen a definitive answer. I'm trying to > set up a CMake "superbuild" where there are dependencies between the > subprojects, and some of the subprojects use find_package() to import > targets from their dependencies (other subprojects, from the superbuild's > point of view). For a stripped down example, suppose I have proj1 and > proj2. proj1 can be built and installed on its own, and it writes out a > Proj1Config.cmake file (with targets and such). proj2 uses > > find_package(Proj1 REQUIRED) > > to import those targets. So independent of a CMake superbuild, things work > just fine if I configure, build, and install proj1, *then* configure, > build, and install proj2. Is there a way to do this using a CMake > superbuild? Some ideas (mostly gleaned from the aforementioned googling): > > 1. Use add_subdirectory() from the superproject. I think the REQUIRED on > find_package() would fail though? In my case I can modify the subprojects, > but I would like for them to continue to build correctly standalone (not > inside the superbuild), as they really are separate projects. Is there a > way to make add_subdirectory() work without exploding on find_package? > > 2. Don't use CMake for the "superbuild" - a shell script or plain Makefile > could accomplish this pretty easily, but that seems a little hokey. > > 3. (This one is unclear.) Somehow build proj1 before configuring proj2, > and point proj2 at proj1's build directory so it can find > Proj1Config.cmake. This seems fragile at best (prefix, RPATH, etc issues). > > Appreciate any advice! > > John > > -- > > 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 >
-- 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
