[CMake] Superbuild subprojects and find_package()

Romain LEGUAY romain.leguay at gmail.com
Thu Apr 18 10:00:38 EDT 2013


Hello John,

I made some generic scripts to answer has those kind of problem. There 
is an example in the folder Examples/FrameworkTest.

You can find the scripts on GitHub: 
https://github.com/Athius/FrameworkCMakeToolkit

I hope this is helpful.

Best regards,

Romain

Le 18/04/13 05:38, John Gallagher a écrit :
> 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20130418/f1396d53/attachment.htm>


More information about the CMake mailing list