
Just my 2 cent testimonial... In January I moved a moderate-sized commercial project from Makefiles to CMake. I think I was more powerful after a week with CMake than after ten years with makefiles and autoconf. Build dependencies comes effortlessly (no more clumsy -MM hacks), VPATH builds are the norm, and unit tests are handled by design. Then we do the Windows port, and a few minor improvements to the CMakeList file to find dependencies and the whole shebang is building cross-platform under Visual Studio. Then we try out KDevelop, and a simple `cmake -G KDevelop3` provides us with project files with zero additional effort. We now have different developers simultaneously using KDevelop, using vim/make, and using MSVC++ on Windows, no problem. The real rough spots are documentation, and the lack of clear standard usage. CMake documentation is confusing. CMake has been a moving (improving) target during the past couple years. As a result, there seems to be a lot of conflicting documentation floating around. For the same reason, there are multiple deprecated ways to do anything, with no clear standard usage. The community can't even seem to agree whether CMake commands SHOULD BE UPPER or lower case. That said, CMake beats out any other build system I've used hands down.