From fbf11e86efc9b775e347066ff9520ae5b476f13d Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Fri, 6 Nov 2020 11:58:32 +0100 Subject: CMake: Fix cmake tests for no-widgets and no-gui configurations Task-number: QTBUG-86053 Change-Id: I108977546304f203f6e2b7e983bb909b76626a9f Reviewed-by: Joerg Bornemann --- tests/auto/cmake/CMakeLists.txt | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) (limited to 'tests/auto') diff --git a/tests/auto/cmake/CMakeLists.txt b/tests/auto/cmake/CMakeLists.txt index cc0987d68f..27ceae74fb 100644 --- a/tests/auto/cmake/CMakeLists.txt +++ b/tests/auto/cmake/CMakeLists.txt @@ -83,6 +83,16 @@ foreach(qt_package ${CMAKE_MODULES_UNDER_TEST}) endif() endforeach() +# Qt6CTestMacros.cmake also expects some of these variables to be set. +if(NOT TARGET Qt::Gui) + set(NO_GUI TRUE) +endif() +if(NOT TARGET Qt::DBus) + set(NO_DBUS TRUE) +endif() +if(NOT TARGET Qt::Widgets) + set(NO_WIDGETS TRUE) +endif() include("${_Qt6CTestMacros}") @@ -123,12 +133,19 @@ endif() _qt_internal_test_expect_pass(test_multiple_find_package) _qt_internal_test_expect_pass(test_add_resources_delayed_file) _qt_internal_test_expect_pass(test_add_binary_resources_delayed_file BINARY test_add_binary_resources_delayed_file) -_qt_internal_test_expect_pass(test_private_includes) -_qt_internal_test_expect_pass(test_private_targets) + +if(NOT NO_GUI) + _qt_internal_test_expect_pass(test_private_includes) + _qt_internal_test_expect_pass(test_private_targets) +endif() + _qt_internal_test_expect_pass(test_testlib_definitions) _qt_internal_test_expect_pass(test_json_plugin_includes) -_qt_internal_test_expect_fail(test_testlib_no_link_gui) +if(NOT NO_GUI) + _qt_internal_test_expect_fail(test_testlib_no_link_gui) +endif() + execute_process(COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/test_testlib_definitions/main.cpp" "${CMAKE_CURRENT_BINARY_DIR}/failbuild/test_testlib_no_link_gui/test_testlib_no_link_gui/" @@ -174,13 +191,18 @@ _qt_internal_test_module_includes( ${qt_module_includes} ) _qt_internal_test_expect_pass(test_concurrent_module) -_qt_internal_test_expect_pass(test_opengl_lib) + +if(NOT NO_GUI) + _qt_internal_test_expect_pass(test_opengl_lib) +endif() if (NOT NO_WIDGETS) _qt_internal_test_expect_pass(test_interface) endif() -_qt_internal_test_expect_pass(test_interface_link_libraries) +if(NOT NO_GUI) + _qt_internal_test_expect_pass(test_interface_link_libraries) +endif() _qt_internal_test_expect_pass(test_moc_macro_target) # The modification of TARGET_OBJECTS needs the following change in cmake @@ -192,7 +214,9 @@ _qt_internal_test_expect_pass(test_moc_macro_target) # /usr/bin/ld: error: CMakeFiles/mywidget.dir/mywidget_automoc.cpp.o: multiple definition of 'MyWidget::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)' # /usr/bin/ld: CMakeFiles/mywidget.dir/moc_mywidget.cpp.o: previous definition here # Reason: SKIP_* properties were added in CMake 3.8 only -_qt_internal_test_expect_pass(test_QTBUG-63422) +if(NOT NO_WIDGETS) + _qt_internal_test_expect_pass(test_QTBUG-63422) +endif() # FIXME: Needs porting of the qmake .pro files to create the modules and plugins in Qt6 CMake land. # _qt_internal_test_expect_pass(test_import_plugins BINARY ${CMAKE_CTEST_COMMAND}) -- cgit v1.2.3