With the help from Scott, we have now cmake files for this task.
Since nothing changes for non-qt6 I am going to commit.
The most disturbing thing was the need for Core5Compat.

Attached the complete patch.

        Kornel
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f8ca0c10fd..12dd3947be 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -217,11 +217,11 @@ else()
     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)
-LYX_COMBO(USE_QT            "Use Qt version as frontend" AUTO QT4 QT5)
+LYX_COMBO(USE_QT            "Use Qt version as frontend" AUTO QT4 QT5 QT6)
 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" ${DefaultExternalLibs} ALL)
 LYX_OPTION(EXTERNAL_DTL     "OFF := Build 3rdparty commands dt2dv and dv2dt" ${DefaultExternalLibs} ALL)
@@ -741,36 +741,62 @@ if(LYX_XMINGW)
 	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 CONFIG QUIET)
-	if(Qt5Core_FOUND)
-		set(LYX_USE_QT "QT5" CACHE STRING "Valid qt version" FORCE)
+	# 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}")
-		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)
+		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()
-if(LYX_USE_QT MATCHES "QT5")
+
+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(Qt5Core CONFIG REQUIRED)
-	if (Qt5Core_FOUND)
-		find_package(Qt5Widgets CONFIG REQUIRED)
+	find_package(${QtVal}Core CONFIG REQUIRED)
+	if (${QtVal}Core_FOUND)
+		find_package(${QtVal}Widgets CONFIG REQUIRED)
 		if(APPLE)
-			find_package(Qt5MacExtras CONFIG REQUIRED)
+			find_package(${QtVal}MacExtras CONFIG REQUIRED)
 		endif()
-		find_package(Qt5X11Extras CONFIG QUIET)
-		find_package(Qt5WinExtras CONFIG QUIET)
-		set(QTVERSION ${Qt5Core_VERSION})
+		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
@@ -779,23 +805,24 @@ if(LYX_USE_QT MATCHES "QT5")
 			# Subject: cmake compilation error
 			#message(FATAL_ERROR "Wrong Qt-Version")
 		endif()
 		macro (qt_use_modules lyxtarget)
 			foreach (_tg ${ARGN})
-				find_package(Qt5${_tg} CONFIG REQUIRED)
-				target_link_libraries(${lyxtarget} Qt5::${_tg})
+				find_package(${QtVal}${_tg} CONFIG REQUIRED)
+				target_link_libraries(${lyxtarget} ${QtVal}::${_tg})
 			endforeach()
 		endmacro()
-		macro (qt_add_resources)
-			qt5_add_resources(${ARGN})
-		endmacro()
-		macro (qt_wrap_uifiles)
-			qt5_wrap_ui(${ARGN})
-		endmacro()
 		message(STATUS "Found Qt-Version ${QTVERSION}")
 		if(WIN32)
-			set(LYX_QTMAIN_LIBRARY ${Qt5Core_QTMAIN_LIBRARIES})
+			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)
diff --git a/development/cmake/ConfigureChecks.cmake b/development/cmake/ConfigureChecks.cmake
index 616bec0a10..29ad935c65 100644
--- a/development/cmake/ConfigureChecks.cmake
+++ b/development/cmake/ConfigureChecks.cmake
@@ -275,15 +275,20 @@ else()
   endif()
 endif()
 
 set(QPA_XCB)
 set(HAVE_QT5_X11_EXTRAS)
-if(LYX_USE_QT MATCHES "QT5")
-
+set(HAVE_QT6_X11_EXTRAS)
+if (LYX_USE_QT MATCHES "QT5|QT6")
+  if (LYX_USE_QT MATCHES "QT5")
+    set(QtVal Qt5)
+  else()
+    set(QtVal Qt6)
+  endif()
   set(CMAKE_REQUIRED_INCLUDES ${Qt5Core_INCLUDE_DIRS})
   set(CMAKE_REQUIRED_FLAGS)
-  #message(STATUS "Qt5Core_INCLUDE_DIRS = ${Qt5Core_INCLUDE_DIRS}")
+  #message(STATUS "${QtVal}Core_INCLUDE_DIRS = ${${QtVal}Core_INCLUDE_DIRS}")
   check_include_file_cxx(QtGui/qtgui-config.h HAVE_QTGUI_CONFIG_H)
   if (HAVE_QTGUI_CONFIG_H)
     set(lyx_qt5_config "QtGui/qtgui-config.h")
   else()
     set(lyx_qt5_config "QtCore/qconfig.h")
