set(files foo.vcxproj bar.vcxproj baz.vcxproj) foreach(file ${files}) set(vsProjectFile ${RunCMake_TEST_BINARY_DIR}/${file}) if(NOT EXISTS "${vsProjectFile}") set(RunCMake_TEST_FAILED "Project file ${vsProjectFile} does not exist.") return() endif() set(waldoFound FALSE) set(xyzzyFound FALSE) file(STRINGS "${vsProjectFile}" lines) foreach(line IN LISTS lines) if(line MATCHES "^ *$") if(line MATCHES "^.*waldo.targets.*$") set(waldoFound TRUE) message(STATUS "${file} is importing waldo.targets") elseif(line MATCHES "^.*xyzzy.targets.*$") set(xyzzyFound TRUE) message(STATUS "${file} is importing xyzzy.targets") endif() endif() endforeach() if("${file}" STREQUAL "foo.vcxproj") if(NOT xyzzyFound) set(RunCMake_TEST_FAILED "xyzzy.targets not imported from ${file}") return() endif() if(waldoFound) set(RunCMake_TEST_FAILED "waldo.targets imported from ${file}") return() endif() else() if(NOT xyzzyFound) set(RunCMake_TEST_FAILED "xyzzy.targets not imported from ${file}") return() endif() if(NOT waldoFound) set(RunCMake_TEST_FAILED "waldo.targets not imported from ${file}") return() endif() endif() endforeach()