| set(pch_header "CMakeFiles/tgt.dir/cmake_pch.hxx") |
| set(pch_source [=[CMakeFiles\\tgt.dir\\cmake_pch.cxx]=]) |
| |
| if(NOT EXISTS "${RunCMake_TEST_BINARY_DIR}/${pch_header}") |
| set(RunCMake_TEST_FAILED "Generated PCH header ${pch_header} does not exist.") |
| return() |
| endif() |
| if(NOT EXISTS "${RunCMake_TEST_BINARY_DIR}/${pch_source}") |
| set(RunCMake_TEST_FAILED "Generated PCH header ${pch_source} does not exist.") |
| return() |
| endif() |
| |
| set(tgt_project "${RunCMake_TEST_BINARY_DIR}/tgt.vcxproj") |
| if (NOT EXISTS "${tgt_project}") |
| set(RunCMake_TEST_FAILED "Generated project file ${tgt_project} doesn't exist.") |
| return() |
| endif() |
| |
| file(STRINGS ${tgt_project} tgt_projects_strings) |
| |
| foreach(line IN LISTS tgt_projects_strings) |
| if (line MATCHES "<PrecompiledHeader.*>Use</PrecompiledHeader>") |
| set(have_pch_use ON) |
| endif() |
| |
| if (line MATCHES "<PrecompiledHeader.*>Create</PrecompiledHeader>") |
| set(have_pch_create ON) |
| endif() |
| |
| if (line MATCHES "<PrecompiledHeaderFile.*>.*${pch_header}</PrecompiledHeaderFile>") |
| set(have_pch_header ON) |
| endif() |
| |
| if (line MATCHES "<ForcedIncludeFiles.*>.*${pch_header}.*</ForcedIncludeFiles>") |
| set(have_force_pch_header ON) |
| endif() |
| |
| if (line MATCHES "<ClCompile Include=.*${pch_source}\">") |
| set(have_pch_source_compile ON) |
| endif() |
| endforeach() |
| |
| if (NOT have_pch_use) |
| set(RunCMake_TEST_FAILED "Generated project should have the <PrecompiledHeader>Use</PrecompiledHeader> block.") |
| return() |
| endif() |
| |
| if (NOT have_pch_create) |
| set(RunCMake_TEST_FAILED "Generated project should have the <PrecompiledHeader>Create</PrecompiledHeader> block.") |
| return() |
| endif() |
| |
| if (NOT have_pch_header) |
| set(RunCMake_TEST_FAILED "Generated project should have the <PrecompiledHeaderFile>${pch_header}</PrecompiledHeaderFile> block.") |
| return() |
| endif() |
| |
| if (NOT have_force_pch_header) |
| set(RunCMake_TEST_FAILED "Generated project should have the <ForcedIncludeFiles>${pch_header}</ForcedIncludeFiles> block.") |
| return() |
| endif() |
| |
| if (NOT have_pch_source_compile) |
| set(RunCMake_TEST_FAILED "Generated project should have the <ClCompile Include=\"${pch_source}\"> block.") |
| return() |
| endif() |