Build system

From Freehackers
Jump to: navigation, search

Criteria

  • Ease of use
  • Documentation
  • Performance
  • Windows/unix support
  • Support for cross-compilation


Contenders

CMake

  • Used by KDE for compilation
  • Documentation is not very good, but the mailing list is very reactive for questions.
  • Generation of makefiles, or Visual Studio projects
  • Lack support for cross-compilation
  • Written in c.
  • Works very well
  • Language for specifying the rule is a bit simplistic and underdocumented

Scons

  • Written in python.
  • Perf issues on big project (was the main problem when kde tested it)
  • It is a replacement of make itself, it won't generate any project file but is used directly to build the project. It can be integrated into Visual Studio as a custom build rule.
  • language for writing rules : python

Waf

  • waf is initially a fork of scons but has now gone its own life
  • 100kb Python script, no installation needed
  • Projects using waf: XMMS2, ...
  • language for writing rules : python, or xml
  • waf is a build tool itself, it does not generate projects for external build tools
  • windows support ?
  • cross compilation ?

premake

  • build project generator
  • support for makefiles, Visual Studio (all versions), SharpBuilder, MonoDevelop
  • Written in C, code is quite small
  • rules written in lua

autoconf/autotools

  • arf :-)
  • use obfuscated M4 language, lot of files, a nightmare to maintain.
  • historically the only one, hence still used on lot of projects