views:

779

answers:

3

We use cruise control .net to do our Continuous Integration in our Delphi 2006 application. We use a setup similar to the one described here.

QUESTION:

1) What is the best scripting tool/language to use implement the build script?

2) Are there any advantages of using WANT over using NANT?

(NOTE: D2006 is not compatible with MSBuild)

+8  A: 

I never used WANT, but NANT works fine with any Delphi version. I presume NANT is also better supported and has more features you can use since it is used more widely then WANT.

BTW: You can still use MSBuild and call dcc32 if you want. In that way it is the same as NANT. If you move to Delphi 2007 MSBuild has a bigger advantage over NANT since the Delphi projects are in the MSBuild format. But even then you can still use NANT as a buildscript. It will just call out to MSBuild to do the separate builds.

Another build tool that is worth checking out is FinalBuilder. It is very complete and knows Delphi. It should, since it is build using Delphi. They also offer a CruiseControl like Continuous Integration solution. The drawback is that FinalBuilder is not free.

Lars Truijens
+1  A: 

Only couple of days back I managed to implement a complex NANT scripts to compile our projects (which uses d7-2009 compilers, VC++ 2005 and subversion). It was very easy to setup and work when used with NantGui .Unlike MSBuild you dont have to have certain version of .NET installed in your system.

For compiling the projects using dcc32, have a look at the delphi3000 article

TwinForms
A: 

I used XSL to generate the Cruisecontrol project file automatically. We had a large project with many Delphi applications which already used a common Ant script. So generating the CC project file using a script was a natural solution.

Another Continuous Integration solution which works with Ant (and many others) is TeamCity. It is free up to a certain number of build agents / projects. The user interface is awesome.

I successfully use Ant for many years now for all kinds of Delphi projects, from small component libraries to multi-project multi-tier applications.

mjustin