macro(ensure_props_set projectFile) if(NOT EXISTS "${projectFile}") message(FATAL_ERROR "Project file ${projectFile} does not exist.") return() endif() set(SourcePropertyFound FALSE) set(DebugTargetPropertyFound FALSE) set(ReleaseTargetPropertyFound FALSE) file(STRINGS "${projectFile}" lines) foreach(line IN LISTS lines) if(line MATCHES "<SourceProperty1.*Debug.*>SourceProperty1Value</SourceProperty1>") message("SourceProperty1 setting found") set(SourcePropertyFound TRUE) endif() if(line MATCHES "<TargetProperty1.*Debug.*>TargetProperty1ValueDebug</TargetProperty1>") message("Debug TargetProperty1 setting found") set(DebugTargetPropertyFound TRUE) endif() if(line MATCHES "<TargetProperty1.*Release.*>TargetProperty1ValueRelease</TargetProperty1>") message("Release TargetProperty1 setting found") set(ReleaseTargetPropertyFound TRUE) endif() endforeach() if (NOT SourcePropertyFound) message(FATAL_ERROR "SourceProperty1 setting not found") return() endif() if (NOT DebugTargetPropertyFound) message(FATAL_ERROR "Debug TargetProperty1 setting not found") return() endif() if (NOT ReleaseTargetPropertyFound) message(FATAL_ERROR "Release TargetProperty1 setting not found") return() endif() endmacro() ensure_props_set("${vcxproj}")