让 CMake 项目默认为 Release 构建类型

Have a CMake project default to the Release build type

我应该如何让我的 CMake 项目默认配置为 Release 而不是 Debug 构建?

我从简单的开始:

if(NOT CMAKE_BUILD_TYPE)
    set(CMAKE_BUILD_TYPE "Release")
endif()

但感谢@RaulLaasner 的建议,我现在这样做:

if (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "")
    set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE)
endif()

这似乎更稳健。


编辑: 事后反思,我决定 更改 CMake 脚本本身的默认值。也许最好保留与世界上所有其他 CMake 脚本相同的默认值。

您可以尝试以下方法:

if (NOT EXISTS ${CMAKE_BINARY_DIR}/CMakeCache.txt)
  if (NOT CMAKE_BUILD_TYPE)
    set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE)
  endif()
endif()