archimedes
archimedes

Reputation:

Build solution for C++

I'd like to setup a build server for unmanaged C++ code developed in Visual Studio 2005. The build server should be able to do the following:

I've initially been looking at using CruiseControl with Ant. Is there a better solution? Perhaps CruiseControl.Net, and NAnt?

Upvotes: 5

Views: 2479

Answers (8)

Gustavo Litovsky
Gustavo Litovsky

Reputation: 2487

Since no one has mentioned, Jenkins is a good CI and is becoming more and more common (being free doesn't hurt either):

http://jenkins-ci.org/

Easy to install, use and monitor and integrates nicely with lots of things (SVN, GIT etc). Also very customizable. Takes 5 mins to get it up and running.

Upvotes: 2

Cygon
Cygon

Reputation: 9610

In Visual Studio 2010, Microsoft finally upgraded the format of Visual C++ project files (.vcproj) to its XML-based NAnt clone format MSBuild, now named .vcxproj. This means C++ projects will compile without much effort using the task.

If you can foresee that you're only going to have a small team and a limited number of builds, I would recommend TeamCity (http://www.jetbrains.com/teamcity/) with NAnt. TeamCity is a CI server based on Java (easier to deploy on a Linux build server) that supports separate build agents (so you could have several Windows virtual machines or dedicated box running your builds).

TeamCity's support for MSBuild, NAnt and Ant based builds is excellent and it has a very nice AJAX-based GUI that is a joy to use and allows you to set up and configure projects from your browser. If you cross the 20 project threshold of the free edition, it becomes unreasonably expensive, however.

The other option I can recommend would be Jenkins with NAnt, Ant, MSBuild or one of the other many build systems Jenkins can support. Jenkins is Open Source and will handle unlimited projects, like TeamCity it can run on a server while sending builds to separate build agents and it has plugins for many C++ tools (think static analysis, unit testing and packaging).

Jenkins' web interface is not quite so convenient and beauftiful as TeamCity, but it's widely used and has plugins for almost anything.

Upvotes: 0

Jan Hudec
Jan Hudec

Reputation: 76256

Visual Studio 2005 projects are perfectly capable of being run from command-line! Just do

devenv.com whatever.sln /build 'Release|Win32' /project whatever

(replace whatever with your project name and Release|Win32 with the configuration and platform you need). This can be trivially run by CruiseControl or Jenkins or whatever.

Upvotes: 0

Jeffrey Fredrick
Jeffrey Fredrick

Reputation: 4503

In addition to Ant CruiseControl also supports NAnt and Exec.

But if you really want to go avant-garde you could consider Rake (about: Rake, Getting Started with Rake on .Net).

Upvotes: 0

hamishmcn
hamishmcn

Reputation: 7981

We use CruiseControl.Net, and NAnt (and Subversion) and we are happy with the results.

Upvotes: 0

scobi
scobi

Reputation: 14548

NAnt takes quite a bit of work to build C++ effectively. It really is a .NET build system through and through. We're building our title to four C++ platforms plus a set of .NET tools, and it took a while to bend NAnt to our needs. For example, NAnt's C++ dependency analysis is so broken that we had to write our own. And it has a lot of perf issues that we had to go hack away at it to fix.

So don't jump in with both feet on this. Do some preliminary testing to make sure it really can do what you want and get a feel for how much you'll have to modify it for C++.

Also, we're using CruiseControl.NET also for some NUnit stuff we have built into one of our tools that drives the game we're developing. Very happy with this, it was brain-dead easy to set up. Big thumbs up here.

At a previous gig I used Final Builder in the exact scenario you describe - on the build server. Local builds were done using Visual Studio. It's a pretty awesome product that I'd seriously consider if you have a little money to spend. We had nothing but good results from it.

At my current company we went with NAnt because we didn't want to buy FB for every engineer on the team. We also didn't like how FB is closed source. So we're 100% Nant and are liking it. Just took some time to bang it into shape!

Upvotes: 2

Ulf Lindback
Ulf Lindback

Reputation: 14170

We use FinalBuilder for building our Visual Studio 2005 projects including packaging the final exes and dlls with InstallShield and putting them up on a shared server.

We also telnet out (from FinalBuilder) to a number of other platforms (Unix/Linux/OpenVMS) and start remote builds by running makefiles there.

We do not use continous build, but there is a FinalBuilder Server which handles that and comes free with the FinalBuilder Professional license.

We are very happy with FinalBuilder, it's quite easy to get up to speed with and powerful enough to solve most problems.

Upvotes: 0

Rob
Rob

Reputation: 78628

I've just started using Visual Build Professional and am very impressed, You can download a fully-featured 30 day trial from here:

http://www.kinook.com/VBP/

SVN is fully supported too.

Upvotes: 0

Related Questions