Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"CruiseControl" Automation for C++ projects?

We've got a C++ Project that currently uses Make on Linux to build. I'd like to automate it similar to a Java Project under CruiseControl.

1) Is there a project similar to CruiseControl for C++ projects?

OR

2) Is there a good "how-to" on using CruiseControl for C++ Projects?

like image 409
Luciano Avatar asked Dec 29 '22 23:12

Luciano


2 Answers

I've been looking at setting up CruiseControl for C++ projects on Linux but came across Hudson. It has a one file/one command line setup and you're up and running. The management access is via nice web interface. I highly recommend it.

Hudson compared to CC seems easier to setup and manage plus you have access to build statics, errors/warnings via plugins (drop in directory and they are available) and you can set it up to automatically email when build fails.

I've created shell script that invokes make for each project directory. I pointed Hudson to run that scrip. The build is setup via cron like settings - setup via web interface. I have it checking every 30 minutes for code changes and getting build from perforce and recompiling.

If you're not sure give it a try. It takes only couple of minutes to get up and running. I've downloaded it because I wanted to see what is possible with our current build setup and I've never looked back, it's been running for nearly a year without any problems.

like image 199
stefanB Avatar answered Jan 01 '23 13:01

stefanB


I don't know CruiseControl since we're using TeamCity, but CruiseControl should be able to perform a command line build, i.e. just call Make. There's nothing wrong with that. In TeamCity, it's even easy to add progress notifications to the make file (just output in a specific format), so it doesn't feel very different from "native" projects. I don't know how far CruiseControl goes in this regard.

We have a large C++ project, built with CMake, running on command line and it even reports the unit test results (with Boost::Test) correctly.

Oh, and if CruiseControl does not support a command line runner or project types other than Java, you should have a look at TeamCity as a replacement.

like image 20
OregonGhost Avatar answered Jan 01 '23 12:01

OregonGhost