| set(configure_log "${RunCMake_TEST_BINARY_DIR}/CMakeFiles/CMakeConfigureLog.yaml") | |
| if (NOT EXISTS "${configure_log}") | |
| set(RunCMake_TEST_FAILED "Configure log does not exist:\n ${configure_log}") | |
| return () | |
| endif () | |
| set(force_fail 0) | |
| set(want_varname 0) | |
| file(STRINGS "${configure_log}" lines REGEX "(kind:|variable:)") | |
| foreach (line IN LISTS lines) | |
| if (line MATCHES "kind:") | |
| string(REGEX REPLACE ".*\"([^\"]+)\".*" "\\1" kind "${line}") | |
| if (kind MATCHES "try_") | |
| set(force_fail 1) | |
| set(want_varname 1) | |
| endif () | |
| elseif (want_varname AND line MATCHES "variable:") | |
| string(REGEX REPLACE ".*\"([^\"]+)\".*" "\\1" varname "${line}") | |
| list(APPEND RunCMake_TEST_FAILED | |
| "Found a `${kind}` event for `${varname}`") | |
| set(want_varname 0) | |
| endif () | |
| endforeach () | |
| if (force_fail AND NOT RunCMake_TEST_FAILED) | |
| set(RunCMake_TEST_FAILED "Found a failing event, but not its variable. Forcing a failure. See ${configure_log}") | |
| endif () |