diff options
Diffstat (limited to 'Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake')
-rw-r--r-- | Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake | 64 |
1 files changed, 59 insertions, 5 deletions
diff --git a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake index 5c6a22d..88fd1e8 100644 --- a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake +++ b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake @@ -488,11 +488,65 @@ if(CMake_TEST_Qt_version) "-D${QtX}Core_DIR=${${QtX}Core_DIR}" "-DCMAKE_PREFIX_PATH:STRING=${CMAKE_PREFIX_PATH}" ) - run_cmake_configure(QtX) - unset(RunCMake_TEST_OPTIONS) - include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake) - run_cmake_build(QtX debug-in-release-graph Release exe:Debug) + + foreach(use_better_graph IN ITEMS ON OFF) + foreach(target_config IN ITEMS Debug Release RelWithDebInfo) + foreach(ninja_config IN ITEMS Debug Release RelWithDebInfo) + block() + set(target_config_suffix "_${target_config}") + if (use_better_graph) + set(autogen_files_config_suffix "${target_config_suffix}") + else() + set(autogen_files_config_suffix "") + endif() + set(prefix "QtX") + set(case "${target_config}-in-${ninja_config}-better-graph-${use_better_graph}") + set(test_path "${prefix}-${case}") + set(RunCMake_TEST_VARIANT_DESCRIPTION "-${case}-configure") + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${test_path}-build) + run_cmake_with_options(QtX ${RunCMake_TEST_OPTIONS} + "-DCMAKE_AUTOGEN_BETTER_GRAPH_MULTI_CONFIG=${use_better_graph}") + unset(RunCMake_TEST_VARIANT_DESCRIPTION) + include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake) + run_cmake_build(${test_path} "" ${ninja_config} exe:${target_config}) + check_files("${RunCMake_TEST_BINARY_DIR}" + INCLUDE + "${AUTOGEN_FILES${target_config_suffix}}" + "${TARGET_FILE_exe${target_config_suffix}}" + "${TARGET_OBJECT_FILES_exe${target_config_suffix}}" + ) + if (DEFINED RunCMake_TEST_FAILED AND NOT RunCMake_TEST_FAILED STREQUAL "") + message(FATAL_ERROR "RunCMake_TEST_FAILED:${RunCMake_TEST_FAILED}") + else() + message(STATUS "${test_path}-check-files - PASSED") + endif() + + check_file_contents("${RunCMake_TEST_BINARY_DIR}/exe_autogen/deps${autogen_files_config_suffix}" + "exe_autogen/timestamp${autogen_files_config_suffix}") + if (DEFINED RunCMake_TEST_FAILED AND NOT RunCMake_TEST_FAILED STREQUAL "") + message(FATAL_ERROR "RunCMake_TEST_FAILED:${RunCMake_TEST_FAILED}") + endif() + endblock() + endforeach() + endforeach() + endforeach() + if(CMake_TEST_${QtX}Core_Version VERSION_GREATER_EQUAL 5.15.0) - run_ninja(QtX automoc-check build-Debug.ninja -t query exe_autogen/timestamp) + foreach(use_better_graph IN ITEMS ON OFF) + foreach(target_config IN ITEMS Debug Release RelWithDebInfo) + foreach(ninja_config IN ITEMS Debug Release RelWithDebInfo) + set(prefix "QtX") + set(case "${target_config}-in-${ninja_config}-better-graph-${use_better_graph}") + set(test_path "${prefix}-${case}") + if (use_better_graph) + set(autogen_files_config_suffix "_${target_config}") + else() + set(autogen_files_config_suffix "") + endif() + set(RunCMake_TEST_VARIANT_DESCRIPTION "-automoc-check") + run_ninja(${test_path} "" build-${ninja_config}.ninja -t query exe_autogen/timestamp${autogen_files_config_suffix}) + endforeach() + endforeach() + endforeach() endif() endif() |