@@ -310,18 +315,18 @@ if(LYX_USE_QT MATCHES "QT5")
     if(QT_USES_X11)
       set(QPA_XCB ${QT_USES_X11})
     endif()
   endif()
 
-  if (Qt5X11Extras_FOUND)
-    get_target_property(_x11extra_prop Qt5::X11Extras IMPORTED_CONFIGURATIONS)
-    get_target_property(_x11extra_link_libraries Qt5::X11Extras IMPORTED_LOCATION_${_x11extra_prop})
+  if (${QtVal}X11Extras_FOUND)
+    get_target_property(_x11extra_prop ${QtVal}::X11Extras IMPORTED_CONFIGURATIONS)
+    get_target_property(_x11extra_link_libraries ${QtVal}::X11Extras IMPORTED_LOCATION_${_x11extra_prop})
     set(CMAKE_REQUIRED_LIBRARIES ${_x11extra_link_libraries})
-    set(CMAKE_REQUIRED_INCLUDES ${Qt5X11Extras_INCLUDE_DIRS})
-    set(CMAKE_REQUIRED_FLAGS "${Qt5X11Extras_EXECUTABLE_COMPILE_FLAGS} -fPIC -DQT_NO_VERSION_TAGGING")
+    set(CMAKE_REQUIRED_INCLUDES ${${QtVal}X11Extras_INCLUDE_DIRS})
+    set(CMAKE_REQUIRED_FLAGS "${${QtVal}X11Extras_EXECUTABLE_COMPILE_FLAGS} -fPIC -DQT_NO_VERSION_TAGGING")
     #message(STATUS "CMAKE_REQUIRED_LIBRARIES = ${_x11extra_link_libraries}")
-    #message(STATUS "CMAKE_REQUIRED_INCLUDES = ${Qt5X11Extras_INCLUDE_DIRS}")
+    #message(STATUS "CMAKE_REQUIRED_INCLUDES = ${${QtVal}X11Extras_INCLUDE_DIRS}")
     #message(STATUS "CMAKE_REQUIRED_FLAGS = ${CMAKE_REQUIRED_FLAGS}")
     check_cxx_source_compiles(
             "
             #include <QtX11Extras/QX11Info>
             int main()
@@ -331,17 +336,17 @@ if(LYX_USE_QT MATCHES "QT5")
             "
       QT_HAS_X11_EXTRAS)
     set(HAVE_QT5_X11_EXTRAS ${QT_HAS_X11_EXTRAS})
     set(LYX_QT5_X11_EXTRAS_LIBRARY ${_x11extra_link_libraries})
   endif()
-  if (Qt5WinExtras_FOUND)
-    get_target_property(_winextra_prop Qt5::WinExtras IMPORTED_CONFIGURATIONS)
+  if (${QtVal}WinExtras_FOUND)
+    get_target_property(_winextra_prop ${QtVal}::WinExtras IMPORTED_CONFIGURATIONS)
     string(TOUPPER ${CMAKE_BUILD_TYPE} BUILD_TYPE)
-    get_target_property(_winextra_link_libraries Qt5::WinExtras IMPORTED_LOCATION_${BUILD_TYPE})
+    get_target_property(_winextra_link_libraries ${QtVal}::WinExtras IMPORTED_LOCATION_${BUILD_TYPE})
     set(CMAKE_REQUIRED_LIBRARIES ${_winextra_link_libraries})
