[CMake] Modern superbuild template including support for

Andrey Pokrovskiy wonder.mice at gmail.com
Thu Aug 20 20:30:55 EDT 2015


> After the first build of the superbuild, close the superbuild solution as it's job is done.
> ...
> Open the solution file for the clsparse library, which was generated as part of the superbuild
> and is the 'meat' of the project.

Heh, that's exactly what I meant - superbuilds don't work with IDE
(meaning that CMake doesn't adds anything valuable in terms of
integration of several CMake based packages here).
You are still working with each sub-project (solution) individually as
it was an independent project.
For that reason I try to use add_subdirectory() for CMake-based
3rd-party dependencies (some make it incredibly hard though).
Maybe I didn't worked with CMake that much, but I consider superbuilds
a "hackish" solution. I know there is no a better one, though :)


On Thu, Aug 20, 2015 at 4:30 PM, Knox, Kent <Kent.Knox at amd.com> wrote:
>>And are you able to browse the source code of all your dependencies
>>(that were downloaded)?
> When you open the generated solution file to the superbuild, targets are made for all dependencies (in my case: boost, gmock, clsparse).  From the superbuild view, you can not browse the source of the dependencies (the source is not even present until you build the first time).  You build the solution, cmake merrily downloads the code for the dependencies (aside from clsparse that lives in the same repository) and builds the dependencies according the build instructions in the cmake/External*.cmake files.  After the first build of the superbuild, close the superbuild solution as it's job is done.
>
> Open the solution file for the clsparse library, which was generated as part of the superbuild and is the 'meat' of the project. This solution file contains browse-able source code to all the files in the clsparse project.  The Boost and gmock files are not directly browse-able (i.e. files listed in the solution/project), because do not want to rebuild dependencies if rebuilding the clsparse project (the dependencies change very seldom).  However, visual studio's intellisense does start indexing boost and gmock because they are included in clsparse like any other header file or library, so they become 'browseable' through the IDE.  I believe the same behavior happens with xcode.
>
> ________________________________________
> From: Andrey Pokrovskiy [wonder.mice at gmail.com]
> Sent: Thursday, August 20, 2015 5:35 PM
> To: Knox, Kent
> Cc: cmake at cmake.org
> Subject: Re: [CMake] Modern superbuild template including support for
>
> Hm, I don't understand how that possibly could work (maybe there some
> explicit support for that in the project generator for MSVS).
> And are you able to browse the source code of all your dependencies
> (that were downloaded)?


More information about the CMake mailing list