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

Reply via email to