Two notes on CMake...
If you actually want to know what the heck it is doing when it fails,
make VERBOSE=1prints the commands it's running. This is dumb, but maybe forgiveable when you consider not everyone compiling the software may be developing it, and most users will only care about the progress meter. Then again, I'd rather get away from non-developers compiling software.
If you actually want to see output when your tests (from
make test CTEST_OUTPUT_ON_FAILURE=1, otherwise the only failure report you get is the name of your executable, not anything it printed - like the list of tests that actually failed. That that isn't on by default is ridiculous.