My company has been switching to CMake over the past 8 months, and it's not that bad.
Well, not usually.
Their conditional expressions are goofy, it's never clear whether mixing variables and lists will do the right thing, and good luck doing something complex using only documentation. So yes, the CMake language is bad.
But once you write a file, it Just Works. I don't usually need to revisit a CMake file to correct something, unless I'm adding/removing files or dependencies. I never had that feeling with bjam or autoconf - small changes to the code always had a major impact on these build systems. We compile code on both Windows and Linux, so it's the only viable option, and thankfully it's not too bad :)
Well, not usually.
Their conditional expressions are goofy, it's never clear whether mixing variables and lists will do the right thing, and good luck doing something complex using only documentation. So yes, the CMake language is bad.
But once you write a file, it Just Works. I don't usually need to revisit a CMake file to correct something, unless I'm adding/removing files or dependencies. I never had that feeling with bjam or autoconf - small changes to the code always had a major impact on these build systems. We compile code on both Windows and Linux, so it's the only viable option, and thankfully it's not too bad :)