diff --git a/CMakeLists.txt b/CMakeLists.txt index 3d7e76710c56a245bdcf5ce756a296845480b2c0..d7d41f69153a6426347573606357444c1267cee2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -73,6 +73,7 @@ option(OGS_DISABLE_LOGGING "Disables all logog messages." OFF) # Compiler flags set(OGS_CXX_FLAGS "" CACHE STRING "Additional C++ compiler flags.") +option(STL_NO_DEBUG "Disable STL debug in debug build" OFF) # Print CMake variable values if (OGS_CMAKE_DEBUG) diff --git a/scripts/cmake/CompilerSetup.cmake b/scripts/cmake/CompilerSetup.cmake index 4b72f76fbe36244e4d6626fd6907725f217e942a..651c48e2315e261b93a4b6efb55470094cf3bce1 100644 --- a/scripts/cmake/CompilerSetup.cmake +++ b/scripts/cmake/CompilerSetup.cmake @@ -40,7 +40,9 @@ if(COMPILER_IS_GCC) endif() else() # Enable assertions in STL in debug mode. - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_ASSERT -D_GLIBCXX_DEBUG_PEDASSERT -D_GLIBCXX_DEBUG_VERIFY") + if (NOT STL_NO_DEBUG) + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_ASSERT -D_GLIBCXX_DEBUG_PEDASSERT -D_GLIBCXX_DEBUG_VERIFY") + endif() endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-deprecated -Wall -Wextra") endif() # COMPILER_IS_GCC @@ -53,7 +55,9 @@ if(COMPILER_IS_CLANG) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wno-c++98-compat-pedantic -march=native") if(CMAKE_BUILD_TYPE STREQUAL "Debug") # Enable assertions in STL in debug mode. - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_ASSERT -D_GLIBCXX_DEBUG_PEDASSERT -D_GLIBCXX_DEBUG_VERIFY") + if (NOT STL_NO_DEBUG) + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_ASSERT -D_GLIBCXX_DEBUG_PEDASSERT -D_GLIBCXX_DEBUG_VERIFY") + endif() endif() endif() # COMPILER_IS_CLANG