-    set(CMAKE_REQUIRED_INCLUDES ${Qt5WinExtras_INCLUDE_DIRS})
-    set(CMAKE_REQUIRED_FLAGS ${Qt5WinExtras_EXECUTABLE_COMPILE_FLAGS})
+    set(CMAKE_REQUIRED_INCLUDES ${${QtVal}WinExtras_INCLUDE_DIRS})
+    set(CMAKE_REQUIRED_FLAGS ${${QtVal}WinExtras_EXECUTABLE_COMPILE_FLAGS})
   endif()
 elseif(LYX_USE_QT MATCHES "QT4")
   set(CMAKE_REQUIRED_LIBRARIES ${QT_QTGUI_LIBRARY})
   set(CMAKE_REQUIRED_INCLUDES ${QT_INCLUDES})
   check_cxx_source_compiles(
diff --git a/development/cmake/LyxPackaging.cmake b/development/cmake/LyxPackaging.cmake
index cfd1c5c8e2..6d308d06d9 100644
--- a/development/cmake/LyxPackaging.cmake
+++ b/development/cmake/LyxPackaging.cmake
@@ -152,11 +152,11 @@ set(CPACK_SOURCE_PACKAGE_FILE_NAME "${LYX_PROJECT}-${LYX_INSTALL_SUFFIX}")
 
 # We depend on python scripting
 # Currently no need to specify versions for pythonx since they are only
 # available in newest distributions.
 set(CPACK_DEBIAN_PACKAGE_DEPENDS "python (>= 2.7) | python3 | python2")
-set(CPACK_DEBIAN_PACKAGE_SECTION "editors")
+set(CPACK_DEBIAN_PACKAGE_SECTION "universe/editors")
 
 # use dpkg-shlibdeps to generate additional info for package dependency list.
 set(CPACK_DEBIAN_PACKAGE_RELEASE ${LYX_PACKAGE_RELEASE})
 set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
 set(CPACK_DEBIAN_PACKAGE_DEBUG ON)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 4fbe440a34..84373dac33 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -139,11 +139,12 @@ target_link_libraries(${_lyx}
 	${MYTHESLIB_LIBRARY}
 	${ICONV_LIBRARY}
 	${LYX_QTMAIN_LIBRARY}
 	${vld_dll})
 
-qt_use_modules(${_lyx} Core Gui)
+qt_use_modules(${_lyx} Core Gui ${QtCore5CompatModule})
+target_link_libraries(${_lyx} ${QtCore5CompatLibrary})
 
 if(QT_USES_X11)
   find_package(X11 REQUIRED)
   target_link_libraries(${_lyx} ${X11_X11_LIB}) # we need it because we use XSendEvent
   if(HAVE_QT5_X11_EXTRAS)
diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt
index 95535e0a61..c64ada8ef4 100644
--- a/src/client/CMakeLists.txt
+++ b/src/client/CMakeLists.txt
@@ -24,12 +24,14 @@ add_executable(${_lyxclient} ${_lyxclient_sources} ${_lyxclient_headers})
 target_link_libraries(${_lyxclient}
 	support
 	${Lyx_Boost_Libraries}
 	${ICONV_LIBRARY}
 	${QT_QTCORE_LIBRARY}
-	${QT_QTGUI_LIBRARY})
+	${QT_QTGUI_LIBRARY}
+	${QtCore5CompatLibrary})
 
+qt_use_modules(${_lyxclient} ${QtCore5CompatModule})
 lyx_target_link_libraries(${_lyxclient} Magic ASPELL)
 
 if(APPLE)
 	target_link_libraries(${_lyxclient} "-framework AppKit")
 endif()
diff --git a/src/support/tests/CMakeLists.txt b/src/support/tests/CMakeLists.txt
index e5ef4fa6a8..4667077f71 100644
--- a/src/support/tests/CMakeLists.txt
+++ b/src/support/tests/CMakeLists.txt
@@ -12,17 +12,18 @@ macro(sources _program)
 		list(APPEND _tmplist "${TOP_SRC_DIR}/src/support/tests/${_tmp}")
 	endforeach()
 	set(${_program}_SOURCES ${_tmplist})
 	add_executable(${_program} ${_tmplist})
 	target_link_libraries(${_program} support
-		${Lyx_Boost_Libraries} ${QT_QTGUI_LIBRARY} ${QT_QTCORE_LIBRARY}
+		${Lyx_Boost_Libraries}
+		${QT_QTGUI_LIBRARY} ${QT_QTCORE_LIBRARY} ${QtCore5CompatLibrary}
 		${ZLIB_LIBRARY} ${ICONV_LIBRARY})
 	lyx_target_link_libraries(${_program} Magic)
 	if(CYGWIN)
 		target_link_libraries(${_program} shlwapi)
 	endif()
-	qt_use_modules(${_program} Core)
+	qt_use_modules(${_program} Core ${QtCore5CompatModule})
 	set_property(TARGET ${_program} PROPERTY INTERPROCEDURAL_OPTIMIZATION FALSE)
 endmacro()
 
 file(GLOB test_sources ${TOP_SRC_DIR}/src/support/tests/${LYX_CPP_FILES})
 
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index 957e4c0cd7..0fe014f9c2 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -15,11 +15,11 @@ endforeach()
 include_directories(${TOP_SRC_DIR}/src/support/tests)
 
 add_executable(check_layout ${check_layout_SOURCES})
 
 target_link_libraries(check_layout support
-  ${Lyx_Boost_Libraries} ${QT_QTGUI_LIBRARY} ${QT_QTCORE_LIBRARY}
+  ${Lyx_Boost_Libraries} ${QT_QTGUI_LIBRARY} ${QT_QTCORE_LIBRARY} ${QtCore5CompatLibrary}
   ${ZLIB_LIBRARY} ${ICONV_LIBRARY})
 if(CYGWIN)
     target_link_libraries(check_layout shlwapi)
 endif()
 lyx_target_link_libraries(check_layout Magic)
