IncredBuild Becoming Increasingly Relevant

Most of the large projects I've worked on have been C++ MFC applications that had hundreds of source files in a single project.

Visual Studio 2005 added support for parallel builds, but only of projects - not of individual files.  When you've got a single project that takes ten minutes to build, you want that sort of parallelization building within a single project.

IncrediBuild by Xoreax Software is a Visual Studio 2005 add-on that takes over the build process and parallelizes it.

It can also distribute it over multiple computers - sending your source code and dependencies over the network to a cluster of build machines that will help speed up your build - and that's cool - but even if you're just a single developer, with quad core and more on the way, having the cluster right there on your desktop is still pretty cool.

In the screenshot, each horizontal line is one CPU (you can see the machine called Trinity has two CPUs so there are two parallel builds on it).  This graph updates as the build is happening so you can see exactly where you are (the yellow bar at the right is a progress bar for the entire build) and what machines are being used. 

I've used IncrediBuild before and had troubles with it; but what convinced me to have another look is that I was recently talking to a Microsoft support engineer about another issue with VS2005 and mentioned IncrediBuild.  He spoke very highly of the product, and hadn't heard of any problems himself.

If a Visual Studio support engineer isn't aware of any problems with it, then that's good enough for me.  :)

The problem we're having with it is, I think, related to the fact that we use precompiled headers, use header guards, and also use #pragma once.  IncrediBuild's log warns us that we're doing this and tells us to cut it out; so maybe it's my own fault I was having trouble.

(They have a free trial.).