X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=d3aa1928fb81bd7a9bf38653fe52e56c5a1dd674;hb=6ad1c359fcd7d39fd868dff00a0a0ff586c2bb94;hp=9410c391d271e0d1ea54bd3567597acece210e41;hpb=dd154a5837db1083dfa64eb98038699a8bb49958;p=lyx.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 9410c391d2..d3aa1928fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -102,6 +102,34 @@ endif() include(LyXMacros) include(LyXDestinations) +# Try to get some informations from configure.ac +include(LyXPaths) + +# Value of USE_POSIX_PACKAGING is needed in determineversionandbuildtype() +if(WIN32) + set(CMAKE_PREFIX_PATH Specify-path-to-Qt CACHE PATH "Used Qt version") + if(MSVC) + set(LYX_3RDPARTY_BUILD ON CACHE BOOL "Build 3rdparty libraries" FORCE) + endif() + set(USE_WINDOWS_PACKAGING ON) +elseif(APPLE) + set(USE_MACOSX_PACKAGING ON) +else() + set(USE_POSIX_PACKAGING ON) +endif() + +determineversionandbuildtype("${TOP_SRC_DIR}/configure.ac" _package_list _version_list _envlist LYX_DATE LYX_BUILD_TYPE) +list(GET _package_list 0 PACKAGE_BASE) +list(GET _package_list 1 PACKAGE_VERSION) +list(GET _package_list 2 PACKAGE_BUGREPORT) +list(GET _envlist 0 LYX_DIR_VER) +list(GET _envlist 1 LYX_USERDIR_VER) +list(GET _version_list 0 LYX_VERSION) +list(GET _version_list 1 LYX_MAJOR_VERSION) +list(GET _version_list 2 LYX_MINOR_VERSION) +list(GET _version_list 3 LYX_RELEASE_LEVEL) +list(GET _version_list 4 LYX_RELEASE_PATCH) + # Usage LYX_OPTION # 1. parameter: option name without prefix 'LYX_' # 2. parameter: description @@ -115,6 +143,49 @@ include(LyXDestinations) # 4-n parameter: possible other string values LYX_OPTION_INIT() +LYX_COMBO(ENABLE_BUILD_TYPE "Allows to tweak the compiled code" AUTO release prerelease development gprof) + +if(LYX_ENABLE_BUILD_TYPE MATCHES "AUTO") + message(STATUS "Selecting build type defaults from configure.ac") +else() + set(LYX_BUILD_TYPE "${LYX_ENABLE_BUILD_TYPE}") + message(STATUS "Selecting build type defaults from LYX_ENABLE_BUILD_TYPE") +endif() + +# Select some defaults depending on LYX_BUILD_TYPE +# they can always be overwritten by the respective command line settings +# These settings are only effective on fresh(==empty) CMakeCache.txt +if(LYX_BUILD_TYPE STREQUAL "development") + set(DefaultLyxDebug ON) + set(DefaultLyxRelease OFF) + set(DefaultLyxStdlibDebug ON) + set(DefaultLyxEnableAssertions ON) + set(DefaultLyxProfile OFF) + set(DefaultExternalLibs OFF) +elseif(LYX_BUILD_TYPE STREQUAL "prerelease") + set(DefaultLyxDebug OFF) + set(DefaultLyxRelease OFF) + set(DefaultLyxStdlibDebug OFF) + set(DefaultLyxEnableAssertions OFF) + set(DefaultLyxProfile OFF) + set(DefaultExternalLibs ON) +elseif(LYX_BUILD_TYPE STREQUAL "release") + set(DefaultLyxDebug OFF) + set(DefaultLyxRelease ON) + set(DefaultLyxStdlibDebug OFF) + set(DefaultLyxEnableAssertions OFF) + set(DefaultLyxProfile OFF) + set(DefaultExternalLibs ON) +elseif(LYX_BUILD_TYPE STREQUAL "gprof") + set(DefaultLyxDebug ON) + set(DefaultLyxRelease OFF) + set(DefaultLyxStdlibDebug OFF) + set(DefaultLyxEnableAssertions OFF) + set(DefaultLyxProfile ON) + set(DefaultExternalLibs OFF) +else() + message(FATAL_ERROR "Invalid build type (${LYX_BUILD_TYPE}) encountered") +endif() # Options for all compilers/systems LYX_OPTION(CPACK "Use the CPack management (Implies LYX_INSTALL option)" OFF ALL) @@ -125,9 +196,10 @@ LYX_OPTION(REQUIRE_SPELLCHECK "Abort if no spellchecker available" OFF ALL) LYX_OPTION(ASPELL "Require aspell" OFF ALL) LYX_OPTION(ENCHANT "Require Enchant" OFF ALL) LYX_OPTION(HUNSPELL "Require Hunspell" OFF ALL) -LYX_OPTION(RELEASE "Build release version, build debug when disabled" OFF ALL) -LYX_OPTION(DEBUG "Enforce debug build" OFF ALL) +LYX_OPTION(RELEASE "Build release version, build debug when disabled" ${DefaultLyxRelease} ALL) +LYX_OPTION(DEBUG "Enforce debug build" ${DefaultLyxDebug} 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_STRING(SUFFIX_VALUE "Use this string as suffix" "") LYX_OPTION(PCH "Use precompiled headers" OFF ALL) @@ -140,9 +212,11 @@ LYX_OPTION(ENABLE_URLTESTS "Enable for URL tests" OFF ALL) LYX_OPTION(ENABLE_EXPORT_TESTS "Enable for export tests" OFF ALL) LYX_OPTION(ENABLE_KEYTESTS "Enable for keytests" OFF ALL) if (NOT CMAKE_VERSION VERSION_LESS "3.17") -LYX_OPTION(ENABLE_VALGRIND_TESTS "Enable for tests involving valgrind" OFF ALL) + LYX_OPTION(ENABLE_VALGRIND_TESTS "Enable for tests involving valgrind" OFF ALL) else() -unset(LYX_ENABLE_VALGRIND_TESTS CACHE) + if (LYX_ENABLE_VALGRIND_TESTS) + unset(LYX_ENABLE_VALGRIND_TESTS CACHE) + endif() endif() LYX_OPTION(ASAN "Use address sanitizer" OFF ALL) #LYX_COMBO(USE_FILEDIALOG "Use native or QT file dialog" QT NATIVE) @@ -150,19 +224,19 @@ LYX_COMBO(USE_QT "Use Qt version as frontend" AUTO QT4 QT5) LYX_COMBO(USE_IPO "Interprocedural optimization" OFF AUTO ON) #LYX_OPTION(3RDPARTY_BUILD "Build 3rdparty libs" OFF ALL) LYX_OPTION(DISABLE_CALLSTACK_PRINTING "do not print a callstack when crashing" OFF ALL) -LYX_OPTION(EXTERNAL_Z "OFF := Build 3rdparty lib zlib" ON ALL) -LYX_OPTION(EXTERNAL_DTL "OFF := Build 3rdparty commands dt2dv and dv2dt" ON ALL) -LYX_OPTION(EXTERNAL_ICONV "OFF := Build 3rdparty lib iconvlib" ON ALL) -LYX_OPTION(EXTERNAL_HUNSPELL "OFF := Build 3rdparty lib hunspelllib" ON ALL) +LYX_OPTION(EXTERNAL_Z "OFF := Build 3rdparty lib zlib" ${DefaultExternalLibs} ALL) +LYX_OPTION(EXTERNAL_DTL "OFF := Build 3rdparty commands dt2dv and dv2dt" ${DefaultExternalLibs} ALL) +LYX_OPTION(EXTERNAL_ICONV "OFF := Build 3rdparty lib iconvlib" ${DefaultExternalLibs} ALL) +LYX_OPTION(EXTERNAL_HUNSPELL "OFF := Build 3rdparty lib hunspelllib" ${DefaultExternalLibs} ALL) LYX_COMBO(EXTERNAL_MYTHES "OFF := Build 3rdparty lib mytheslib" AUTO OFF ON) # GCC specific -LYX_OPTION(PROFILE "Build with options for gprof" OFF GCC) -LYX_OPTION(EXTERNAL_BOOST "Use external boost" OFF GCC) +LYX_OPTION(PROFILE "Build with options for gprof" ${DefaultLyxProfile} GCC) +LYX_OPTION(EXTERNAL_BOOST "Use external boost" ${DefaultExternalLibs} 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_PEDANTIC "Enable libstdc++ pedantic debug mode" OFF GCC) -LYX_OPTION(STDLIB_DEBUG "Use debug stdlib" OFF GCC) +LYX_OPTION(STDLIB_DEBUG "Use debug stdlib" ${DefaultLyxStdlibDebug} GCC) # MSVC specific LYX_OPTION(CONSOLE "Show console on Windows" ON MSVC) @@ -184,6 +258,12 @@ if(help OR HELP) RETURN() endif() +if ("${LYX_SUFFIX_VALUE}" MATCHES "") + set(LYX_INSTALL_SUFFIX "${LYX_MAJOR_VERSION}.${LYX_MINOR_VERSION}") +else() + set(LYX_INSTALL_SUFFIX "${LYX_SUFFIX_VALUE}") +endif() + # Check option dependencies if (LYX_ENABLE_VALGRIND_TESTS) find_program(VALGRIND_EXECUTABLE "valgrind") @@ -191,6 +271,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) @@ -328,24 +413,6 @@ else() endif() endif() - -# Try to get some informations from configure.ac - -include(LyXPaths) -file(STRINGS "${TOP_SRC_DIR}/configure.ac" _config_lines) - -if(WIN32) - set(CMAKE_PREFIX_PATH Specify-path-to-Qt CACHE PATH "Used Qt version") - if(MSVC) - set(LYX_3RDPARTY_BUILD ON CACHE BOOL "Build 3rdparty libraries" FORCE) - endif() - set(USE_WINDOWS_PACKAGING ON) -elseif(APPLE) - set(USE_MACOSX_PACKAGING ON) -else() - set(USE_POSIX_PACKAGING ON) -endif() - if(LYX_3RDPARTY_BUILD) # LYX_3RDPARTY_BUILD is not cached anymore, but for compatibility reasons # this enables the build of all 3rd_party libs @@ -355,58 +422,6 @@ if(LYX_3RDPARTY_BUILD) set(LYX_EXTERNAL_MYTHES OFF CACHE STRING "Build 3rdparty mytheslib" FORCE) endif() -macro(setstripped _varname) - if(${ARGC} GREATER 1) - string(STRIP "${ARGV1}" _v) - if (_v MATCHES "^\\[\(.+\)\\]$") - set(_v ${CMAKE_MATCH_1}) - endif() - if(USE_POSIX_PACKAGING) - string(TOLOWER ${_v} ${_varname}) - else() - set(${_varname} ${_v}) - endif() - else() - set(${_varname}) - endif() -endmacro(setstripped) - -foreach(_c_l ${_config_lines} ) - if(_c_l MATCHES "^AC_INIT\\(\([^,]+\),\([^,]+\), *\\[\([^,]+\)\\] *,\(.*\)") - # Not using CMAKE_MATCH_ directly is needed, because - # its value is now changed inside macro setstripped - set(_PB ${CMAKE_MATCH_1}) - set(_PV ${CMAKE_MATCH_2}) - set(_PBU ${CMAKE_MATCH_3}) - setstripped(PACKAGE_BASE ${_PB}) - setstripped(PACKAGE_VERSION ${_PV}) - setstripped(PACKAGE_BUGREPORT ${_PBU}) - if(PACKAGE_VERSION MATCHES "^\([0-9]+\)\\.\([0-9]+\)\(\\.\([0-9]+\)\(\\.\([0-9]+\)\)?\)?.*$") - set(LYX_MAJOR_VERSION ${CMAKE_MATCH_1}) - set(LYX_MINOR_VERSION ${CMAKE_MATCH_2}) - set(LYX_RELEASE_LEVEL ${CMAKE_MATCH_4}) - set(LYX_RELEASE_PATCH ${CMAKE_MATCH_6}) - set(LYX_DIR_VER "LYX_DIR_${CMAKE_MATCH_1}${CMAKE_MATCH_2}x") - set(LYX_USERDIR_VER "LYX_USERDIR_${CMAKE_MATCH_1}${CMAKE_MATCH_2}x") - if (NOT LYX_RELEASE_LEVEL) - set(LYX_RELEASE_LEVEL 0) - endif() - if (NOT LYX_RELEASE_PATCH) - set(LYX_RELEASE_PATCH 0) - endif() - if ("${LYX_SUFFIX_VALUE}" MATCHES "") - set(LYX_INSTALL_SUFFIX "${LYX_MAJOR_VERSION}.${LYX_MINOR_VERSION}") - else() - set(LYX_INSTALL_SUFFIX "${LYX_SUFFIX_VALUE}") - endif() - endif() - endif() - if(_c_l MATCHES "^AC_SUBST\\( *LYX_DATE *, *\\[\\\"(.*)\\\"\\].*") - set(LYX_DATE "${CMAKE_MATCH_1}") - endif() -endforeach(_c_l) -unset(_config_lines) - FIND_PROGRAM(LYX_GITVERSION git) #message(STATUS "gitversion = ${LYX_GITVERSION}") set(LYX_REVISION_VERSION ${LYX_RELEASE_LEVEL}) @@ -580,18 +595,22 @@ get_locale_destination(LYX_LOCALEDIR) set(LYX_ABS_INSTALLED_LOCALEDIR "${CMAKE_INSTALL_PREFIX}/${LYX_LOCALEDIR}") set(LYX_ABS_TOP_SRCDIR "${TOP_SRC_DIR}") -unset(LYX_MAN_DIR CACHE) if(LYX_BUNDLE AND APPLE) - set(LYX_MAN_DIR "${LYX_DATA_SUBDIR}" CACHE STRING "Install location for man pages.") + set(LYX_MAN_DIR_tmp "${LYX_DATA_SUBDIR}") else() if(WIN32) - set(LYX_MAN_DIR "${CMAKE_BINARY_DIR}/usr/local/man/" CACHE STRING "Install location for man pages.") + set(LYX_MAN_DIR_tmp "${CMAKE_BINARY_DIR}/usr/local/man/") elseif(UNIX) - set(LYX_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man/" CACHE STRING "Install location for man pages.") + set(LYX_MAN_DIR_tmp "${CMAKE_INSTALL_PREFIX}/share/man/") else() - set(LYX_MAN_DIR "${CMAKE_INSTALL_PREFIX}/man/" CACHE STRING "Install location for man pages.") + set(LYX_MAN_DIR_tmp "${CMAKE_INSTALL_PREFIX}/man/") endif() endif() +if (NOT LYX_MAN_DIR_tmp EQUAL "${LYX_MAN_DIR}") + unset(LYX_MAN_DIR CACHE) + set(LYX_MAN_DIR "${LYX_MAN_DIR_tmp}" CACHE STRING "Install location for man pages.") +endif() +unset(LYX_MAN_DIR_tmp) mark_as_advanced(LYX_MAN_DIR) # The Win installer cannot be built by CMake because one needs to install plugins for NSIS @@ -652,12 +671,24 @@ else() set(library_type STATIC) endif() -if(NOT MSVC) +if(LYX_ENABLE_ASSERTIONS) + set(LYX_CXX_FLAGS " -DENABLE_ASSERTIONS=1") +else() + set(LYX_CXX_FLAGS "") +endif() + +if(MSVC) + if (CXX11_FLAG MATCHES "\\+\\+([0-9]+)") + set(CMAKE_CXX_STANDARD ${CMAKE_MATCH_1}) + message(STATUS "CMAKE_CXX_STANDARD set to ${CMAKE_CXX_STANDARD}") + endif() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}${LYX_CXX_FLAGS}") +else() if(NOT LYX_QUIET) set(CMAKE_VERBOSE_MAKEFILE ON) endif() - set(LYX_CXX_FLAGS "-Wall -Wunused-parameter ${LYX_GCC11_MODE}") - if(LYX_CXX_FLAGS MATCHES "\\+\\+(14|11|98)") + set(LYX_CXX_FLAGS "-Wall -Wunused-parameter ${LYX_GCC11_MODE}${LYX_CXX_FLAGS}") + if(LYX_GCC11_MODE MATCHES "\\+\\+(14|11|98)") # Thanks to Brad King # 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 @@ -666,7 +697,14 @@ if(NOT MSVC) 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) @@ -677,6 +715,16 @@ if(NOT MSVC) 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) @@ -779,7 +827,7 @@ set(Include_used_spellchecker) # String will be inserted into config.h if (LYX_EXTERNAL_MYTHES MATCHES "AUTO") # try system library first - find_package(MyThesLIB) + find_package(MYTHESLIB) if (MYTHESLIB_FOUND) set(LYX_EXTERNAL_MYTHES ON CACHE STRING "OFF:= Build 3rdparty mytheslib" FORCE) else() @@ -787,7 +835,7 @@ if (LYX_EXTERNAL_MYTHES MATCHES "AUTO") endif() endif() if (LYX_EXTERNAL_MYTHES MATCHES "ON") - find_package(MyThesLIB REQUIRED) + find_package(MYTHESLIB REQUIRED) else() add_subdirectory(3rdparty/mythes) endif() @@ -902,12 +950,12 @@ else() message(STATUS "Boost found") message(STATUS "Boost-libs = ${Boost_LIBRARIES}") set(Lyx_Boost_Libraries ${Boost_LIBRARIES}) - if (LYX_STDLIB_DEBUG) + if (LYX_STDLIB_DEBUG OR LYX_DEBUG_GLIBC OR LYX_DEBUG_GLIBC_PEDANTIC) # Comment from Jean-Marc Lasgouttes: # In general, system boost libraries are incompatible with # the use of stdlib-debug in libstdc++. See ticket #9736 for # details. - message(WARNING "Compiling LyX with stdlib-debug and system boost libraries may lead to crashes. Consider using '-DLYX_STDLIB_DEBUG=OFF' or using '-DLYX_EXTERNAL_BOOST=OFF'") + message(FATAL_ERROR "Compiling LyX with stdlib-debug and system boost libraries may lead to crashes. Consider using '-DLYX_STDLIB_DEBUG=OFF -DLYX_DEBUG_GLIBC=OFF -DLYX_DEBUG_GLIBC_PEDANTIC=OFF' or using '-DLYX_EXTERNAL_BOOST=OFF'") endif() else() message(FATAL_ERROR "Boost not found" ${Boost_ERROR_REASON}) @@ -944,7 +992,7 @@ endif() message(STATUS "") foreach(_v PACKAGE PACKAGE_VERSION - PROGRAM_SUFFIX LYX_DIR_VER LYX_USERDIR_VER + PROGRAM_SUFFIX LYX_VERSION LYX_DIR_VER LYX_USERDIR_VER LYX_ABS_TOP_SRCDIR LYX_ABS_INSTALLED_DATADIR LYX_ABS_INSTALLED_LOCALEDIR LYX_INSTALL_SUFFIX) if(NOT DEFINED ${_v}) @@ -1024,9 +1072,9 @@ if(MSVC) # add here warnings which should be disabled /wdXXXX set(MSVC_W_DISABLE "/wd4288 /wd4355 /wd4800 /wd4996 /wd4311 /wd4312 /wd4505 /wd4267 /wd4512 /wd4245 /wd4127 /wd4180 /wd4231") - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Wp64 ${MSVC_W_ERROR} ${MSVC_W_DISABLE}") - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Wp64 ${MSVC_W_ERROR} ${MSVC_W_DISABLE}") - set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /Wp64 ${MSVC_W_ERROR} ${MSVC_W_DISABLE}") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /W4 ${MSVC_W_ERROR} ${MSVC_W_DISABLE}") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /W4 ${MSVC_W_ERROR} ${MSVC_W_DISABLE}") + set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /W4 ${MSVC_W_ERROR} ${MSVC_W_DISABLE}") else() set(CMAKE_CXX_WARNING_LEVEL 3 CACHE STRING "Warning level" FORCE) @@ -1055,14 +1103,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") @@ -1142,16 +1182,6 @@ endif () add_custom_target (lyx_run_tests COMMAND ${cmd}) set_target_properties(lyx_run_tests PROPERTIES FOLDER "tests") -if(LYX_ASAN) - set(LYX_CXX_FLAGS "-fsanitize=address -fno-omit-frame-pointer -g") - 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/lyx2.2 2>&1 | ./asan_symbolize.py | c++filt ") - message(STATUS) -endif() - if(LYX_INSTALL) if(${LYX_PYTHON_EXECUTABLE} MATCHES "-NOTFOUND") message(STATUS "Python required to create doc!")