Amend2 26fa3b3d: Added support for sanity checks (Option LYX_ENABLE_ASSERTIONS)

This commit is contained in:
Kornel Benko 2020-07-13 13:51:44 +02:00
parent bdaad972cf
commit 25b4229c58

View File

@ -141,15 +141,18 @@ list(GET _version_list 4 LYX_RELEASE_PATCH)
if(LYX_BUILD_TYPE STREQUAL "development") if(LYX_BUILD_TYPE STREQUAL "development")
set(DefaultLyxDebug ON) set(DefaultLyxDebug ON)
set(DefaultLyxRelease OFF) set(DefaultLyxRelease OFF)
set(DefaultStdlibDebug ON) set(DefaultLyxStdlibDebug ON)
set(DefaultLyxEnableAssertions ON)
elseif(LYX_BUILD_TYPE STREQUAL "prerelease") elseif(LYX_BUILD_TYPE STREQUAL "prerelease")
set(DefaultLyxDebug OFF) set(DefaultLyxDebug OFF)
set(DefaultLyxRelease OFF) set(DefaultLyxRelease OFF)
set(DefaultStdlibDebug OFF) set(DefaultLyxStdlibDebug OFF)
set(DefaultLyxEnableAssertions OFF)
elseif(LYX_BUILD_TYPE STREQUAL "release") elseif(LYX_BUILD_TYPE STREQUAL "release")
set(DefaultLyxDebug OFF) set(DefaultLyxDebug OFF)
set(DefaultLyxRelease ON) set(DefaultLyxRelease ON)
set(DefaultStdlibDebug OFF) set(DefaultLyxStdlibDebug OFF)
set(DefaultLyxEnableAssertions OFF)
else() else()
message(FATAL_ERROR "Unknown build type (${LYX_BUILD_TYPE}) encountered") message(FATAL_ERROR "Unknown build type (${LYX_BUILD_TYPE}) encountered")
endif() endif()
@ -173,6 +176,7 @@ LYX_OPTION(HUNSPELL "Require Hunspell" OFF ALL)
LYX_OPTION(RELEASE "Build release version, build debug when disabled" ${DefaultLyxRelease} ALL) LYX_OPTION(RELEASE "Build release version, build debug when disabled" ${DefaultLyxRelease} ALL)
LYX_OPTION(DEBUG "Enforce debug build" ${DefaultLyxDebug} ALL) LYX_OPTION(DEBUG "Enforce debug build" ${DefaultLyxDebug} ALL)
LYX_OPTION(NO_OPTIMIZE "Don't use any optimization/debug flags" OFF ALL) LYX_OPTION(NO_OPTIMIZE "Don't use any optimization/debug flags" OFF ALL)
LYX_OPTION(ENABLE_ASSERTIONS "Run sanity checks in the program" ${DefaultLyxEnableAssertions} ALL)
LYX_OPTION(PACKAGE_SUFFIX "Use version suffix for packaging" ON ALL) LYX_OPTION(PACKAGE_SUFFIX "Use version suffix for packaging" ON ALL)
LYX_STRING(SUFFIX_VALUE "Use this string as suffix" "") LYX_STRING(SUFFIX_VALUE "Use this string as suffix" "")
LYX_OPTION(PCH "Use precompiled headers" OFF ALL) LYX_OPTION(PCH "Use precompiled headers" OFF ALL)
@ -209,7 +213,7 @@ LYX_OPTION(EXTERNAL_BOOST "Use external boost" OFF GCC)
LYX_OPTION(PROGRAM_SUFFIX "Append version suffix to binaries" ON GCC) LYX_OPTION(PROGRAM_SUFFIX "Append version suffix to binaries" ON GCC)
LYX_OPTION(DEBUG_GLIBC "Enable libstdc++ debug mode" OFF GCC) LYX_OPTION(DEBUG_GLIBC "Enable libstdc++ debug mode" OFF GCC)
LYX_OPTION(DEBUG_GLIBC_PEDANTIC "Enable libstdc++ pedantic debug mode" OFF GCC) LYX_OPTION(DEBUG_GLIBC_PEDANTIC "Enable libstdc++ pedantic debug mode" OFF GCC)
LYX_OPTION(STDLIB_DEBUG "Use debug stdlib" ${DefaultStdlibDebug} GCC) LYX_OPTION(STDLIB_DEBUG "Use debug stdlib" ${DefaultLyxStdlibDebug} GCC)
# MSVC specific # MSVC specific
LYX_OPTION(CONSOLE "Show console on Windows" ON MSVC) LYX_OPTION(CONSOLE "Show console on Windows" ON MSVC)
@ -644,17 +648,24 @@ else()
set(library_type STATIC) set(library_type STATIC)
endif() endif()
if(LYX_ENABLE_ASSERTIONS)
set(LYX_CXX_FLAGS " -DENABLE_ASSERTIONS=1")
else()
set(LYX_CXX_FLAGS "")
endif()
if(MSVC) if(MSVC)
if (CXX11_FLAG MATCHES "\\+\\+([0-9]+)") if (CXX11_FLAG MATCHES "\\+\\+([0-9]+)")
set(CMAKE_CXX_STANDARD ${CMAKE_MATCH_1}) set(CMAKE_CXX_STANDARD ${CMAKE_MATCH_1})
message(STATUS "CMAKE_CXX_STANDARD set to ${CMAKE_CXX_STANDARD}") message(STATUS "CMAKE_CXX_STANDARD set to ${CMAKE_CXX_STANDARD}")
endif() endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}${LYX_CXX_FLAGS}")
else() else()
if(NOT LYX_QUIET) if(NOT LYX_QUIET)
set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_VERBOSE_MAKEFILE ON)
endif() endif()
set(LYX_CXX_FLAGS "-Wall -Wunused-parameter ${LYX_GCC11_MODE}") set(LYX_CXX_FLAGS "-Wall -Wunused-parameter ${LYX_GCC11_MODE}${LYX_CXX_FLAGS}")
if(LYX_CXX_FLAGS MATCHES "\\+\\+(14|11|98)") if(LYX_GCC11_MODE MATCHES "\\+\\+(14|11|98)")
# Thanks to Brad King <brad.king@kitware.com> # Thanks to Brad King <brad.king@kitware.com>
# for the pointer to https://cmake.org/cmake/help/v3.6/variable/CMAKE_CXX_STANDARD.html # for the pointer to https://cmake.org/cmake/help/v3.6/variable/CMAKE_CXX_STANDARD.html
# This allows us to use QT5.7 with recent g++ (version >= 4.9) compilers # This allows us to use QT5.7 with recent g++ (version >= 4.9) compilers