What does it mean that CMake is a build system generator and not a build system per se? Simply that CMake can be used to generate various types of build systems. You can use it to generate Visual Studio projects, Makefile projects, Ninja-based ones, Sublime, Eclipse, and a few others.
CMake comes with a set of other tools, such as CTest for executing tests and CPack for packaging and creating setup programs. CMake itself allows exporting and installing targets too.
CMake's generators can be either single-configuration, such as Make or NMAKE, or multi-configuration, such as Visual Studio. For single-configuration ones, you should pass the CMAKE_BUILD_TYPE flag when running the generation for the first time in a folder. For instance, to configure a debug build, you could run cmake <project_directory> -DCMAKE_BUILD_TYPE=Debug. Other predefined configurations are Release, RelWithDebInfo (release with debug symbols), and MinSizeRel (release optimized for minimum...