| if(RunCMake_GENERATOR_IS_MULTI_CONFIG) | |
| file(GLOB ninja_files "${RunCMake_TEST_BINARY_DIR}/CMakeFiles/impl-*.ninja") | |
| else() | |
| set(ninja_files "${RunCMake_TEST_BINARY_DIR}/build.ninja") | |
| endif() | |
| foreach(ninja_file IN LISTS ninja_files) | |
| file(READ "${ninja_file}" ninja) | |
| string(REGEX MATCHALL "build [^\n]*: CXX_COMPILER__runtime-module[^\n]*synth_[^\n]*\n( [^\n]*\n)*" rules "${ninja}") | |
| set(runtimes) | |
| foreach(rule IN LISTS rules) | |
| if(rule MATCHES "-runtime-([A-Za-z]+)") | |
| list(APPEND runtimes "${CMAKE_MATCH_1}") | |
| else() | |
| list(APPEND runtimes "empty") | |
| endif() | |
| endforeach() | |
| set(expected MultiThreaded MultiThreadedDLL MultiThreadedDebug MultiThreadedDebugDLL empty) | |
| list(SORT runtimes) | |
| list(SORT expected) | |
| if(NOT runtimes STREQUAL expected) | |
| set(RunCMake_TEST_FAILED "Synthetic runtime selections in ${ninja_file}: '${runtimes}', expected '${expected}'") | |
| return() | |
| endif() | |
| endforeach() |