A: 

At my company we use CruiseControl (http://cruisecontrol.sourceforge.net/). The Java version, not .NET, to build our wxWidgets application on Windows and OS X. Working great for us so far.

Grant Limberg
+1  A: 

The last time I worked on an unmanaged MSVC++ project (which was moderately sized I might add), we used FinalBuilder to do the automated build & versioning (and even executing PCLint and other profiling tools as well).

Having said that, if you're willing to invest the time, MSBuild (or nAnt perhaps?) can do everything you need - even for unmanaged solutions.

Which brings us to the trade-off: Tools like Visual Build Pro and Final Builder get you up and running quickly. If you want something which offers a greater range of customization, you'll probably be spending a decent amount of time learning and understanding it - i.e. MSBuild, CIFactory, nAnt etc are no cake walk.

So if price isn't an issue - is time an issue? If time is at a premium, I'd investigate the GUI driven tools, they'll get you to where you want to go quickly. If you know you're going to need to extend on the simple one button build + unit tests + deploy scenario (which happens a lot!) then decide if you can invest the time into the more complex tools like MSBuild?

RobS
+2  A: 

We use a combination of Boost.Build, NAnt, CPPUnit and either Cruise Control.NET or Hudson (we've used them both for various projects but are starting to prefer Hudson).

They are all good tools though we're considering replacing CPPUnit - the Google unit test system is pretty good from what I've seen.

If you're happy running on just Windows you can lose Boost.Build and just call out to Visual Studio from NAnt.

As for issue tracking/project management we settled on Vision Project after a long investigation. It's not well known (yet) but we've found it a very good fit in our environment. Fogbugz is great, a nice, clear interface but we came to the conclusion you did too; way too simple for our needs.

Although the .NET world is spoilt for these kinds of tools Continuous Integration is still pretty easy to set up for C++! I wouldn't think of starting a non-trivial project without putting these systems in place.

MattyT
Have you also tried JIRA for bug-tracking and TeamCity for CI server?
ShaChris23
Yes and no respectively. It was seemingly possible to do anything with JIRA with dozens of plugins and third-party plugins available but out of the box it was pretty lacking. Not to mention ugly and often difficult to use. TeamCity seemed more geared for Java. What was your experience like?
MattyT
BTW As an Australian-based team we *really* wanted to like JIRA.
MattyT
I'm actually trying to pick a bug/task tracking tool AND a CI server.I agree with you about JIRA. I tried it out, and it looked so overwhelming. I'm trying out Vision Project right now and it looks much less cluttered!Have you seen CounterSoft's Gemini?I'm leaning towards TeamCity or Pulse.
ShaChris23
@ShaChris23 Haven't seen Gemini - will look into it. I'm not sure I'm convinced on the need to integrate bug-tracking and CI but I'll take a look and see what the pros and cons are. Thanks for the info.
MattyT
+2  A: 

I would take some time to seriously consider TeamCity. We used CruiseControl.NET for a while and TeamCity completely demolishes it. Plus it has built-in plugins for Boost and CppUnit, so your unit testing will come for free.

Best of all, the tool is free for < 20 users and gives you three build agents.

I just finished implementing our C++ product at work and it was fairly simple. We did it with msbuild and basically use the msbuild task to compile the solution. Other targets can be used to copy files, run unit tests, etc.

Michael Hedgpeth
+1  A: 

we use subversion + cruisecontrol + wix to accomplich CI automated builds outputting one-click installers. this combo has worked very well for us. we've created out own site for admin of svn user groups and permissioning and added the web interface to cc to it. we have a sql server storing all the collected stats from svn and cc and use them for custom reports available on our site. we are looking to add other tools to the mix for checking various attributes of the code stored in svn. this combo has worked very well for us.

yetanotherdave