diff options
Diffstat (limited to 'src/testlib/CMakeLists.txt')
-rw-r--r-- | src/testlib/CMakeLists.txt | 114 |
1 files changed, 73 insertions, 41 deletions
diff --git a/src/testlib/CMakeLists.txt b/src/testlib/CMakeLists.txt index 226bf079b8..014ee2c6ab 100644 --- a/src/testlib/CMakeLists.txt +++ b/src/testlib/CMakeLists.txt @@ -1,17 +1,18 @@ -# Generated from testlib.pro. +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause -# special case begin include(selfcover.cmake) -# special case end ##################################################################### ## Test Module: ##################################################################### -qt_add_module(Test - CONFIG_MODULE_NAME testlib # special case +qt_internal_add_module(Test + CONFIG_MODULE_NAME testlib + QMAKE_MODULE_CONFIG console testlib_defines EXCEPTIONS SOURCES + 3rdparty/cycle_p.h qabstracttestlogger.cpp qabstracttestlogger_p.h qasciikey.cpp qbenchmark.cpp qbenchmark.h qbenchmark_p.h @@ -20,9 +21,12 @@ qt_add_module(Test qbenchmarkmetric.cpp qbenchmarkmetric.h qbenchmarkmetric_p.h qbenchmarkperfevents.cpp qbenchmarkperfevents_p.h qbenchmarktimemeasurers_p.h + qcomparisontesthelper.cpp qcomparisontesthelper_p.h qcsvbenchmarklogger.cpp qcsvbenchmarklogger_p.h + qemulationdetector_p.h qjunittestlogger.cpp qjunittestlogger_p.h qplaintestlogger.cpp qplaintestlogger_p.h + qpropertytesthelper_p.h qsignaldumper.cpp qsignaldumper_p.h qsignalspy.h qtaptestlogger.cpp qtaptestlogger_p.h @@ -34,9 +38,8 @@ qt_add_module(Test qtestaccessible.h qtestassert.h qtestblacklist.cpp qtestblacklist_p.h - qtestcase.cpp qtestcase.h + qtestcase.cpp qtestcase.h qtestcase_p.h qtestcoreelement_p.h - qtestcorelist_p.h qtestdata.cpp qtestdata.h qtestelement.cpp qtestelement_p.h qtestelementattribute.cpp qtestelementattribute_p.h @@ -52,54 +55,64 @@ qt_add_module(Test qtestsystem.h qtesttable.cpp qtesttable_p.h qtesttouch.h + qtestwheel.h qttestglobal.h qxmltestlogger.cpp qxmltestlogger_p.h DEFINES QT_NO_CAST_FROM_ASCII QT_NO_CAST_TO_ASCII + QT_NO_CONTEXTLESS_CONNECT QT_NO_DATASTREAM QT_NO_FOREACH - QT_BUILD_TESTLIB_LIB # special case + # Ensure uniform location info between release and debug builds + QT_NO_MESSAGELOGCONTEXT LIBRARIES Qt::CorePrivate PUBLIC_LIBRARIES Qt::Core PRIVATE_MODULE_INTERFACE Qt::CorePrivate + GENERATE_CPP_EXPORTS ) -#### Keys ignored in scope 1:.:.:testlib.pro:<TRUE>: -# MODULE_CONFIG = "console" "testlib_defines" +if(TARGET Gui) + set_property(TARGET Test + APPEND PROPERTY _qt_internal_sync_headers_deps Gui_sync_headers) +endif() ## Scopes: ##################################################################### -#### Keys ignored in scope 2:.:.:testlib.pro:UNIX AND NOT embedded: -# QMAKE_PKGCONFIG_DESCRIPTION = "Qt" "Unit" "Testing" "Library" - -qt_extend_target(Test CONDITION QT_FEATURE_itemmodeltester +qt_internal_extend_target(Test CONDITION QT_FEATURE_itemmodeltester SOURCES qabstractitemmodeltester.cpp qabstractitemmodeltester.h ) -qt_extend_target(Test CONDITION QT_FEATURE_valgrind +qt_internal_extend_target(Test CONDITION QT_FEATURE_batch_test_support SOURCES + qtestregistry.cpp qtestregistry_p.h +) + +qt_internal_extend_target(Test CONDITION QT_FEATURE_valgrind + SOURCES + 3rdparty/callgrind_p.h + 3rdparty/valgrind_p.h qbenchmarkvalgrind.cpp qbenchmarkvalgrind_p.h ) -qt_extend_target(Test CONDITION embedded +qt_internal_extend_target(Test CONDITION embedded COMPILE_OPTIONS -fno-rtti ) -qt_extend_target(Test CONDITION APPLE +qt_internal_extend_target(Test CONDITION APPLE SOURCES qappletestlogger.cpp qappletestlogger_p.h PUBLIC_LIBRARIES ${FWSecurity} ) -qt_extend_target(Test CONDITION MACOS +qt_internal_extend_target(Test CONDITION MACOS SOURCES qtestutil_macos.mm qtestutil_macos_p.h PUBLIC_LIBRARIES @@ -109,30 +122,49 @@ qt_extend_target(Test CONDITION MACOS ${FWIOKit} ) -# special case begin -# Do not bother with disabled stuff: -# extend_target(Test CONDITION (MACOS) AND (OFF AND NOT lessThan(QMAKE_XCODE_VERSION, "6.0")) ... -# extend_target(Test CONDITION ((MACOS) AND (OFF AND NOT lessThan(QMAKE_XCODE_VERSION, "6.0"))) AND (NOT QMAKE_MAC_SDK_PLATFORM_PATH_ISEMPTY) ... -# special case end - -#### Keys ignored in scope 9:.:.:testlib.pro:NOT QMAKE_MAC_SDK_PLATFORM_PATH_ISEMPTY: -# MODULE_CONFIG = "xctest" - -#### Keys ignored in scope 10:.:.:testlib.pro:NOT TARGET Qt::Gui: -# HEADERSCLEAN_EXCLUDE = "qtest_gui.h" "qtestaccessible.h" "qtestkeyboard.h" "qtestmouse.h" "qtesttouch.h" - -#### Keys ignored in scope 11:.:.:testlib.pro:NOT TARGET Qt::Widgets: -# HEADERSCLEAN_EXCLUDE = "qtest_widgets.h" +set(qt_tc_build_dir "$<TARGET_PROPERTY:QT_TESTCASE_BUILDDIR>") +set(qt_bool_tc_build_dir "$<BOOL:${qt_tc_build_dir}>") +set(qt_tc_build_dir_def + "$<IF:${qt_bool_tc_build_dir},${qt_tc_build_dir},$<TARGET_PROPERTY:BINARY_DIR>>" +) +set_property(TARGET Test APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + QT_TESTCASE_BUILDDIR="${qt_tc_build_dir_def}" + QT_TESTCASE_SOURCEDIR="$<TARGET_PROPERTY:SOURCE_DIR>" +) -#### Keys ignored in scope 12:.:.:testlib.pro:NOT TARGET Qt::Network: -# HEADERSCLEAN_EXCLUDE = "qtest_network.h" -qt_add_docs(Test +qt_internal_add_docs(Test doc/qttestlib.qdocconf ) -# special case begin -qt_apply_testlib_coverage_options(Test) - -# Allow blacklisting tests depending on whether testlib was built as part of a CMake build. -target_compile_definitions(Test PRIVATE QT_CMAKE_BUILD) -# special case end +qt_internal_apply_testlib_coverage_options(Test) + +# include the snippet projects for developer-builds +if(QT_FEATURE_private_tests) + add_subdirectory(doc/snippets/code) +endif() + +if(WASM) + # Keep in sync with is_test files in Qt6WasmMacros.cmake + set(testrunner_files + "${QtBase_SOURCE_DIR}/util/wasm/batchedtestrunner/batchedtestrunner.html" + "${QtBase_SOURCE_DIR}/util/wasm/batchedtestrunner/batchedtestrunner.js" + "${QtBase_SOURCE_DIR}/util/wasm/batchedtestrunner/emrunadapter.js" + "${QtBase_SOURCE_DIR}/util/wasm/batchedtestrunner/qwasmjsruntime.js" + "${QtBase_SOURCE_DIR}/util/wasm/batchedtestrunner/qwasmtestmain.js" + "${QtBase_SOURCE_DIR}/util/wasm/batchedtestrunner/util.js" + "${QtBase_SOURCE_DIR}/util/wasm/batchedtestrunner/qtestoutputreporter.js" + "${QtBase_SOURCE_DIR}/util/wasm/batchedtestrunner/qtestoutputreporter.css") + + qt_path_join(install_dir_libexec "${QT_INSTALL_DIR}" "${INSTALL_LIBEXECDIR}") + qt_copy_or_install(FILES ${testrunner_files} + DESTINATION "${install_dir_libexec}") + + # In a prefix build, the above copy_or_install won't put the files + # in the build dir, but they are required there for tests at configure time + if(QT_WILL_INSTALL) + qt_path_join(build_dir_libexec "${QT_BUILD_DIR}" "${INSTALL_LIBEXECDIR}") + foreach(testrunner_file ${testrunner_files}) + file(COPY "${testrunner_file}" DESTINATION "${build_dir_libexec}") + endforeach() + endif() +endif() |