Files
RedBear-OS/local/recipes/kde/kf6-extra-cmake-modules/source/tests/ECMQmlModuleTest/check.cmake.in
T
2026-04-14 10:51:06 +01:00

85 lines
2.6 KiB
CMake

#
# SPDX-FileCopyrightText: 2021 Arjen Hiemstra <ahiemstra@heimr.nl>
#
# SPDX-License-Identifier: BSD-3-Clause
set(SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@")
set(INSTALL_DIR "@CMAKE_INSTALL_PREFIX@/test")
set(SHARED "@BUILD_SHARED_LIBS@")
set(QML_ONLY "@QML_ONLY@")
set(DEPENDS "@DEPENDS@")
set(QT_VERSION "@QT_MAJOR_VERSION@")
set(TEST_INSTALL_DIR "${INSTALL_DIR}/Test")
function(check_file_exists file)
if (NOT EXISTS ${file})
message(FATAL_ERROR "File \"${file}\" does not exist")
endif()
endfunction()
function (check_file_contents)
cmake_parse_arguments(ARGS "" "GENERATED;EXPECTED" "" ${ARGN})
if (NOT EXISTS "${ARGS_GENERATED}")
message(FATAL_ERROR "${ARGS_GENERATED} was not generated")
endif()
file(READ "${ARGS_GENERATED}" generated_contents)
if (NOT EXISTS "${ARGS_EXPECTED}")
message(FATAL_ERROR "Original ${ARGS_EXPECTED} was not found")
endif()
file(READ "${ARGS_EXPECTED}" original_contents)
if (NOT "${generated_contents}" STREQUAL "${original_contents}")
message(FATAL_ERROR "${generated_file} contains '${generated_contents}' instead of '${original_contents}'")
endif()
endfunction()
if (SHARED)
check_file_contents(
GENERATED "${TEST_INSTALL_DIR}/QmlModule.qml"
EXPECTED "${SOURCE_DIR}/QmlModule.qml"
)
if (QML_ONLY AND NOT DEPENDS)
check_file_contents(
GENERATED "${TEST_INSTALL_DIR}/qmldir"
EXPECTED "${SOURCE_DIR}/qmldir_expected_qmlonly_qt${QT_VERSION}"
)
endif()
if (DEPENDS)
check_file_contents(
GENERATED "${TEST_INSTALL_DIR}/qmldir"
EXPECTED "${SOURCE_DIR}/qmldir_expected_depends_qt${QT_VERSION}"
)
endif()
if (NOT QML_ONLY AND NOT DEPENDS)
check_file_contents(
GENERATED "${TEST_INSTALL_DIR}/qmldir"
EXPECTED "${SOURCE_DIR}/qmldir_expected_full_qt${QT_VERSION}"
)
endif()
if (NOT QML_ONLY OR ${QT_VERSION} GREATER_EQUAL 6)
if (WIN32)
check_file_exists("${TEST_INSTALL_DIR}/TestModule.dll")
else()
check_file_exists("${TEST_INSTALL_DIR}/libTestModule.so")
endif()
endif()
else()
if (${QT_VERSION} LESS 6)
if (WIN32)
check_file_exists("${TEST_INSTALL_DIR}/TestModule.lib")
else()
check_file_exists("${TEST_INSTALL_DIR}/libTestModule.a")
endif()
else()
if (WIN32)
check_file_exists("@MODULE_OUTPUT_PATH@/TestModule.lib")
else()
check_file_exists("@MODULE_OUTPUT_PATH@/libTestModule.a")
endif()
endif()
endif()