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

Pedro d'Aquino budsbd at gmail.com
Sun Oct 31 13:19:49 EDT 2010


On Sun, Oct 31, 2010 at 10:42 AM, Benjamin King <benjaminking at web.de> wrote:
> 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.

If you haven't already, you might want to take a lot at JOM, which is
essentially parallel nmake: http://qt.gitorious.org/qt-labs/jom. JOM
is supported by CMake.

>
> 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
> _______________________________________________
> 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
>


More information about the CMake mailing list