On Sunday 31 October 2010, Benjamin King 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.
This is handled properly by cmake-generated makefiles and project files. You use add_custom_command() to generate files, and if you really list all files the custom command generates after the OUTPUT keyword, parallel builds will work properly. We do that all the time in KDE. > Windows and nmake don't offer any feasible way to parallelize, so we are > stuck there. You could use GNU make with the MS compiler, or you can use jom, which is a nmake compatible make for Windows, which supports parallel builds (http://labs.qt.nokia.com/2009/03/27/speeding-up-visual-c-qt-builds/) Alex _______________________________________________ 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