[CMake] How to create a custom solution with Visual Studio 2010 generator?

Golebiewski, Jakub Jakub.Golebiewski at dnvgl.com
Wed Sep 23 03:35:12 EDT 2015


> -----Original Message-----
> From: J Decker [mailto:d3ck0r at gmail.com]
> Sent: Tuesday, September 22, 2015 9:40 AM
> To: Golebiewski, Jakub
> Cc: cmake at cmake.org
> Subject: Re: [CMake] How to create a custom solution with Visual Studio
> 2010 generator?
>
> > I've tried running cmake independently for each subproject but I get
> > errors about unknown Targets since every Sub Project depends on targets
> from 'earlier' one.
> >
> > I have about 620 targets (VS projects) so when I open Main Project.sln
> (with 620 projects) in VS it is impossible to work with.
> > Currently cmake produces .sln for each Sub Project but includes
> > dependencies from other projects and that's something I don’t want
> > Since the amount of projects in each .sln increases the further I go and
> most of them (later in the dependency chain) are not possible to work with
> either. I'm trying to divide it into .slns that developers could work with in VS.
> >
> Hmm; I was going to check to see if .sln's were made in subdirs... and they
> are... wonder if it was always taht way.
> But... the projects deeper in the tree only have those things that it
> depended on... so I don't get why you say 'the amount of projects
> increases the further you go'   Yes... high level projects will have
> all of their dependancies but nothing extra...

I meant that in my case (let's use the original simple example), targets 3,4 depend on 1,2 and 5,6 depend on 3,4 and therefore on
1,2 as well. So in Sub Project 1.sln I get targets 1,2 in Sub Project 2.sln I get 1,2,3,4 and in Sub Project 3.sln I get 1,2,3,4,5,6.
This is of course absolutely correct and the right way to do it. But in my case with about 620 projects I have about 19 subprojects.
This means that I get solutions more or less like this:

1. 30 projects
2. 50 projects (about 20 as dependencies from 1 - not all because there are unit test projects (executables) in 1 and all the rest)
3. 70 projects (about 50 as dependencies from 1,2)
4. 100 projects (...)
5. 150 projects
6. 200 projects
7. 250 projects
8. 300 projects
9. 350 projects (probably about 75 projects and 300 as dependencies from 1 - 8)
...

At this point unfortunately the VS 2010 is so slow that It is impossible to work with 350 project solution.
So what I want to do Is to cut the dependencies from other projects to make this usable.
(that's what we are currently doing, I'm in the process of converting our current build system to cmake)

I hope that's clear enough.

>
> isn't it already making the minimal solutions you're suggesting you make by
> hand anyway?
>
> Other than as I use this; the Install rule in the sub-solution doesn't install
> everything...
> could wish the OutputPath cmake built was relative to the solution instead
> of the projects... then at least nothing funky would have to be done to run
> applications from the debugger; other than data resources could still be
> missing.

Thanks for help, I really appreciate it

**************************************************************************************
This e-mail and any attachments thereto may contain confidential information and/or information protected by intellectual property rights for the exclusive attention of the intended addressees named above. If you have received this transmission in error, please immediately notify the sender by return e-mail and delete this message and its attachments. Unauthorized use, copying or further full or partial distribution of this e-mail or its contents is prohibited.
**************************************************************************************


More information about the CMake mailing list