From fc39c3b48b8952bd773915118b74bc2dab498c6d Mon Sep 17 00:00:00 2001 From: Kornel Benko Date: Wed, 27 May 2020 11:35:48 +0200 Subject: [PATCH] Cmake build: Prohibit use of external boost if using libstdc++ in debug mode We are using the compiler falgs _GLIBCXX_DEBUG and _GLIBCXX_DEBUG_PEDANTIC See https://opensource.apple.com/source/gcc/gcc-1640/libstdc++-v3/docs/html/debug.html --- CMakeLists.txt | 22 +++++++++++++--------- development/cmake/configCompiler.h.cmake | 3 --- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 618f62ac32..552654b918 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -191,6 +191,11 @@ if (LYX_ENABLE_VALGRIND_TESTS) message(FATAL_ERROR "Cannot use valgrind tests, executable valgrind is missing. Please disable LYX_ENABLE_VALGRIND_TESTS") endif() endif() +if (LYX_DEBUG_GLIBC OR LYX_DEBUG_GLIBC_PEDANTIC OR LYX_STDLIB_DEBUG) + if (LYX_EXTERNAL_BOOST) + message(FATAL_ERROR "Using external boost not compatible with debug mode for stdlib") + endif() +endif() if(LYX_DMG) set(LYX_BUNDLE ON) @@ -676,7 +681,14 @@ else() message(STATUS "CMAKE_CXX_STANDARD set to ${CMAKE_CXX_STANDARD}") endif() if(LYX_STDLIB_DEBUG) - set(LYX_CXX_FLAGS "${LYX_CXX_FLAGS} -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC") + set(LYX_CXX_FLAGS "${LYX_CXX_FLAGS} -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC") + else() + if(LYX_DEBUG_GLIBC) + set(LYX_CXX_FLAGS "${LYX_CXX_FLAGS} -D_GLIBCXX_DEBUG") + endif() + if(LYX_DEBUG_GLIBC_PEDANTIC) + set(LYX_CXX_FLAGS "${LYX_CXX_FLAGS} -D_GLIBCXX_DEBUG_PEDANTIC") + endif() endif() set(CMAKE_CXX_FLAGS "${LYX_CXX_FLAGS} -fno-strict-aliasing " CACHE STRING "Set CXX flags" FORCE) set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -D_DEBUG" CACHE STRING "Set debug flags" FORCE) @@ -1065,14 +1077,6 @@ if(MSVC) endif() -if(LYX_DEBUG_GLIBC) - set(_GLIBCXX_DEBUG ON) -endif() - -if(LYX_DEBUG_GLIBC_PEDANTIC) - set(_GLIBCXX_DEBUG_PEDANTIC ON) -endif() - # Xcode compiler if (CMAKE_GENERATOR MATCHES Xcode) if (XCODE_VERSION VERSION_LESS "5.0") diff --git a/development/cmake/configCompiler.h.cmake b/development/cmake/configCompiler.h.cmake index ee8a977be2..9fce467818 100644 --- a/development/cmake/configCompiler.h.cmake +++ b/development/cmake/configCompiler.h.cmake @@ -121,7 +121,4 @@ #define HAVE_MODE_T #endif -#cmakedefine _GLIBCXX_DEBUG 1 -#cmakedefine _GLIBCXX_DEBUG_PEDANTIC 1 - #endif