macro(ensure_props_set projectFile) if(NOT EXISTS "${projectFile}") set(RunCMake_TEST_FAILED "Project file ${projectFile} does not exist.") return() endif() set(FirstSettingFound FALSE) set(SecondSettingFound FALSE) file(STRINGS "${projectFile}" lines) foreach(line IN LISTS lines) if(line MATCHES "TargetProperty1ValueDebug") if (FirstSettingFound) message("TargetProperty1 setting found twice") set(SecondSettingFound TRUE) else() message("TargetProperty1 setting found once") set(FirstSettingFound TRUE) endif() endif() endforeach() if (NOT FirstSettingFound) set(RunCMake_TEST_FAILED "TargetProperty1 setting not found at all") return() endif() if (NOT SecondSettingFound) set(RunCMake_TEST_FAILED "TargetProperty1 setting found once when it should be found twice") return() endif() endmacro() ensure_props_set("${RunCMake_TEST_BINARY_DIR}/foo.vcxproj")