Re: CMake solves many of the mentioned problems
Could not agree more. CMake provides a very simple language with the basics (flow control, for example) and works for both *NIX and Windows. I tried autoconf, tmake and jam but found that CMake tops them all hands down. It's also actively developed with new features added all the time. It provides portable routines for finding libraries, headers or any file (wherever they may be), it easily compiles code conditionally (eg, one header, multiple impl files - one for each platform, etc), it supports config.h style includes, and more.
Finally, its a small, self-contained package and clearly written piece of code.