@@ -73,11 +73,11 @@ endforeach()
 
 include_directories(${TOP_SRC_DIR}/src/tests)
 add_executable(check_ExternalTransforms ${check_ExternalTransforms_SOURCES})
 
 target_link_libraries(check_ExternalTransforms support
-	${Lyx_Boost_Libraries} ${QT_QTGUI_LIBRARY} ${QT_QTCORE_LIBRARY})
+	${Lyx_Boost_Libraries} ${QT_QTGUI_LIBRARY} ${QT_QTCORE_LIBRARY} ${QtCore5CompatLibrary})
 lyx_target_link_libraries(check_ExternalTransforms Magic)
 
 add_dependencies(lyx_run_tests check_ExternalTransforms)
 set_target_properties(check_ExternalTransforms PROPERTIES FOLDER "tests/src")
 target_link_libraries(check_ExternalTransforms ${ICONV_LIBRARY})
@@ -94,11 +94,11 @@ foreach(_f tests/check_Length.cpp tests/boost.cpp tests/dummy_functions.cpp)
   list(APPEND check_Length_SOURCES ${TOP_SRC_DIR}/src/${_f})
 endforeach()
 add_executable(check_Length ${check_Length_SOURCES})
 
 target_link_libraries(check_Length support
-	${Lyx_Boost_Libraries} ${QT_QTGUI_LIBRARY} ${QT_QTCORE_LIBRARY})
+	${Lyx_Boost_Libraries} ${QT_QTGUI_LIBRARY} ${QT_QTCORE_LIBRARY} ${QtCore5CompatLibrary})
 lyx_target_link_libraries(check_Length Magic)
 
 add_dependencies(lyx_run_tests check_Length)
 set_target_properties(check_Length PROPERTIES FOLDER "tests/src")
 target_link_libraries(check_Length ${ICONV_LIBRARY})
@@ -116,11 +116,11 @@ foreach(_f tests/check_ListingsCaption.cpp tests/boost.cpp tests/dummy_functions
   list(APPEND check_ListingsCaption_SOURCES ${TOP_SRC_DIR}/src/${_f})
 endforeach()
 add_executable(check_ListingsCaption ${check_ListingsCaption_SOURCES})
 
 target_link_libraries(check_ListingsCaption support
-	${Lyx_Boost_Libraries} ${QT_QTGUI_LIBRARY} ${QT_QTCORE_LIBRARY})
+	${Lyx_Boost_Libraries} ${QT_QTGUI_LIBRARY} ${QT_QTCORE_LIBRARY} ${QtCore5CompatLibrary})
 lyx_target_link_libraries(check_ListingsCaption Magic)
 
 add_dependencies(lyx_run_tests check_ListingsCaption)
 set_target_properties(check_ListingsCaption PROPERTIES FOLDER "tests/src")
 target_link_libraries(check_ListingsCaption ${ICONV_LIBRARY})
diff --git a/src/tex2lyx/CMakeLists.txt b/src/tex2lyx/CMakeLists.txt
index 2a68e71150..f3bfc52603 100644
--- a/src/tex2lyx/CMakeLists.txt
+++ b/src/tex2lyx/CMakeLists.txt
@@ -46,12 +46,14 @@ set_target_properties(${_tex2lyx} PROPERTIES
 target_link_libraries(${_tex2lyx}
 	support
 	${Lyx_Boost_Libraries}
 	${QT_QTCORE_LIBRARY}
 	${QT_QTGUI_LIBRARY}
+	${QtCore5CompatLibrary}
 	${ICONV_LIBRARY})
 
+qt_use_modules(${_tex2lyx} ${QtCore5CompatModule})
 lyx_target_link_libraries(${_tex2lyx} Magic)
 
 add_dependencies(${_tex2lyx} lyx_version)
 
 if(WIN32)

Attachment: pgp4vn77FaW0Q.pgp
Description: Digitale Signatur von OpenPGP

-- 
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to