Revision control
Copy as Markdown
# Copyright (C) 2023 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_qmlls_utils LANGUAGES CXX)
find_package(Qt6BuildInternals REQUIRED COMPONENTS STANDALONE_TEST)
endif()
file(GLOB_RECURSE test_data_glob
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
data)
list(APPEND test_data ${test_data_glob})
qt_internal_add_test(tst_qmlls_utils
SOURCES
tst_qmlls_utils.cpp
DEFINES
QT_QMLLS_UTILS_DATADIR="${CMAKE_CURRENT_SOURCE_DIR}/data"
QT_QMLLS_BIG_FOLDER="${CMAKE_SOURCE_DIR}"
LIBRARIES
Qt::Core
Qt::QmlDomPrivate
Qt::LanguageServerPrivate
Qt::Test
Qt::QuickTestUtilsPrivate
Qt::QmlLSPrivate
TESTDATA ${test_data}
)
qt_internal_add_test(tst_qmlls_highlighting
SOURCES
tst_qmlls_highlighting.cpp
DEFINES
QT_QMLLS_HIGHLIGHTS_DATADIR="${CMAKE_CURRENT_SOURCE_DIR}/data"
LIBRARIES
Qt::Core
Qt::QmlDomPrivate
Qt::LanguageServerPrivate
Qt::Test
Qt::QuickTestUtilsPrivate
Qt::QmlLSPrivate
TESTDATA ${test_data}
)
qt_internal_add_test(tst_qmlls_documentationHints
SOURCES
tst_qmlls_documentationHints.cpp
DEFINES
QT_QMLLS_DOCUMENTATION_DATADIR="${CMAKE_CURRENT_SOURCE_DIR}/data"
LIBRARIES
Qt::Core
Qt::QmlDomPrivate
Qt::LanguageServerPrivate
Qt::Test
Qt::QuickTestUtilsPrivate
Qt::QmlLSPrivate
TESTDATA ${test_data}
)
qt_internal_add_test(tst_qmlls_differ
SOURCES
tst_qmlls_differ.h tst_qmlls_differ.cpp
LIBRARIES
Qt::Core
Qt::Test
Qt::QuickTestUtilsPrivate
Qt::QmlLSPrivate
TESTDATA ${test_data}
)
qt_internal_extend_target(tst_qmlls_utils CONDITION ANDROID OR IOS
DEFINES
QT_QMLLS_UTILS_DATADIR=":/domdata"
)
# The qmlls tests spawn qmlls as a subprocess; it consults the QML import path
# for qmltypes files (generated by the QML modules' C++ targets) and loads the
# qmlls completion plugins. Build all of these before running the tests.
foreach(_qmlls_test_dep IN ITEMS qmlls qt_qmlls_plugins_all
QmlCore Quick QuickTemplates2 QuickControls2 QuickControls2Basic)
if (TARGET ${_qmlls_test_dep})
add_dependencies(tst_qmlls_utils ${_qmlls_test_dep})
add_dependencies(tst_qmlls_highlighting ${_qmlls_test_dep})
add_dependencies(tst_qmlls_documentationHints ${_qmlls_test_dep})
endif()
endforeach()