- No need to list every source file in scripts, since one can use
globbing.* 2. Build scripts are written in Python and can use the full power of a general programming language. This is immensely important once you start to do non-standard things during the build.
Globbing while easy is not the correct way to do IMO. Globbing means the that build system has no way of knowing if new files have appeared unless you rerun the build system again. Unless waf has some magic I'm not aware of. Their more be more issues with recursive make but I haven't done a lot of looking.
- On Windows it does not require emulation layers or shell
replacements like Cygwin or MSYS.
Neither does the build system that I was working on.
- Good support for parallel builds, even when the sources and build
scripts are in multiple directories.
Cmake provides this.
- Can replace the current btool + automake combo, so we finally have
one build system for all platforms. (This is actually the main reason.)
Agreed this is a great goal. Though I have not been working on the Cmake build lately it is my goal as well.
- It takes about 100 kB, so it can be bundled with the source
tarball.
It is a moot point. All the build system scripts are in BZR.
You still have to install python. While it is likely that any *nix platform will have python installed by default is much higher than than any Windows or OSX systems. It is not 100% a crossed the board. Setting up a build environment some work is going to have to happen. It does not matter which build system script you use some prerequisites to function have to be installed.
- It is easy to include generated .cpp code as the source of an
executable or library (once you figure out the correct way - the docs are useless).
Bad Documents that sounds like one of the reasons you want not use cmake. Cmake documention is ok and has a larger community of people to help.
- Everything created by the build system is kept in the "build"
directory (the name can be changed), so distclean is as simple as deleting "build".
This can be done in autotools and cmake. Not as common in autotool builds but it works even with inkscape's current scripts (last time in checked). Out of source builds on the other hand is cmake's bread and butter.
Joshua L. Blocher verbalshadow