X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=618f62ac3246d21fcb3d5c9a8a3d799b7477789a;hb=125f5d5d20100adc68b8da39a2ebb9a98f22fac2;hp=d36eb710dc9f940545cbc5594fbde01efd87851c;hpb=1ae013f816de562a4181696d32186d0845835748;p=lyx.git diff --git a/CMakeLists.txt b/CMakeLists.txt index d36eb710dc..618f62ac32 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,7 +49,7 @@ if(COMMAND cmake_policy) endif() cmake_policy(SET CMP0020 NEW) if(POLICY CMP0075) - cmake_policy(SET CMP0075 OLD) + cmake_policy(SET CMP0075 NEW) endif() endif() @@ -139,23 +139,30 @@ LYX_OPTION(BUNDLE "Build bundle (experimental) " OFF ALL) 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) +else() +unset(LYX_ENABLE_VALGRIND_TESTS CACHE) +endif() LYX_OPTION(ASAN "Use address sanitizer" OFF ALL) -LYX_COMBO(USE_FILEDIALOG "Use native or QT file dialog" QT NATIVE) +#LYX_COMBO(USE_FILEDIALOG "Use native or QT file dialog" QT NATIVE) 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_COMBO(EXTERNAL_MYTHES "OFF := Build 3rdparty lib mytheslib" AUTO OFF ON) # GCC specific -LYX_OPTION(PROFILE "Build profile version" OFF GCC) +LYX_OPTION(PROFILE "Build with options for gprof" OFF GCC) LYX_OPTION(EXTERNAL_BOOST "Use external boost" OFF 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(PROFILE "Build with options for gprof" OFF GCC) # MSVC specific LYX_OPTION(CONSOLE "Show console on Windows" ON MSVC) @@ -178,6 +185,12 @@ if(help OR HELP) endif() # Check option dependencies +if (LYX_ENABLE_VALGRIND_TESTS) + find_program(VALGRIND_EXECUTABLE "valgrind") + if (NOT VALGRIND_EXECUTABLE) + message(FATAL_ERROR "Cannot use valgrind tests, executable valgrind is missing. Please disable LYX_ENABLE_VALGRIND_TESTS") + endif() +endif() if(LYX_DMG) set(LYX_BUNDLE ON) @@ -241,8 +254,6 @@ if(LYX_DEPENDENCIES_DOWNLOAD) endforeach() endif() - - message(STATUS) set(EXECUTABLE_OUTPUT_PATH ${TOP_BINARY_DIR}/bin) @@ -252,13 +263,31 @@ else() set(LIBRARY_OUTPUT_PATH ${TOP_BINARY_DIR}/lib) endif() +set(LYX_IPO_SUPPORTED OFF) +if (POLICY CMP0069) + cmake_policy(SET CMP0069 NEW) + if(LYX_USE_IPO MATCHES "AUTO") + # Enable LTO if supported and not debugging + if (NOT LYX_DEBUG) + include(CheckIPOSupported) + check_ipo_supported(RESULT LYX_IPO_SUPPORTED) + endif() + else() + set(LYX_IPO_SUPPORTED ${LYX_USE_IPO}) + endif() +endif() +if (LYX_IPO_SUPPORTED) + set(LYX_USE_IPO "ON" CACHE STRING "Use interprocedural optimization" FORCE) +else() + set(LYX_USE_IPO "OFF" CACHE STRING "Use interprocedural optimization" FORCE) +endif() # Set to some meaningful default find_package(CXX11Compiler) if(NOT CXX11COMPILER_FOUND) message(FATAL_ERROR "A C++11 compatible compiler is required.") endif() -set(LYX_GCC11_MODE) +unset(LYX_GCC11_MODE) if(UNIX OR MINGW) if (CMAKE_CXX_COMPILER_ID MATCHES "^([cC]lang|AppleClang)$") # ignore the GCC_VERSION for clang @@ -270,30 +299,36 @@ if(UNIX OR MINGW) set(LYX_USE_STD_REGEX 0) endif() else() - execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpfullversion OUTPUT_VARIABLE GCC_VERSION ERROR_VARIABLE _error RESULT_VARIABLE _err OUTPUT_STRIP_TRAILING_WHITESPACE) + #message(STATUS "dumpfullversion: error = ${_error}, result = ${_err}") + if (_err) + # previous check failed, try again with _old_ parameter + execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION ERROR_VARIABLE _error RESULT_VARIABLE _err OUTPUT_STRIP_TRAILING_WHITESPACE) + #message(STATUS "dumpversion: error = ${_error}, result = ${_err}") + endif() message(STATUS "Using GCC version ${GCC_VERSION}") - if(GCC_VERSION VERSION_LESS 4.9) - if(GCC_VERSION VERSION_LESS 4.6) - message(FATAL_ERROR "gcc >= 4.6 is required.") - endif() - # in gcc is unusable in versions less than 4.9.0 - # see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631 - set(LYX_USE_STD_REGEX 0) + if(GCC_VERSION VERSION_LESS 4.6) + message(FATAL_ERROR "gcc >= 4.6 is required.") + elseif(GCC_VERSION VERSION_LESS 4.9) + # in gcc is unusable in versions less than 4.9.0 + # see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631 + set(LYX_USE_STD_REGEX 0) else() - set(LYX_USE_STD_REGEX 1) + set(LYX_USE_STD_REGEX 1) endif() endif() set(LYX_GCC11_MODE "${CXX11_FLAG}") else() - set(LYX_USE_STD_REGEX 0) -# if(MSVC10) -# set(LYX_USE_STD_REGEX 1) #TODO should we use it in ECMAScript mode? -# endif() + if(MSVC_VERSION LESS 1900) + # Drop support for msvc versions prior to 1900 (Visual Studio 2015) + message(FATAL_ERROR "Visual Studio >= 2015 is required.") + set(LYX_USE_STD_REGEX 0) + else() + set(LYX_USE_STD_REGEX 1) + endif() endif() -set(VERSION_INFO "CMake Build") - # Try to get some informations from configure.ac include(LyXPaths) @@ -323,6 +358,9 @@ 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() @@ -335,15 +373,28 @@ endmacro(setstripped) foreach(_c_l ${_config_lines} ) if(_c_l MATCHES "^AC_INIT\\(\([^,]+\),\([^,]+\), *\\[\([^,]+\)\\] *,\(.*\)") - setstripped(PACKAGE_BASE ${CMAKE_MATCH_1}) - setstripped(PACKAGE_VERSION ${CMAKE_MATCH_2}) - setstripped(PACKAGE_BUGREPORT ${CMAKE_MATCH_3}) - if(PACKAGE_VERSION MATCHES "^\([0-9]+\)\\.\([0-9]+\)\(\\.\([0-9]+\)\)?.*$") + # 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_VERSION ${CMAKE_MATCH_4}) + 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() + set(LYX_VERSION "${LYX_MAJOR_VERSION}.${LYX_MINOR_VERSION}") if ("${LYX_SUFFIX_VALUE}" MATCHES "") set(LYX_INSTALL_SUFFIX "${LYX_MAJOR_VERSION}.${LYX_MINOR_VERSION}") else() @@ -355,27 +406,40 @@ foreach(_c_l ${_config_lines} ) 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_VERSION}) -set(LYX_PACKAGE_RELEASE "1") +set(LYX_REVISION_VERSION ${LYX_RELEASE_LEVEL}) +set(LYX_PACKAGE_RELEASE "UNDEFINED") if(LYX_GITVERSION) if (LYX_LOCALVERSIONING) - # Find the revision number and for later use + # Find the revision number for later use EXECUTE_PROCESS(COMMAND ${LYX_GITVERSION} describe --match 2.0.0 HEAD - WORKING_DIRECTORY "${TOP_SRC_DIR}" OUTPUT_VARIABLE tmp_LYX_PACKAGE_RELEASE OUTPUT_STRIP_TRAILING_WHITESPACE) - if (tmp_LYX_PACKAGE_RELEASE MATCHES "^2\\.0\\.0\\-\([0-9]+\)\\-\(.*\)$") - set(LYX_PACKAGE_RELEASE ${CMAKE_MATCH_2}) - # We will add offset of 40000 to get appropriate value to - # previous svn. - # We use this value than also to set the package-patch-value - MATH(EXPR tmp_REVISION_VERSION "(${CMAKE_MATCH_1}+40000)") - set(LYX_REVISION_VERSION "${LYX_RELEASE_VERSION}-${tmp_REVISION_VERSION}git") - set(ENABLE_DIST ON) + WORKING_DIRECTORY "${TOP_SRC_DIR}" + RESULT_VARIABLE tmp_GIT_RESULT + OUTPUT_VARIABLE tmp_LYX_PACKAGE_RELEASE + ERROR_VARIABLE tmp_GIT_ERROR + OUTPUT_STRIP_TRAILING_WHITESPACE) + if (tmp_GIT_RESULT EQUAL 0) + if (tmp_LYX_PACKAGE_RELEASE MATCHES "^2\\.0\\.0\\-\([0-9]+\)\\-\(.*\)$") + set(LYX_PACKAGE_RELEASE ${CMAKE_MATCH_2}) + # We will add offset of 40000 to get appropriate value to + # previous svn. + # We use this value than also to set the package-patch-value + MATH(EXPR tmp_REVISION_VERSION "(${CMAKE_MATCH_1}+40000)") + set(LYX_REVISION_VERSION "${LYX_RELEASE_LEVEL}-${tmp_REVISION_VERSION}git") + set(ENABLE_DIST ON) + endif() endif() endif() endif() +if (LYX_PACKAGE_RELEASE MATCHES "UNDEFINED") + set(LYX_PACKAGE_RELEASE "1") + if (LYX_RELEASE_PATCH GREATER 0) + set(LYX_REVISION_VERSION "${LYX_RELEASE_LEVEL}.${LYX_RELEASE_PATCH}") + endif() +endif() # Set the programs (lyx, tex2lyx, etc.) suffix # When building an OS X bundle, we will append @@ -512,22 +576,27 @@ if(NOT LYX_DATA_SUBDIR) endif() endif() -set(LYX_ABS_INSTALLED_DATADIR "${CMAKE_INSTALL_PREFIX}") +set(LYX_ABS_INSTALLED_DATADIR "${CMAKE_INSTALL_PREFIX}/${LYX_DATA_SUBDIR}") get_locale_destination(LYX_LOCALEDIR) set(LYX_ABS_INSTALLED_LOCALEDIR "${CMAKE_INSTALL_PREFIX}/${LYX_LOCALEDIR}") set(LYX_ABS_TOP_SRCDIR "${TOP_SRC_DIR}") 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 @@ -554,7 +623,7 @@ include(ProjectSourceGroup) if(LYX_PROFILE AND NOT MSVC) - set(CMAKE_BUILD_TYPE Profile CACHE TYPE STRING FORCE) + set(CMAKE_BUILD_TYPE Profile CACHE STRING "Profile build type" FORCE) set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE} -pg") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") else() @@ -588,7 +657,12 @@ else() set(library_type STATIC) endif() -if(NOT MSVC) +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() +else() if(NOT LYX_QUIET) set(CMAKE_VERBOSE_MAKEFILE ON) endif() @@ -604,12 +678,12 @@ if(NOT MSVC) if(LYX_STDLIB_DEBUG) set(LYX_CXX_FLAGS "${LYX_CXX_FLAGS} -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC") endif() - set(CMAKE_CXX_FLAGS "${LYX_CXX_FLAGS} -fno-strict-aliasing " CACHE TYPE STRING FORCE) - set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -D_DEBUG" CACHE TYPE STRING FORCE) + 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) if(MINGW) - set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG" CACHE TYPE STRING FORCE) + set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG" CACHE STRING "Set release flags for Mingw" FORCE) else() - set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE TYPE STRING FORCE) + set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "Set release flags" FORCE) endif() endif() @@ -738,7 +812,7 @@ if(NOT LYX_EXTERNAL_HUNSPELL) message(STATUS " - library: ${HUNSPELL_LIBRARY}") endif() -foreach(_spell "ASPELL" "Enchant" "Hunspell") +foreach(_spell "ASPELL" "ENCHANT" "HUNSPELL") string(TOUPPER ${_spell} _upspell) if (NOT ${_upspell}_FOUND) find_package(${_spell}) @@ -767,17 +841,29 @@ unset(LYX_PYTHON_EXECUTABLE CACHE) unset(PYTHON_VERSION_MAJOR) unset(PYTHON_VERSION_MINOR) unset(PYTHON_VERSION_STRING) -find_package(PythonInterp 3.3 QUIET) -if(NOT PYTHONINTERP_FOUND) - unset(PYTHON_EXECUTABLE CACHE) - find_package(PythonInterp 2.0 REQUIRED) - if(NOT PYTHON_VERSION_STRING VERSION_LESS 2.8) - message(FATAL_ERROR "Python interpreter found, but is not suitable") +if (CMAKE_VERSION VERSION_LESS "3.13") + find_package(PythonInterp 3.5 QUIET) + if(NOT PYTHONINTERP_FOUND) + find_package(PythonInterp 2.0 REQUIRED) + if(NOT PYTHON_VERSION_STRING VERSION_LESS 2.8) + message(FATAL_ERROR "Python interpreter found, but is not suitable") + endif() + endif() + set(LYX_PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE} CACHE FILEPATH "Python to be used by LyX") +else() + find_package(Python3 3.5 QUIET) + if(NOT Python3_Interpreter_FOUND) + unset(PYTHON_EXECUTABLE CACHE) + find_package(Python2 2.0 REQUIRED) + if(NOT Python2_VERSION VERSION_LESS 2.8) + message(FATAL_ERROR "Python interpreter found, but is not suitable") + endif() + set(LYX_PYTHON_EXECUTABLE ${Python2_EXECUTABLE} CACHE FILEPATH "Python to be used by LyX") + else() + set(LYX_PYTHON_EXECUTABLE ${Python3_EXECUTABLE} CACHE FILEPATH "Python to be used by LyX") endif() endif() -set(LYX_PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE} CACHE FILEPATH "Python to be used by LyX") - if(LYX_NLS) find_package(LyXGettext) if(LYX_PYTHON_EXECUTABLE AND GETTEXT_FOUND) @@ -806,6 +892,10 @@ else() add_subdirectory(3rdparty/zlib) endif() +if(NOT LYX_EXTERNAL_DTL) + add_subdirectory(3rdparty/dtl) +endif() + if(LYX_USE_STD_REGEX) # Set only include path. # Use internal boost, which is known to exist @@ -864,7 +954,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}) @@ -925,7 +1015,7 @@ if(MSVC) if(LYX_WALL) # Use the highest warning level - set(CMAKE_CXX_WARNING_LEVEL 4 CACHE TYPE STRING FORCE) + set(CMAKE_CXX_WARNING_LEVEL 4 CACHE STRING "Warning level" FORCE) if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") @@ -949,7 +1039,7 @@ if(MSVC) set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /Wp64 ${MSVC_W_ERROR} ${MSVC_W_DISABLE}") else() - set(CMAKE_CXX_WARNING_LEVEL 3 CACHE TYPE STRING FORCE) + set(CMAKE_CXX_WARNING_LEVEL 3 CACHE STRING "Warning level" FORCE) # add here warnings which should produce an error /weXXXX set(MSVC_W_ERROR "/we4101 /we4189") @@ -1006,7 +1096,43 @@ endif() include(${LYX_CMAKE_DIR}/ConfigureChecks.cmake) configure_file(${LYX_CMAKE_DIR}/configCompiler.h.cmake ${TOP_BINARY_DIR}/configCompiler.h) +unset(opts) +foreach(_option ${LYX_OPTIONS}) + if(${_option}_show_message) + string(SUBSTRING "${_option} " 0 31 _var) + get_property(_prop CACHE ${_option} PROPERTY STRINGS) + list(FIND LYX_OPTION_STRINGS ${_option} _index) + if (${_index} GREATER -1) + set(_isset ${${_option}}) + elseif(${_option}) + set(_isset ON) + else() + set(_isset OFF) + endif() + string(SUBSTRING "${_isset} " 0 10 _val) + set(opts "${opts} ${_option}(${${_option}})") + endif() +endforeach() +set(tmp_vi "CMake Build") +list(APPEND tmp_vi " Host name: ${CMAKE_HOST_SYSTEM_NAME}") +list(APPEND tmp_vi " Host processor: ${CMAKE_HOST_SYSTEM_PROCESSOR}") +list(APPEND tmp_vi " Build flags: ${opts}") +list(APPEND tmp_vi " C++ Compiler: ${CMAKE_CXX_COMPILER_ID} (${CMAKE_CXX_COMPILER_VERSION})") +list(APPEND tmp_vi " C++ Compiler flags: ${CMAKE_CXX_FLAGS}") +if (LYX_DEBUG) +list(APPEND tmp_vi " C++ Compiler user flags: ${CMAKE_CXX_FLAGS_DEBUG}") +else() +list(APPEND tmp_vi " C++ Compiler user flags: ${CMAKE_CXX_FLAGS_RELEASE}") +endif() +list(APPEND tmp_vi " Qt version: ${QTVERSION}") +list(APPEND tmp_vi " LyX binary dir: ${CMAKE_INSTALL_PREFIX}/${LYX_UTILITIES_INSTALL_PATH}") +get_data_destination(dest_data) +list(APPEND tmp_vi " LyX files dir: ${CMAKE_INSTALL_PREFIX}/${dest_data}") +string(REPLACE ";" "\\n" VERSION_INFO "${tmp_vi}") + configure_file(${LYX_CMAKE_DIR}/config.h.cmake ${TOP_BINARY_DIR}/config.h) +unset(opts) +unset(tmp_vi) if(QTVERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+).*") MATH(EXPR QT4_VERSION "(${CMAKE_MATCH_1}<<16)|(${CMAKE_MATCH_2}<<8)|${CMAKE_MATCH_3}")