Overview

The buildsystem is the project responsible for building the Land Builder project in one step.

The buildsystem checks the project out from source control, compiles it, makes an installer, does a test install, runs unit tests, and uninstalls the test install.

Despite being currently dedicated to building the Land Builder project, the buildsystem is designed to be mostly project agnostic, so it should be relatively simple to get it building other projects in a clean way.

If I started again I would possibly use nant, but the current solution is clean, capable and simple.

Technology

The buildsystem is written in python, which is an easy language to rapidly code in. Parsing the log files produced by the compiler and unit tests was trivial.

The installer is created with innosetup. This proved to be very easy to implement in the buildsystem (a few hours), and it works very well.

The buildsystem is invoked by the release manager project.