2020-12-29 01:09:59 +01:00
|
|
|
function(set_build_type)
|
|
|
|
|
|
|
|
message(STATUS "Used build generator: ${CMAKE_GENERATOR}")
|
|
|
|
|
|
|
|
# Set a default build type if none was specified
|
|
|
|
set(DEFAULT_BUILD_TYPE "RelWithDebInfo")
|
|
|
|
if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
|
|
|
set(DEFAULT_BUILD_TYPE "Debug")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|
|
|
message(STATUS
|
|
|
|
"Setting build type to '${DEFAULT_BUILD_TYPE}' as none was specified."
|
|
|
|
)
|
|
|
|
set(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}" CACHE
|
|
|
|
STRING "Choose the type of build." FORCE
|
|
|
|
)
|
|
|
|
# Set the possible values of build type for cmake-gui
|
|
|
|
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
|
|
|
|
"Debug" "Release" "MinSizeRel" "RelWithDebInfo"
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
2023-02-07 17:50:44 +01:00
|
|
|
set(RELEASE_BUILD 1 PARENT_SCOPE)
|
|
|
|
|
2020-12-29 01:09:59 +01:00
|
|
|
if(${CMAKE_BUILD_TYPE} MATCHES "Debug")
|
|
|
|
message(STATUS
|
|
|
|
"Building Debug application with flags: ${CMAKE_C_FLAGS_DEBUG}"
|
|
|
|
)
|
2023-02-07 17:50:44 +01:00
|
|
|
set(RELEASE_BUILD 0 PARENT_SCOPE)
|
2020-12-29 01:09:59 +01:00
|
|
|
elseif(${CMAKE_BUILD_TYPE} MATCHES "RelWithDebInfo")
|
|
|
|
message(STATUS
|
|
|
|
"Building Release (Debug) application with "
|
|
|
|
"flags: ${CMAKE_C_FLAGS_RELWITHDEBINFO}"
|
|
|
|
)
|
|
|
|
elseif(${CMAKE_BUILD_TYPE} MATCHES "MinSizeRel")
|
|
|
|
message(STATUS
|
|
|
|
"Building Release (Size) application with "
|
|
|
|
"flags: ${CMAKE_C_FLAGS_MINSIZEREL}"
|
|
|
|
)
|
|
|
|
else()
|
|
|
|
message(STATUS
|
|
|
|
"Building Release (Speed) application with "
|
|
|
|
"flags: ${CMAKE_C_FLAGS_RELEASE}"
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
endfunction()
|