How to change the build type to Release mode in cmake?

I checked it with Visual Studio 2015 and cmake 3.3 .

Short answer

Link

cmake --build {BUILD_DIR_PATH} --target ALL_BUILD --config {BUILD_TYPE}

Example

cmake --build . --target ALL_BUILD --config Release

Long answer

cmake -G{GENERATOR_NAME} -B{BUILD_DIR_PATH} -H{SOURCE_DIR_PATH}

cmake --build {BUILD_DIR_PATH} --target ALL_BUILD --config {BUILD_TYPE}

Example

cmake -GVisual Studio 14 -Bbuild/win32/x86 -H.    

cmake --build build/win32/x86 --target ALL_BUILD --config Release

Additional info

  • "-G" - specifies the generator name

  • "-B" - specifies path to the build folder

  • "-H" - specifies path to the source folder


To change the build type, on Windows, it must be done at build time:

cmake --build {DIR} --config Release

By default it's Debug. I'm still looking for a way of changing this default. CMAKE_BUILD_TYPE doesn't work of course, and tweaking CMAKE_CONFIGURATION_TYPES doesn't work either, obviously for the same reason, they only apply for Unix makefiles, not for Visual projects.


You cannot set the default build type for Visual Studio from the command line.

CMake's Visual Studio Generators will generate the four standard profiles (Debug, RelWithDebInfo, MinSizeRel and Release) and you have to choose the one you want to build from within VS. This is because the information about the active configuration is not part of the project files generated by CMake, but part of the .suo file generated by VS.

If you want an automated build of a particular configuration, use MSBuild instead of VS which allows you to specify a configuration on the command line.