Common values are <empty>, Debug, Release, RelWithDebInfo and MinSizeRel.
An empty value is usually used with multi-configuration generators such as Visual Studio. The Debug/Release values are usually used with single configuration generators such as Ninja or Unix Makefiles.

If the value is not empty, the CMake cache variable CMAKE_BUILD_TYPE will pre-populated with the value before CMake invocation.

If you desire to use a custom build type, you are able to do so. Any custom build type requires additional configuration in CMakeLists.txt. Please see the CMake wiki for details on extending the default set of build types.