What do you like best?
You thought writing software was hard? Try getting it to build and run on all kinds of different devices and operating systems. This is where CMake shines. It's currently the best build system out there for cross-platform development. Getting software to work on Windows, Mac, and the various flavors of linux is still no easy task, but CMake is the answer from the build perspective.
It also has a big community and tooling support has been growing rapidly.
You'll be able to find some kind of IDE support guaranteed. Visual Studio / Jet Brains.
The support was added recently, but you should be able to use it in production.
What do you dislike?
Terrible syntax, and very slow start up times. Let me begin with the start-up times. We actually had to move away from CMake because our code base got so large that the initial parsing and book-keeping of CMake was taking way too long. We'd wait 5 minutes just to have CMake tell us that everything was already built. Maybe there were work-arounds for this, but overall we decided to switch to the big hitters (buck, blaze, bazel, ninja).
The syntax is bad but most people just shrug and say, "hey as long as I can get my software built".
The thing is though, that eventually you'll want to mix languages, mix compilers, do debugs, releases, doc generation, special test artifacts, and the syntax of Cmake becomes a hindrance. Other languages let you build rules in a python/groovy like syntax, and this is key. The language of a build system is more important than people first realize, and kludging together your build with a hacky macro language becomes a deal breaker.
Recommendations to others considering the product
If you're working in a small project (say less than 5,000 files), CMake is a good choice.
Regardless of what operating system you're developing on, and regardless of your targets, CMake is a good choice. It has a great community. If you have issues, there are plenty of people to help answer questions. If you are only on linux, mixing languages, and your codebase is very large, take a look at some of the build systems that have come out of Facebook / Google instead.
What business problems are you solving with the product? What benefits have you realized?
Again, CMake solves the problem of cross-compilation through consistency of single build files.
Its pretty simple to take a working CMake example and roll with it. The barrier of entry to using CMake is low, but the difficulty increases as you attempt to do unique and novel things within your software build. Yet, I'd still say that CMake is much easier than writing raw Makefiles. CMake provides a hint of confidence to users in the open source community as well. I'm much more willing to contribute to a project if I see Cmake, as apposed to raw makefiles (or no build files at all).