+
+set(min_qt5_version "5.6")
+if(LYX_USE_QT MATCHES "AUTO")
+ # try qt6 first
+ find_package(Qt6Core CONFIG QUIET)
+ if (Qt6Core_Found)
+ set(LYX_USE_QT "QT6" CACHE STRING "Valid qt version" FORCE)
+ message(STATUS "Qt5Core_VERSION = ${Qt5Core_VERSION}")
+ else()
+ find_package(Qt5Core CONFIG 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()
+endif()
+
+set(QtCore5CompatLibrary)
+set(QtCore5CompatModule)
+if(LYX_USE_QT MATCHES "QT6|QT5")
+ if (LYX_USE_QT MATCHES "QT6")
+ set(QtVal "Qt6")
+ macro (qt_add_resources)
+ Qt6_add_resources(${ARGN})
+ endmacro()
+ macro (qt_wrap_uifiles)
+ Qt6_wrap_ui(${ARGN})
+ endmacro()
+ else()
+ set(QtVal "Qt5")
+ macro (qt_add_resources)
+ Qt5_add_resources(${ARGN})
+ endmacro()
+ macro (qt_wrap_uifiles)
+ Qt5_wrap_ui(${ARGN})
+ endmacro()
+ endif()
+ # set QPA_XCB if QT uses X11
+ find_package(${QtVal}Core CONFIG REQUIRED)
+ if (${QtVal}Core_FOUND)
+ find_package(${QtVal}Widgets CONFIG REQUIRED)
+ if(APPLE)
+ if (LYX_USE_QT MATCHES "QT6")
+ find_package(${QtVal}MacExtras CONFIG QUIET)
+ else()
+ find_package(${QtVal}MacExtras CONFIG REQUIRED)
+ endif()
+ endif()
+ find_package(${QtVal}X11Extras CONFIG QUIET)
+ find_package(${QtVal}WinExtras CONFIG QUIET)
+ set(QTVERSION ${${QtVal}Core_VERSION})
+ 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 >= \"${min_qt5_version}\"")
+ # see thread in lyx-devel list
+ # From: Jean-Pierre Chrétien <jeanpierre.chretien@free.fr>
+ # Date 11.03.2017
+ # Subject: cmake compilation error
+ #message(FATAL_ERROR "Wrong Qt-Version")
+ endif()
+ macro (qt_use_modules lyxtarget)
+ foreach (_tg ${ARGN})
+ find_package(${QtVal}${_tg} CONFIG REQUIRED)
+ target_link_libraries(${lyxtarget} ${QtVal}::${_tg})
+ endforeach()
+ endmacro()
+ message(STATUS "Found Qt-Version ${QTVERSION}")
+ if(WIN32)
+ set(LYX_QTMAIN_LIBRARY ${${QtVal}Core_QTMAIN_LIBRARIES})
+ endif()
+ if (LYX_USE_QT MATCHES "QT6")
+ get_target_property(QT_MOC_EXECUTABLE Qt6::moc LOCATION)
+ find_package(Qt6 COMPONENTS Core5Compat REQUIRED)
+ include_directories(${Qt6Core5Compat_INCLUDE_DIRS})
+ set(QtCore5CompatLibrary Qt6::Core5Compat)
+ set(QtCore5CompatModule Core5Compat)
+ endif()
+ endif()
+elseif(LYX_USE_QT MATCHES "QT4")
+ if(LYX_XMINGW)
+ set(QT_MINGW_DIR ${LYX_QT4} CACHE PATH "Qt for Mingw" FORCE)
+ list(APPEND CMAKE_FIND_ROOT_PATH ${QT_MINGW_DIR} ${GNUWIN32_DIR})
+ endif()