Warning, /frameworks/kcoreaddons/autotests/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 set(KCOREADDONS_INTERNAL_SKIP_PLUGIN_INSTALLATION ON)
0002 add_definitions(-DQT_FORCE_ASSERTS=1)
0003 
0004 include(ECMAddTests)
0005 include(ConfigureChecks.cmake) # configure checks for QFileSystemWatcher
0006 include(../KF6CoreAddonsMacros.cmake)
0007 
0008 find_package(Qt6Test ${REQUIRED_QT_VERSION} CONFIG QUIET)
0009 
0010 if(NOT TARGET Qt6::Test)
0011     message(STATUS "QtTest not found, autotests will not be built.")
0012     return()
0013 endif()
0014 
0015 if(NOT CMAKE_BUILD_TYPE MATCHES "[Dd]ebug$")
0016     set(ENABLE_BENCHMARKS 1)
0017 endif()
0018 
0019 add_library(autotests_static STATIC)
0020 # Needed to link this static lib to shared libs
0021 set_property(TARGET autotests_static PROPERTY POSITION_INDEPENDENT_CODE ON)
0022 ecm_qt_declare_logging_category(autotests_static
0023     HEADER kcoreaddons_debug.h
0024     IDENTIFIER KCOREADDONS_DEBUG
0025     CATEGORY_NAME kf.coreaddons
0026 )
0027 target_link_libraries(autotests_static Qt6::Core)
0028 
0029 if(ENABLE_PCH)
0030     if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/pch.cpp)
0031         file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/pch.cpp "/*empty file*/")
0032     endif()
0033     file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/pch_tmp.h
0034         "#pragma once\n"
0035         "#include <QObject>\n"
0036         "#include <QTest>\n"
0037         "#include <QString>\n"
0038         "#include <QDateTime>\n"
0039     )
0040     # avoid rebuilding if there was no change
0041     execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_BINARY_DIR}/pch_tmp.h" "${CMAKE_CURRENT_BINARY_DIR}/pch.h")
0042 
0043     add_library(tests_pch STATIC ${CMAKE_CURRENT_BINARY_DIR}/pch.cpp)
0044     target_link_libraries(tests_pch Qt6::Core Qt6::Test)
0045     target_precompile_headers(tests_pch PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/pch.h)
0046 endif()
0047 
0048 
0049 configure_file(config-tests.h.in config-tests.h)
0050 
0051 add_subdirectory(plugin)
0052 
0053 macro(add_unit_test testname)
0054     ecm_add_test(${testname}.cpp ${ARGN}
0055         TEST_NAME ${testname}
0056         LINK_LIBRARIES Qt6::Test KF6::CoreAddons autotests_static)
0057     if(ENABLE_PCH)
0058         target_precompile_headers(${testname} REUSE_FROM tests_pch)
0059     endif()
0060 endmacro()
0061 
0062 add_unit_test(kaboutdatatest)
0063 add_unit_test(kaboutdataapplicationdatatest)
0064 add_unit_test(kautosavefiletest)
0065 add_unit_test(kcompositejobtest)
0066 add_unit_test(kformattest)
0067 add_unit_test(kjobtest)
0068 add_unit_test(kosreleasetest)
0069 add_unit_test(kprocesstest)
0070 add_unit_test(krandomtest)
0071 add_unit_test(kshareddatacachetest)
0072 add_unit_test(kshelltest)
0073 add_unit_test(kurlmimedatatest)
0074 add_unit_test(kstringhandlertest)
0075 add_unit_test(kmacroexpandertest)
0076 add_unit_test(kusertest)
0077 add_unit_test(kprocesslisttest)
0078 add_unit_test(kfileutilstest)
0079 add_unit_test(kfuzzymatchertest)
0080 add_unit_test(knetworkmountstestcanonical)
0081 add_unit_test(knetworkmountstestnoconfig)
0082 add_unit_test(knetworkmountstestpaths)
0083 add_unit_test(knetworkmountsteststatic)
0084 add_unit_test(klibexectest)
0085 add_unit_test(kmemoryinfotest)
0086 add_unit_test(kruntimeplatformtest)
0087 if (WIN32)
0088     add_unit_test(klistopenfilesjobtest_win)
0089 endif ()
0090 if (UNIX)
0091     add_unit_test(klistopenfilesjobtest_unix)
0092 endif ()
0093 
0094 if(TARGET klistopenfilesjobtest_unix AND CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
0095     find_package(Qt6Network ${REQUIRED_QT_VERSION} CONFIG QUIET)
0096     target_link_libraries(klistopenfilesjobtest_unix Qt6::Network)
0097 endif()
0098 
0099 add_library(ktexttohtmlteststatic STATIC ${CMAKE_SOURCE_DIR}/src/lib/text/ktexttohtml.cpp ${CMAKE_SOURCE_DIR}/src/lib/text/kemoticonsparser.cpp)
0100 # include the binary dir in order to get kcoreaddons_export.h
0101 target_include_directories(ktexttohtmlteststatic PUBLIC ${KCoreAddons_BINARY_DIR}/src/lib)
0102 # fake static linking to prevent the export macros on Windows from kicking in
0103 target_compile_definitions(ktexttohtmlteststatic PUBLIC -DKCOREADDONS_STATIC_DEFINE=1)
0104 target_link_libraries(ktexttohtmlteststatic PUBLIC Qt6::Test autotests_static)
0105 ecm_add_test(ktexttohtmltest.cpp
0106     TEST_NAME ktexttohtmltest
0107     LINK_LIBRARIES ktexttohtmlteststatic
0108 )
0109 
0110 add_executable(ktexttohtmlbenchmarktest ktexttohtmlbenchmarktest.cpp ${CMAKE_SOURCE_DIR}/src/lib/text/ktexttohtml.cpp ${CMAKE_SOURCE_DIR}/src/lib/text/kemoticonsparser.cpp)
0111 target_link_libraries(ktexttohtmlbenchmarktest PUBLIC ktexttohtmlteststatic)
0112 
0113 add_executable(kprocesstest_helper kprocesstest_helper.cpp)
0114 target_link_libraries(kprocesstest_helper KF6::CoreAddons)
0115 
0116 set(KDIRWATCH_BACKENDS_TO_TEST Stat) #Stat is always compiled
0117 
0118 if (HAVE_SYS_INOTIFY_H)
0119     list(APPEND KDIRWATCH_BACKENDS_TO_TEST INotify)
0120 endif()
0121 
0122 if (HAVE_QFILESYSTEMWATCHER)
0123     list(APPEND KDIRWATCH_BACKENDS_TO_TEST QFSWatch)
0124 endif()
0125 
0126 foreach(_backendName ${KDIRWATCH_BACKENDS_TO_TEST})
0127     string(TOLOWER ${_backendName} _lowercaseBackendName)
0128     set(BACKEND_TEST_TARGET kdirwatch_${_lowercaseBackendName}_unittest)
0129     set(BACKEND_BENCHMARK_TARGET kdirwatch_${_lowercaseBackendName}_benchmarktest)
0130     add_executable(${BACKEND_TEST_TARGET} kdirwatch_unittest.cpp)
0131     target_link_libraries(${BACKEND_TEST_TARGET} Qt6::Test KF6::CoreAddons autotests_static)
0132 
0133     if(NOT WIN32)
0134         target_link_libraries(${BACKEND_TEST_TARGET} Threads::Threads)
0135     endif()
0136 
0137     ecm_mark_as_test(${BACKEND_TEST_TARGET})
0138     add_test(NAME ${BACKEND_TEST_TARGET} COMMAND ${BACKEND_TEST_TARGET})
0139     target_compile_definitions(${BACKEND_TEST_TARGET} PUBLIC -DKDIRWATCH_TEST_METHOD=\"${_backendName}\")
0140 
0141     add_executable(${BACKEND_BENCHMARK_TARGET} kdirwatch_benchmarktest.cpp)
0142     target_compile_definitions(${BACKEND_BENCHMARK_TARGET} PUBLIC -DKDIRWATCH_TEST_METHOD=\"${_backendName}\")
0143     target_link_libraries(${BACKEND_BENCHMARK_TARGET} Qt6::Test KF6::CoreAddons autotests_static)
0144     if(NOT WIN32)
0145         target_link_libraries(${BACKEND_BENCHMARK_TARGET} Threads::Threads)
0146     endif()
0147 
0148     if(ENABLE_PCH AND NOT WIN32)
0149         target_precompile_headers(${BACKEND_TEST_TARGET} REUSE_FROM tests_pch)
0150         target_precompile_headers(${BACKEND_BENCHMARK_TARGET} REUSE_FROM tests_pch)
0151     endif()
0152 
0153 endforeach()