1. 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
3. 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.
4. Good support for parallel builds, even when the sources and build
scripts are in multiple directories.
Cmake provides this.
5. Can replace the current btool + automake combo, so we finally
one build system for all platforms. (This is actually the main
Agreed this is a great goal. Though I have not been working on the Cmake build
lately it is my goal as well.
6. It takes about 100 kB, so it can be bundled with the source
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
7. 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
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.
8. Everything created by the build system is kept in the
directory (the name can be changed), so distclean is as simple as
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