As a huge bonus, if you started using or currently use TaskWarrior (console based task management), it integrates seamlessly and will track time spent on a task for you.
It's an awesome, open source, extremely robust, and well thought out little ecosystem.
Actually it's more like a "second step" for make. You can use make to generate ninja files, and then ninja does the actual build. The idea is that make makes a lot of decisions that (usually) stay fairly stable as the files change gradually. Obviously CMake and various other build tools can also generate the .ninja files too.
e.g Make/CMake decides whether you're doing a debug or release build, and builds the appropriate ninja files. Ninja then doesn't have any decisions to make, other than purely what to build, which makes it fast.
It's used for Chrome/Chromium, and I believe the "no-op" build time is still under a second. If you then change a .cpp, it will only compile the absolute minimum, and calculation as to what to build is incredibly fast. make is considerably slower on the same set of files (so they say, not tested it personally, but the figures are around somewhere).
Not associated, but a big fan. Console based, so easily scriptable. Use it not for consulting but time tracking between projects.