| file(GLOB replies "${RunCMake_TEST_BINARY_DIR}/.cmake/api/v1/reply/target-headers-*.json") |
| if(NOT replies) |
| set(RunCMake_TEST_FAILED "No File API reply for headers") |
| return() |
| endif() |
| validate_json_schema("${RunCMake_SOURCE_DIR}/../../../Help/manual/file_api/schema_target.json" "${replies}") |
| foreach(reply IN LISTS replies) |
| file(READ "${reply}" contents) |
| string(JSON count ERROR_VARIABLE error LENGTH "${contents}" interfaceIncludes) |
| if(error OR NOT count EQUAL 1) |
| set(RunCMake_TEST_FAILED "Expected one language-independent interface include in ${reply}") |
| return() |
| endif() |
| string(JSON path GET "${contents}" interfaceIncludes 0 path) |
| string(JSON languages ERROR_VARIABLE error GET "${contents}" interfaceIncludes 0 languages) |
| if(NOT error) |
| set(RunCMake_TEST_FAILED "Unexpected languages for a project with no enabled languages: ${languages}") |
| return() |
| endif() |
| if(NOT path STREQUAL RunCMake_SOURCE_DIR) |
| set(RunCMake_TEST_FAILED "Unexpected language-independent interface include: ${path}") |
| return() |
| endif() |
| endforeach() |