The language itself isn't great, but I don't think that's the main problem with CMake. The whole structure of the thing is like having a dump truck pour a giant pile of tools in front of you. It's all in there somewhere, but good luck figuring out which ones you need.
Out of interest, how's this any different than other build systems like SCons, Waf? Even working out stuff like string substitutions in Make can be confusing at times, in terms of the syntax required IMO.