I've been learning some CMake, and it's a weird language. "ON" is used for booleans, it puts code in .txt files, but it still has a lispy macro system. I suspect the vast majority of people (including me) learn CMake from a large preexisting build. That will bias impressions.