[CMake] Converting a large C++-Project to CMake

Benjamin King benjaminking at web.de
Sun Oct 31 08:42:52 EDT 2010


Hi Andreas!

>> Our build is taking ages (almost a three hours on the fastest of our
>> servers) and it would be really painful if everybody needed to rebuild
>> everything for himself in the morning.
> 3 hours sounds quite excessively long.
Yepp, that's too long, really. Thanks for your suggestions on cutting 
that down. We have tried a lot of them already, but there simply  is no 
short-term solution to make the separation of the modules clearer. 
Always working on adding features, never time to refactor, meta template 
programming all over the place. Same old, same old...

Our windows release build and packaging takes almost 8 hours (on a 
virtual machine), which makes a quick fix of a bug reported by our test 
team effectively impossible.

Using parallel compilation on multiple cores and/or machines would make 
things easier for us. With linux, we are using distcc and make -jX. The 
trouble with that is, that the Makefiles generated by qmake don't deal 
well with generated code which we also use a lot. You have to restart 
make a few times to keep things going, which is not practical for an 
automated build and package script.

Windows and nmake don't offer any feasible way to parallelize, so we are 
stuck there.

Maybe cmakes VS-Project output could improve the latter and cmake custom 
command the former.

>> According to the FAQ, CMake does not support copying build trees around.
> Yep, and I'd think that that's a pretty hard condition.
> One really shouldn't try to bend things to work with specific build tree
> data on multiple machines I'd think. That's just not the way that CMake
> is supposed to be used.
Understood, but we do not copy the tree to different machines, just from 
/home/nightly to /home/developer1, /home/developer2 etc on the same machine.

Anyway, thanks for your impression on the situation!

Cheers,
   Benjamin


More information about the CMake mailing list