| set(fbuild_bff "${RunCMake_TEST_BINARY_DIR}/fbuild.bff") |
| |
| if(NOT EXISTS "${fbuild_bff}") |
| set(RunCMake_TEST_FAILED "Generator output file is missing:\n ${fbuild_bff}") |
| return() |
| endif() |
| |
| file(STRINGS "${fbuild_bff}" fbuild_bff_lines |
| REGEX "\\.UnityInputExcludedFiles =|unity_.*\\.cpp'|^ \\}") |
| |
| set(in_excluded_files 0) |
| set(excluded_sources) |
| foreach(line IN LISTS fbuild_bff_lines) |
| if(line MATCHES "\\.UnityInputExcludedFiles =") |
| set(in_excluded_files 1) |
| elseif(in_excluded_files AND line MATCHES "^ \\}") |
| set(in_excluded_files 0) |
| elseif(in_excluded_files AND line MATCHES "unity_([^']+)\\.cpp'") |
| list(APPEND excluded_sources "${CMAKE_MATCH_1}") |
| endif() |
| endforeach() |
| |
| foreach(prop IN ITEMS |
| compile_options |
| compile_definitions |
| include_directories) |
| foreach(index IN ITEMS 1 2) |
| set(expected_source "${prop}_${index}") |
| if(NOT expected_source IN_LIST excluded_sources) |
| set(RunCMake_TEST_FAILED |
| "Source unity_${prop}_${index}.cpp was not excluded from generated FASTBuild unity files in ${fbuild_bff}") |
| return() |
| endif() |
| endforeach() |
| endforeach() |