Revision control

Copy as Markdown

# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
if(NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT)
cmake_minimum_required(VERSION 3.16)
project(tst_qmltc LANGUAGES CXX)
find_package(Qt6BuildInternals REQUIRED COMPONENTS STANDALONE_TEST)
endif()
add_subdirectory(QmltcTests)
add_subdirectory(NamespaceTest/Subfolder)
add_subdirectory(QmltcExportedTests)
add_subdirectory(QmltcExportedNoFileNameTest)
set(test_sources
nameconflict.h nameconflict.cpp
tst_qmltc.h tst_qmltc.cpp
)
set(qmltc_module_libs
qmltc_test_module
# We need to link against a <module>plugin here for the following:
# - Properly see `import QmltcTests` (that could be resolved differently
# but this works as well)
# - Properly see C++ types exposed to QML in the engine (we need C++
# automatic type registration that comes from the plugin)
qmltc_test_moduleplugin
qmltc_namespace_test_module
qmltc_namespace_test_moduleplugin
qmltc_exported_tests_module
qmltc_exported_tests_moduleplugin
qmltc_exported_no_file_name_test_module
qmltc_exported_no_file_name_test_moduleplugin
Qt::QmlCompilerPrivate
Qt::QmltcPrivate
)
qt_internal_add_test(tst_qmltc_diskcache
SOURCES ${test_sources}
LIBRARIES ${qmltc_module_libs}
)
target_compile_definitions(tst_qmltc_diskcache PRIVATE
QMLTC_TESTS_DISABLE_CACHE=0
QT_NO_URL_CAST_FROM_STRING #QTBUG-113875
QT_NO_CAST_FROM_ASCII
)
qt_internal_add_test(tst_qmltc_nodiskcache
SOURCES ${test_sources}
LIBRARIES ${qmltc_module_libs}
)
target_compile_definitions(tst_qmltc_nodiskcache PRIVATE
QMLTC_TESTS_DISABLE_CACHE=1
QT_NO_URL_CAST_FROM_STRING #QTBUG-113875
QT_NO_CAST_FROM_ASCII
)
# Add qmltc documentation example to the tests. This is not beautiful but allows
# to nicely test the documentation snippets automatically (and so making sure
# the code there is up-to-date)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/qml/doc/snippets/qmltc snippets)