Change-Id: Iaa985d43206d365b7e9138925801fc0dbccbde2e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
174 lines
5.1 KiB
CMake
174 lines
5.1 KiB
CMake
# Copyright (C) 2025 The Qt Company Ltd.
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
cmake_minimum_required(VERSION 3.16)
|
|
|
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
|
|
list(APPEND CMAKE_MODULE_PATH "${EXTRA_MODULE_PATH}")
|
|
include(Common)
|
|
|
|
# The file is included separately from Common.cmake because it has side-effects
|
|
# that we want to apply only in the RunCMake part of the test.
|
|
include(RunCMake)
|
|
|
|
# Include the test specific utilities.
|
|
include(Utils)
|
|
|
|
macro(test_per_repo_prefix_qt)
|
|
add_test_case(
|
|
TEST_NAME "per_repo_prefix"
|
|
TEST_GROUPS per_repo prefix
|
|
TEST_ARGS
|
|
BUILD_STANDALONE_TESTS
|
|
BUILD_STANDALONE_EXAMPLES_IN_TREE
|
|
BUILD_STANDALONE_EXAMPLES_AS_EXTERNAL_PROJECTS
|
|
RECONFIGURE_WITHOUT_ARGS_IMMEDIATELY
|
|
RECONFIGURE_STANDALONE_PARTS
|
|
)
|
|
endmacro()
|
|
|
|
macro(test_per_repo_no_prefix_qt)
|
|
add_test_case(
|
|
TEST_NAME "per_repo_no_prefix"
|
|
TEST_GROUPS per_repo no_prefix
|
|
TEST_ARGS
|
|
NO_PREFIX
|
|
BUILD_STANDALONE_TESTS
|
|
BUILD_STANDALONE_EXAMPLES_IN_TREE
|
|
BUILD_STANDALONE_EXAMPLES_AS_EXTERNAL_PROJECTS
|
|
RECONFIGURE_WITHOUT_ARGS_AFTER_BUILD
|
|
BUILD_AFTER_RECONFIGURE
|
|
RECONFIGURE_STANDALONE_PARTS
|
|
)
|
|
endmacro()
|
|
|
|
macro(test_per_repo_prefix_in_tree_tests_and_examples_qt)
|
|
add_test_case(
|
|
TEST_NAME "per_repo_prefix_in_tree_tests_and_examples"
|
|
TEST_GROUPS per_repo prefix in_tree_tests_and_examples
|
|
TEST_ARGS
|
|
BUILD_IN_TREE_TESTS
|
|
BUILD_IN_TREE_EXAMPLES
|
|
)
|
|
endmacro()
|
|
|
|
macro(test_per_repo_no_prefix_in_tree_tests_and_examples_qt)
|
|
add_test_case(
|
|
TEST_NAME "per_repo_no_prefix_in_tree_tests_and_examples"
|
|
TEST_GROUPS per_repo no_prefix in_tree_tests_and_examples
|
|
TEST_ARGS
|
|
NO_PREFIX
|
|
BUILD_IN_TREE_TESTS
|
|
BUILD_IN_TREE_EXAMPLES
|
|
)
|
|
endmacro()
|
|
|
|
macro(test_per_repo_no_prefix_in_source)
|
|
add_test_case(
|
|
TEST_NAME "per_repo_no_prefix_in_source"
|
|
TEST_GROUPS per_repo no_prefix in_source
|
|
TEST_ARGS
|
|
NO_PREFIX
|
|
IN_SOURCE
|
|
)
|
|
endmacro()
|
|
|
|
macro(test_top_level_prefix_qt)
|
|
add_test_case(
|
|
TEST_NAME "top_level_prefix"
|
|
TEST_GROUPS top_level prefix
|
|
TEST_ARGS
|
|
TOP_LEVEL
|
|
BUILD_STANDALONE_TESTS
|
|
BUILD_STANDALONE_EXAMPLES_IN_TREE
|
|
BUILD_STANDALONE_EXAMPLES_AS_EXTERNAL_PROJECTS
|
|
)
|
|
endmacro()
|
|
|
|
macro(test_top_level_no_prefix_qt)
|
|
add_test_case(
|
|
TEST_NAME "top_level_no_prefix"
|
|
TEST_GROUPS top_level no_prefix
|
|
TEST_ARGS
|
|
TOP_LEVEL
|
|
NO_PREFIX
|
|
BUILD_STANDALONE_TESTS
|
|
BUILD_STANDALONE_EXAMPLES_IN_TREE
|
|
BUILD_STANDALONE_EXAMPLES_AS_EXTERNAL_PROJECTS
|
|
)
|
|
endmacro()
|
|
|
|
macro(test_top_level_no_prefix_in_source)
|
|
add_test_case(
|
|
TEST_NAME "top_level_no_prefix_in_source"
|
|
TEST_GROUPS top_level no_prefix in_source
|
|
TEST_ARGS
|
|
TOP_LEVEL
|
|
NO_PREFIX
|
|
IN_SOURCE
|
|
)
|
|
endmacro()
|
|
|
|
macro(test_top_level_prefix_in_tree_tests_and_examples_qt)
|
|
add_test_case(
|
|
TEST_NAME "top_level_prefix_in_tree_tests_and_examples"
|
|
TEST_GROUPS top_level prefix in_tree_tests_and_examples
|
|
TEST_ARGS
|
|
TOP_LEVEL
|
|
BUILD_IN_TREE_TESTS
|
|
BUILD_IN_TREE_EXAMPLES
|
|
)
|
|
endmacro()
|
|
|
|
macro(test_top_level_no_prefix_in_tree_tests_and_examples_qt)
|
|
add_test_case(
|
|
TEST_NAME "top_level_no_prefix_in_tree_tests_and_examples"
|
|
TEST_GROUPS top_level no_prefix in_tree_tests_and_examples
|
|
TEST_ARGS
|
|
TOP_LEVEL
|
|
NO_PREFIX
|
|
BUILD_IN_TREE_TESTS
|
|
BUILD_IN_TREE_EXAMPLES
|
|
)
|
|
endmacro()
|
|
|
|
# Collect all test cases and groups.
|
|
macro(collect_tests)
|
|
set(TEST_CASES "")
|
|
set(TEST_GROUPS "")
|
|
|
|
test_per_repo_no_prefix_qt()
|
|
test_top_level_no_prefix_qt()
|
|
|
|
# This usually tested in regular CI as well.
|
|
test_per_repo_prefix_qt()
|
|
|
|
test_top_level_prefix_qt()
|
|
|
|
# TODO: These don't work atm due to some failed include(Targets) files.
|
|
#test_per_repo_no_prefix_in_tree_tests_and_examples_qt()
|
|
#test_top_level_no_prefix_in_tree_tests_and_examples_qt()
|
|
#test_per_repo_prefix_in_tree_tests_and_examples_qt()
|
|
#test_top_level_prefix_in_tree_tests_and_examples_qt()
|
|
|
|
test_per_repo_no_prefix_in_source()
|
|
test_top_level_no_prefix_in_source()
|
|
|
|
# TODO: Cross-builds.
|
|
# TODO: qt5.git builds with all submodules. Current limitation is that the sync-to
|
|
# script can't handle multiple modules at once, nor an "all repos" case.
|
|
# so we might have to call init-repository in that case.
|
|
# TODO: Unix Makefile builds.
|
|
# TODO: Build examples and tests, not only configure them.
|
|
# TODO: Perhaps run some of the cmake auto tests in configs that are not tested in CI
|
|
# like no-prefix builds.
|
|
|
|
message(STATUS "Available test cases: ${TEST_CASES}")
|
|
message(STATUS "Available test groups: ${TEST_GROUPS}")
|
|
foreach(group IN LISTS TEST_GROUPS)
|
|
message(STATUS "Available test cases for group ${group}: ${TEST_GROUPS_${group}}")
|
|
endforeach()
|
|
endmacro()
|
|
|
|
run_tests()
|