From c0ab8ed4e9bf2a1db8ce7edf4fc8cb29679b8c2c Mon Sep 17 00:00:00 2001 From: Corentin Le Molgat Date: Mon, 21 Feb 2022 15:32:42 +0100 Subject: [PATCH] cmake: rework default build type management --- CMakeLists.txt | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 73dbd85968..5dd53182ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,10 +20,21 @@ set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_OSX_DEPLOYMENT_TARGET 10.15) # Default Build Type to be Release -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE "Release" CACHE STRING +get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(isMultiConfig) + if(NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_CONFIGURATION_TYPES "Release;Debug" CACHE STRING + "Choose the type of builds, options are: Debug Release RelWithDebInfo MinSizeRel. (default: Release;Debug)" + FORCE) + endif() + message(STATUS "Configuration types: ${CMAKE_CONFIGURATION_TYPES}") +else() + if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel. (default: Release)" FORCE) + endif() + message(STATUS "Build type: ${CMAKE_BUILD_TYPE}") endif() # Layout build dir like install dir