X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=5e9c7c860b93ae77a46cdb056819eb05076fc075;hb=90ea50811191dc891d2b3407c01527f1f2d745dd;hp=c3eed1a52d4a0d39719ae4f385b508e36ed50d41;hpb=fa704d50f70e2ead66f34594023aebb50714926c;p=lyx.git diff --git a/CMakeLists.txt b/CMakeLists.txt index c3eed1a52d..5e9c7c860b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -217,7 +217,7 @@ else() unset(LYX_ENABLE_VALGRIND_TESTS CACHE) endif() endif() -LYX_OPTION(ASAN "Use address sanitizer" OFF ALL) +LYX_COMBO(DEBUG_SANITIZE "Use sanitize check" NONE ADDRESS UNSPECIFIED) #LYX_COMBO(USE_FILEDIALOG "Use native or QT file dialog" QT NATIVE) LYX_COMBO(USE_QT "Use Qt version as frontend" AUTO QT4 QT5 QT6) LYX_COMBO(USE_IPO "Interprocedural optimization" OFF AUTO ON) @@ -674,6 +674,19 @@ else() set(LYX_CXX_FLAGS "") endif() +if (LYX_DEBUG_SANITIZE MATCHES "ADDRESS") + set(LYX_CXX_FLAGS "${LYX_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer") + message(STATUS) + message(STATUS "Address sanitizer enabled. Usage:") + message(STATUS " wget https://llvm.org/svn/llvm-project/compiler-rt/trunk/lib/asan/scripts/asan_symbolize.py") + message(STATUS " chmod +x ./asan_symbolize.py") + message(STATUS " ./bin/${_lyx} 2>&1 | ./asan_symbolize.py | c++filt ") + message(STATUS) +elseif (LYX_DEBUG_SANITIZE MATCHES "UNSPECIFIED") + set(LYX_CXX_FLAGS "${LYX_CXX_FLAGS} -fsanitize=undefined -fno-omit-frame-pointer") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined -fno-omit-frame-pointer") +endif() + if(MSVC) if (CXX11_FLAG MATCHES "\\+\\+([0-9]+)") set(CMAKE_CXX_STANDARD ${CMAKE_MATCH_1}) @@ -701,7 +714,7 @@ else() # check_cxx_source_compiles("..." HAVE_DEF_MAKE_UNIQUE) include(CheckCXXCompilerFlag) unset(CHECK_WNODEPRECATEDCOPY_FLAG CACHE) - CHECK_CXX_COMPILER_FLAG("-Wno-deprecated-copy" CHECK_WNODEPRECATEDCOPY_FLAG) + CHECK_CXX_COMPILER_FLAG("-Wdeprecated-copy" CHECK_WNODEPRECATEDCOPY_FLAG) if(${CHECK_WNODEPRECATEDCOPY_FLAG}) set(LYX_CXX_FLAGS "-Wall -Wextra -Wno-deprecated-copy ${LYX_GCC11_MODE}${LYX_CXX_FLAGS}") else() @@ -726,16 +739,6 @@ else() endif() endif() -if(LYX_ASAN) - set(CMAKE_CXX_FLAGS "-fsanitize=address -fno-omit-frame-pointer -g ${CMAKE_CXX_FLAGS}") - message(STATUS) - message(STATUS "Address sanitizer enabled. Usage:") - message(STATUS " wget https://llvm.org/svn/llvm-project/compiler-rt/trunk/lib/asan/scripts/asan_symbolize.py") - message(STATUS " chmod +x ./asan_symbolize.py") - message(STATUS " ./bin/${_lyx} 2>&1 | ./asan_symbolize.py | c++filt ") - message(STATUS) -endif() - set(LYX_CXX_FLAGS_EXTRA "" CACHE STRING "Desired semicolon separated list of extra cxx compile flags, like '-Werror'") mark_as_advanced(LYX_CXX_FLAGS_EXTRA) if(LYX_CXX_FLAGS_EXTRA) @@ -1109,7 +1112,7 @@ if(MSVC) endif() - if (NOT Qt5Core_FOUND) + if (NOT (Qt5Core_FOUND OR Qt6Core_FOUND)) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Zc:wchar_t-") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zc:wchar_t-") set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /Zc:wchar_t-")