diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -16,6 +16,25 @@ option(BUILD_BITCOIN_TX "Build bitcoin-tx" ON) option(BUILD_BITCOIN_QT "Build bitcoin-qt" ON) +# Cmake uses the CMAKE_BUILD_TYPE variable to select the build configuration. +# By default it supports more configurations that needed for Bitcoin ABC, and +# all the releases types set NDEBUG which is unwanted as it disables the assert +# completely. +# We redefine here the flags to suite our needs, by overriding the built-in +# RelWithDebInfo configuration (release with debug info). + +# RelWithDebInfo CFLAGS are set to -g -O2 +set(RELWITHDEBINFO_G_C_FLAG "-g") +set(RELWITHDEBINFO_O_C_FLAG "-O2") + +# RelWithDebInfo CXXFLAGS flags are set to -g -O2 +set(RELWITHDEBINFO_G_CXX_FLAG "-g") +set(RELWITHDEBINFO_O_CXX_FLAG "-O2") +set(CMAKE_C_FLAGS_RELWITHDEBINFO + "${RELWITHDEBINFO_G_C_FLAG} ${RELWITHDEBINFO_O_C_FLAG}") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO + "${RELWITHDEBINFO_G_CXX_FLAG} ${RELWITHDEBINFO_O_CXX_FLAG}") + # Ensure that WINDRES_PREPROC is enabled when using windres. if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") list(APPEND CMAKE_RC_FLAGS "-DWINDRES_PREPROC")