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 "SourceProperty1Value") message("SourceProperty1 setting found") set(SourcePropertyFound TRUE) endif() if(line MATCHES "TargetProperty1ValueDebug") message("Debug TargetProperty1 setting found") set(DebugTargetPropertyFound TRUE) endif() if(line MATCHES "TargetProperty1ValueRelease") 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}")