Choose a system choice?

I am currently creating a new software project and want to have an automatic build system. The project is quite complex, including C, C #. It should also create automatic bindings (Python, PHP, Java, Ruby, etc.) using an external tool (SWIG).

The project should be able to create and run on Linux, Windows, and possibly Mac OS X.

I looked at CMake, autotools and waf. Anyone have any suggestions?

+4
source share
6 answers

I suggest you study Cruise Control and / or Cruise Control.NET for automation and continuous integration. Also look at NAnt and Ant for real script build capabilities. I use them every where I go, and almost every day, and I still have to deal with something that I could not do. Sometimes I had to create my own NAnt tasks ... which I did in C # ... and still no problem!

+5
source

make is certainly capable of doing whatever you ask. I would start with this; It is your best choice for portability.

If you still find that you have problems with portability, then auto-utilities are often a smart solution. They have enough pain to get a setting that I prefer to avoid unless I really feel like I need them.

+3
source

TeamCity , less xml config compared to Cruise Control.

+1
source

Others also use yam

but I am very pleased with CMake. It is available for these platforms and provides many functions for a script to fully automate custom build procedures (on supported platforms).

In my case, this is a crisp backend build in C, which uses the Tcl and GSL libraries in combination with the interface in Tcl / Tk and the automatic creation of stand-alone executables (starpack / tclkit) on Linux, MacOS and Win (MingW and Visual Studio).

+1
source

I personally use CMake + mingw + Qt4 for all my cross-platform tasks, however I am pretty sure it is pretty easy to accept CMake for swig / mono on linux and .net on windows.

0
source

The Google build system (now open source) is a good alternative: http://bazel.io/

0
source

All Articles