file(MAKE_DIRECTORY "${LYX_TESTS_USERDIR}")
if(COMMAND cmake_policy)
- cmake_policy(SET CMP0003 OLD)
- cmake_policy(SET CMP0005 OLD)
# Installing MACOSX_BUNDLE targets requires a BUNDLE DESTINATION
cmake_policy(SET CMP0006 NEW)
- if(POLICY CMP0020)
- cmake_policy(SET CMP0020 OLD)
- endif()
- if(POLICY CMP0028)
- cmake_policy(SET CMP0028 OLD)
- endif()
if(POLICY CMP0043)
# COMPILE_DEFINITIONS are not used yet. Enable new behavior.
cmake_policy(SET CMP0043 NEW)
LYX_OPTION(ENABLE_EXPORT_TESTS "Enable for export tests" OFF ALL)
LYX_OPTION(ENABLE_KEYTESTS "Enable for keytests" OFF ALL)
LYX_OPTION(ASAN "Use address sanitizer" OFF ALL)
-LYX_COMBO(USE_QT "Use Qt version as frontend" QT4 QT5)
+LYX_COMBO(USE_QT "Use Qt version as frontend" AUTO QT4 QT5)
#LYX_OPTION(3RDPARTY_BUILD "Build 3rdparty libs" OFF ALL)
LYX_OPTION(EXTERNAL_Z "OFF := Build 3rdparty lib zlib" ON ALL)
LYX_OPTION(EXTERNAL_ICONV "OFF := Build 3rdparty lib iconvlib" ON ALL)
set(SYSTEM_DATADIR "${CMAKE_INSTALL_PREFIX}")
endif()
-# The define below allows lyx-executable to find its default configuration files
+if(CMAKE_COMPILER_IS_GNUCXX)
+ message(STATUS "CMAKE_COMPILER_IS_GNUCXX = ${CMAKE_COMPILER_IS_GNUCXX}")
+ set(suffixing ${LYX_PROGRAM_SUFFIX})
+else()
+ # Not a GCC compiler, programs do not have a suffix
+ set(suffixing ${LYX_PACKAGE_SUFFIX})
+endif()
+
+# The define PACKAGE below allows lyx-executable to find its default configuration files
# see routines
# Package::messages_file()
# get_default_user_support_dir()
# relative_system_support_dir()
# in src/support/Package.cpp
#
-if(LYX_PROGRAM_SUFFIX)
+if(suffixing)
set(PACKAGE ${PACKAGE_BASE}${LYX_INSTALL_SUFFIX})
else()
set(PACKAGE ${PACKAGE_BASE})
list(APPEND CMAKE_FIND_ROOT_PATH ${GNUWIN32_DIR})
endif()
+set(min_qt5_version "5.6")
+if(LYX_USE_QT MATCHES "AUTO")
+ # try qt5 first
+ find_package(Qt5Core QUIET)
+ if(Qt5Core_FOUND)
+ set(LYX_USE_QT "QT5" CACHE STRING "Valid qt version" FORCE)
+ message(STATUS "Qt5Core_VERSION = ${Qt5Core_VERSION}")
+ if(Qt5Core_VERSION VERSION_LESS ${min_qt5_version})
+ find_package(Qt4 "4.5.0" QUIET)
+ if(QT4_FOUND)
+ set(LYX_USE_QT "QT4" CACHE STRING "Valid qt version" FORCE)
+ endif()
+ endif()
+ else()
+ set(LYX_USE_QT "QT4" CACHE STRING "Valid qt version" FORCE)
+ endif()
+endif()
if(LYX_USE_QT MATCHES "QT5")
# set QPA_XCB if QT uses X11
find_package(Qt5Core REQUIRED)
find_package(Qt5X11Extras QUIET)
find_package(Qt5WinExtras QUIET)
set(QTVERSION ${Qt5Core_VERSION})
- if (QTVERSION VERSION_LESS "5.4")
+ if (QTVERSION VERSION_LESS ${min_qt5_version})
message(STATUS "QTVERSION = \"${QTVERSION}\"")
message(STATUS "This version is not recommended, try either option -DLYX_USE_QT=QT4 or")
- message(STATUS "install QT-Version >= \"5.4\"")
+ message(STATUS "install QT-Version >= \"${min_qt5_version}\"")
# see thread in lyx-devel list
# From: Jean-Pierre Chrétien <jeanpierre.chretien@free.fr>
# Date 11.03.2017
list(APPEND CMAKE_PROGRAM_PATH "${GNUWIN32_DIR}/Python" )
endif()
-find_package(PythonInterp 2.7 QUIET)
-if(PYTHONINTERP_FOUND)
- if(PYTHON_VERSION_STRING VERSION_GREATER 2.8)
- unset(PYTHONINTERP_FOUND)
- endif()
-endif()
-
+# Search for python default version first
+unset(PYTHON_EXECUTABLE CACHE)
+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)
- unset(PYTHON_VERSION_MAJOR)
- unset(PYTHON_VERSION_MINOR)
- unset(PYTHON_VERSION_STRING)
- find_package(PythonInterp 3.3 REQUIRED)
+ 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")
if(NOT LYX_USE_STD_REGEX)
set(Lyx_Boost_Libraries boost_regex)
endif()
- add_definitions(-DBOOST_USER_CONFIG="<config.h>")
+ add_definitions(-DBOOST_USER_CONFIG=<config.h>)
include_directories(${TOP_SRC_DIR}/3rdparty/boost)
add_subdirectory(3rdparty/boost "${TOP_BINARY_DIR}/3rdparty/boost")
endif()