<div dir="ltr">Hello all,<div><br></div><div style>Some Googling has led me to questions that have been asked that are similar to this one but I haven&#39;t seen a definitive answer. I&#39;m trying to set up a CMake &quot;superbuild&quot; 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&#39;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</div>
<div style><br></div><div style>find_package(Proj1 REQUIRED)</div><div style><br></div><div style>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):</div>
<div style><br></div><div style>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?</div>
<div style><br></div><div style>2. Don&#39;t use CMake for the &quot;superbuild&quot; - a shell script or plain Makefile could accomplish this pretty easily, but that seems a little hokey.</div><div style><br></div><div style>
3. (This one is unclear.) Somehow build proj1 before configuring proj2, and point proj2 at proj1&#39;s build directory so it can find Proj1Config.cmake. This seems fragile at best (prefix, RPATH, etc issues).</div><div style>
<br></div><div style>Appreciate any advice!</div><div style><br></div><div style>John</div></div>