Warning, /plasma/plasma-integration/qt6/autotests/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 include(ECMMarkAsTest)
0002 include(ECMMarkNonGuiExecutable)
0003
0004 find_package(Qt6Test ${QT_MIN_VERSION} CONFIG QUIET)
0005 find_package(Qt6Qml ${QT_MIN_VERSION} CONFIG QUIET)
0006 find_package(Qt6QmlTools ${QT_MIN_VERSION} CONFIG QUIET) # qmltestrunner
0007
0008 if(NOT Qt6Test_FOUND)
0009 message(STATUS "Qt6Test not found, autotests will not be built.")
0010 return()
0011 endif()
0012
0013 if(NOT Qt6Qml_FOUND)
0014 message(STATUS "Qt6Qml not found, QML autotests will not be built.")
0015 endif()
0016
0017 set(CONFIGFILE "${CMAKE_CURRENT_SOURCE_DIR}/kdeplatformtheme_kdeglobals")
0018 set(CHANGED_CONFIGFILE "${CMAKE_CURRENT_SOURCE_DIR}/kdeplatformtheme_changed_kdeglobals")
0019 configure_file(kdeplatformtheme_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/kdeplatformtheme_config.h)
0020
0021 remove_definitions(-DQT_NO_CAST_FROM_ASCII)
0022 # qdbusmenubar uses them
0023 remove_definitions(-DQT_NO_SIGNALS_SLOTS_KEYWORDS)
0024
0025 macro(FRAMEWORKINTEGRATION_TESTS _testname)
0026 add_executable(${_testname}6 ${_testname}.cpp ${ARGN})
0027 set_target_properties(${_testname}6 PROPERTIES COMPILE_FLAGS "-DUNIT_TEST")
0028 add_test(NAME frameworkintegration-${_testname}6 COMMAND ${_testname}6)
0029 ecm_mark_as_test(${_testname}6)
0030 ecm_mark_nongui_executable(${_testname}6)
0031 target_include_directories(${_testname}6 PRIVATE ${CMAKE_BINARY_DIR}/qt6/src/platformtheme)
0032 target_link_libraries(${_testname}6
0033 Qt6::GuiPrivate
0034 Qt6::Test
0035 Qt6::DBus
0036 Qt6::QuickControls2
0037 ${QT5PLATFORMSUPPORT_LIBS}
0038 KF6::ConfigWidgets
0039 KF6::ConfigCore
0040 KF6::IconThemes
0041 KF6::KIOFileWidgets
0042 KF6::I18n
0043 KF6::Notifications
0044 KF6::StatusNotifierItem
0045 KF6::WindowSystem
0046 KF6::GuiAddons
0047 Qt6::WaylandClient
0048 XCB::XCB
0049 Wayland::Client
0050 KF6::XmlGui
0051 )
0052 if (QT_MAJOR_VERSION EQUAL "5")
0053 target_link_libraries(${_testname} Qt5::X11Extras)
0054 endif()
0055 endmacro()
0056
0057 set(dbus_interface)
0058 qt6_add_dbus_interface(dbus_interface ../src/platformtheme/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher_interface)
0059
0060 frameworkintegration_tests(
0061 kdeplatformtheme_unittest
0062 )
0063 set(wayland_interfaces)
0064 qt6_generate_wayland_protocol_client_sources(kdeplatformtheme_unittest6 FILES
0065 ${PLASMA_WAYLAND_PROTOCOLS_DIR}/appmenu.xml
0066 ${PLASMA_WAYLAND_PROTOCOLS_DIR}/server-decoration-palette.xml
0067 )
0068
0069 target_sources(kdeplatformtheme_unittest6 PRIVATE
0070 ../src/platformtheme/kdeplatformtheme.cpp ../src/platformtheme/kdeplatformtheme.h
0071 ../src/platformtheme/kfontsettingsdata.cpp ../src/platformtheme/kfontsettingsdata.h
0072 ../src/platformtheme/khintssettings.cpp ../src/platformtheme/khintssettings.h
0073 ../src/platformtheme/kdeplatformfiledialoghelper.cpp ../src/platformtheme/kdeplatformfiledialoghelper.h
0074 ../src/platformtheme/kdeplatformfiledialogbase.cpp
0075 ../src/platformtheme/kdeplatformfontdialoghelper.cpp
0076 ../src/platformtheme/kdeplatformsystemtrayicon.cpp ../src/platformtheme/kdeplatformsystemtrayicon.h
0077 ../src/platformtheme/kdirselectdialog.cpp
0078 ../src/platformtheme/kfiletreeview.cpp
0079 ../src/platformtheme/kwaylandintegration.cpp ../src/platformtheme/kwaylandintegration.h
0080 ../src/platformtheme/x11integration.cpp ../src/platformtheme/x11integration.h
0081 ../src/platformtheme/qxdgdesktopportalfiledialog.cpp
0082 ../src/platformtheme/qdbusmenubarwrapper.h
0083 ${dbus_interface}
0084 ${wayland_interfaces}
0085 )
0086 # TODO KF6 Port D-Bus menu support
0087 target_compile_definitions(kdeplatformtheme_unittest6 PRIVATE -DKF6_TODO_DBUS_MENUBAR)
0088
0089 frameworkintegration_tests(
0090 kfontsettingsdata_unittest
0091 ../src/platformtheme/kfontsettingsdata.cpp ../src/platformtheme/kfontsettingsdata.h
0092 )
0093
0094 frameworkintegration_tests(
0095 kfiledialog_unittest
0096 )
0097
0098 frameworkintegration_tests(
0099 ksni_unittest
0100 )
0101
0102 frameworkintegration_tests(
0103 kdeplatformsystemtrayicon_unittest
0104 ../src/platformtheme/kdeplatformsystemtrayicon.cpp ../src/platformtheme/kdeplatformsystemtrayicon.h
0105 ${dbus_interface}
0106 )
0107
0108 frameworkintegration_tests(
0109 kdirselectdialog_unittest
0110 ../src/platformtheme/kdeplatformfiledialogbase.cpp
0111 ../src/platformtheme/kdirselectdialog.cpp
0112 ../src/platformtheme/kfiletreeview.cpp
0113 )
0114
0115 frameworkintegration_tests(
0116 khintssettings_unittest
0117 ../src/platformtheme/khintssettings.cpp ../src/platformtheme/khintssettings.h
0118 )
0119
0120 if(Qt6Qml_FOUND AND TARGET Qt6::qmltestrunner)
0121 add_test(NAME qmltests6 COMMAND Qt6::qmltestrunner WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
0122
0123 frameworkintegration_tests(kfiledialogqml_unittest)
0124 target_link_libraries(kfiledialogqml_unittest6 Qt6::Qml)
0125 endif()