diff --git a/CMakeLists.txt b/CMakeLists.txt index beafdddd87e..564a7002509 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -93,6 +93,7 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT APPLE) OFF) endif() option(WARNINGS_ARE_ERRORS "Treat warnings as errors during compilation" OFF) +option(WITH_GLIBCXX_ASSERTIONS "Enable _GLIBCXX_ASSERTIONS" OFF) option(WITH_CCACHE "Use ccache compiler invocation." OFF) option(WITH_PROFILER "Enable profiler annotations." OFF) set(TEST_TIMEOUT "300" CACHE STRING @@ -347,6 +348,7 @@ add_library(cxx_interface INTERFACE) target_compile_options( cxx_interface INTERFACE -Wall -Wextra $<$:-Werror> + $<$:-D_GLIBCXX_ASSERTIONS> # disable warnings from -Wextra -Wno-sign-compare -Wno-unused-function -Wno-unused-variable -Wno-unused-parameter -Wno-missing-braces diff --git a/maintainer/CI/build_cmake.sh b/maintainer/CI/build_cmake.sh index 341d87f63ae..e2bed21020b 100755 --- a/maintainer/CI/build_cmake.sh +++ b/maintainer/CI/build_cmake.sh @@ -95,6 +95,7 @@ set_default_value make_check_benchmarks false set_default_value with_cuda false set_default_value with_cuda_compiler "nvcc" set_default_value build_type "RelWithAssert" +set_default_value with_glibcxx_assertions true set_default_value with_ccache false set_default_value with_scafacos false set_default_value test_timeout 300 @@ -118,6 +119,7 @@ cmake_params="${cmake_params} -DTEST_TIMEOUT=${test_timeout}" if [ "${with_ccache}" = true ]; then cmake_params="${cmake_params} -DWITH_CCACHE=ON" fi + if [ "${with_scafacos}" = true ]; then cmake_params="${cmake_params} -DWITH_SCAFACOS=ON" fi @@ -144,6 +146,10 @@ if [ "${with_static_analysis}" = true ]; then cmake_params="-DWITH_CLANG_TIDY=ON ${cmake_params}" fi +if [ "${with_glibcxx_assertions}" = true ] && [ "${build_type}" = "RelWithAssert" ]; then + cmake_params="${cmake_params} -DWITH_GLIBCXX_ASSERTIONS=ON" +fi + if [ "${with_cuda}" = true ]; then cmake_params="-DWITH_CUDA=ON -DWITH_CUDA_COMPILER=${with_cuda_compiler} ${cmake_params}" else