Tests: Make CMakeGUI test build with both Qt5 and Qt6
Fixes: #26710
diff --git a/.gitlab/ci/configure_fedora41_makefiles_symlinked.cmake b/.gitlab/ci/configure_fedora41_makefiles_symlinked.cmake
index 6dd27f8..317de3a 100644
--- a/.gitlab/ci/configure_fedora41_makefiles_symlinked.cmake
+++ b/.gitlab/ci/configure_fedora41_makefiles_symlinked.cmake
@@ -1,3 +1,5 @@
-set(CMake_QT_MAJOR_VERSION "5" CACHE STRING "")
+set(CMake_QT_MAJOR_VERSION "6" CACHE STRING "")
+set(CMake_TEST_GUI "ON" CACHE BOOL "")
+
include("${CMAKE_CURRENT_LIST_DIR}/configure_symlinked_common.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora41_common.cmake")
diff --git a/Source/QtDialog/CMakeLists.txt b/Source/QtDialog/CMakeLists.txt
index ce363f4..7f851bd 100644
--- a/Source/QtDialog/CMakeLists.txt
+++ b/Source/QtDialog/CMakeLists.txt
@@ -264,6 +264,7 @@
)
add_executable(cmake-gui WIN32 MACOSX_BUNDLE CMakeGUIExec.cxx)
+set_property(TARGET cmake-gui PROPERTY CMake_QT_MAJOR_VERSION "${CMake_QT_MAJOR_VERSION}")
target_link_libraries(cmake-gui
PRIVATE
CMakeGUIMainLib
diff --git a/Tests/CMakeGUI/CMakeGUITest.cxx b/Tests/CMakeGUI/CMakeGUITest.cxx
index a3414fd..c6b6f63 100644
--- a/Tests/CMakeGUI/CMakeGUITest.cxx
+++ b/Tests/CMakeGUI/CMakeGUITest.cxx
@@ -75,7 +75,8 @@
Qt::QueuedConnection);
QVERIFY(configureDoneSpy.wait(timeout));
- QCOMPARE(configureDoneSpy, { { expectedResult } });
+ QList<QVariant> configureDoneSignalArguments = configureDoneSpy.takeFirst();
+ QCOMPARE(configureDoneSignalArguments.at(0).toInt(), expectedResult);
}
void CMakeGUITest::sourceBinaryArgs()
diff --git a/Tests/CMakeGUI/CMakeLists.txt b/Tests/CMakeGUI/CMakeLists.txt
index c9f44e9..d4c9bf8 100644
--- a/Tests/CMakeGUI/CMakeLists.txt
+++ b/Tests/CMakeGUI/CMakeLists.txt
@@ -1,6 +1,8 @@
include(CMakeParseArguments)
-find_package(Qt5Test REQUIRED)
+get_property(CMake_QT_MAJOR_VERSION TARGET cmake-gui PROPERTY CMake_QT_MAJOR_VERSION)
+
+find_package(Qt${CMake_QT_MAJOR_VERSION}Test REQUIRED)
if(MSVC)
# QTBUG-118993: Qt uses deprecated stdext::checked_array_iterator
@@ -14,21 +16,40 @@
)
set(MOC_SRCS)
-qt5_wrap_cpp(MOC_SRCS
- CatchShow.h
- )
+if(CMake_QT_MAJOR_VERSION VERSION_LESS 6)
+ qt5_wrap_cpp(MOC_SRCS
+ CatchShow.h
+ )
+else()
+ qt_wrap_cpp(MOC_SRCS
+ CatchShow.h
+ )
+endif()
add_library(CMakeGUITestLib STATIC ${MOC_SRCS}
CatchShow.cxx
CatchShow.h
)
-target_link_libraries(CMakeGUITestLib Qt5::Core Qt5::Gui Qt5::Widgets)
+target_link_libraries(CMakeGUITestLib
+ Qt${CMake_QT_MAJOR_VERSION}::Core
+ Qt${CMake_QT_MAJOR_VERSION}::Gui
+ Qt${CMake_QT_MAJOR_VERSION}::Widgets)
set(MOC_SRCS)
-qt5_wrap_cpp(MOC_SRCS
- CMakeGUITest.h
- )
+if(CMake_QT_MAJOR_VERSION VERSION_LESS 6)
+ qt5_wrap_cpp(MOC_SRCS
+ CMakeGUITest.h
+ )
+else()
+ qt_wrap_cpp(MOC_SRCS
+ CMakeGUITest.h
+ )
+endif()
add_executable(CMakeGUITest CMakeGUITest.cxx ${MOC_SRCS})
-target_link_libraries(CMakeGUITest CMakeGUIMainLib CMakeGUITestLib Qt5::Core Qt5::Test Qt5::Widgets)
+target_link_libraries(CMakeGUITest CMakeGUIMainLib CMakeGUITestLib
+ Qt${CMake_QT_MAJOR_VERSION}::Core
+ Qt${CMake_QT_MAJOR_VERSION}::Test
+ Qt${CMake_QT_MAJOR_VERSION}::Widgets
+)
target_compile_definitions(CMakeGUITest PRIVATE
"CMakeGUITest_SOURCE_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}\""
"CMakeGUITest_BINARY_DIR=\"${CMAKE_CURRENT_BINARY_DIR}\""
@@ -47,11 +68,20 @@
cmake_parse_arguments(_t "" "" "SOURCES;MOC_SOURCES" ${ARGN})
set(MOC_SRCS)
- qt5_wrap_cpp(MOC_SRCS
- ${_t_MOC_SOURCES}
- )
+ if(CMake_QT_MAJOR_VERSION VERSION_LESS 6)
+ qt5_wrap_cpp(MOC_SRCS
+ ${_t_MOC_SOURCES}
+ )
+ else()
+ qt_wrap_cpp(MOC_SRCS
+ ${_t_MOC_SOURCES}
+ )
+ endif()
add_executable(${name} ${_t_SOURCES} ${MOC_SRCS})
- target_link_libraries(${name} CMakeGUILib CMakeGUITestLib Qt5::Core Qt5::Test Qt5::Widgets)
+ target_link_libraries(${name} CMakeGUILib CMakeGUITestLib
+ Qt${CMake_QT_MAJOR_VERSION}::Core
+ Qt${CMake_QT_MAJOR_VERSION}::Test
+ Qt${CMake_QT_MAJOR_VERSION}::Widgets)
add_test(NAME "CMakeGUILib.${name}" COMMAND ${name})
endfunction()
diff --git a/Tests/CMakeGUI/QCMakePresetItemModelTest.cxx b/Tests/CMakeGUI/QCMakePresetItemModelTest.cxx
index 97dbb30..a2320b3 100644
--- a/Tests/CMakeGUI/QCMakePresetItemModelTest.cxx
+++ b/Tests/CMakeGUI/QCMakePresetItemModelTest.cxx
@@ -17,7 +17,9 @@
void QCMakePresetItemModelTest::initTestCase()
{
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
QMetaType::registerComparators<QCMakePreset>();
+#endif
}
void QCMakePresetItemModelTest::initTestCase_data()