set(files foo.csproj bar.csproj baz.csproj) set(inLib1 FALSE) set(dotnetSdkInLib1 FALSE) set(inLib2 FALSE) set(dotnetSdkWebInLib2 FALSE) set(inLib3 FALSE) set(classicProjInLib3 FALSE) foreach(file ${files}) set(csProjectFile ${RunCMake_TEST_BINARY_DIR}/${file}) if(NOT EXISTS "${csProjectFile}") set(RunCMake_TEST_FAILED "Project file ${csProjectFile} does not exist.") return() endif() file(STRINGS "${csProjectFile}" lines) foreach(line IN LISTS lines) if(NOT inLib1) if(line MATCHES "<Project Sdk=\"Microsoft\.NET\.Sdk\">") set(dotnetSdkInLib1 TRUE) set(inLib1 TRUE) endif() elseif(NOT inLib2) if(line MATCHES "<Project Sdk=\"Microsoft\.NET\.Sdk\.Web\">") set(dotnetSdkWebInLib2 TRUE) set(inLib2 TRUE) endif() elseif(NOT inLib3) if(line MATCHES "<Project DefaultTargets=\"Build\" ToolsVersion=\"") set(classicProjInLib3 TRUE) set(inLib3 TRUE) endif() endif() endforeach() endforeach() if(NOT dotnetSdkInLib1) set(RunCMake_TEST_FAILED ".Net SDK not set correctly.") endif() if(NOT dotnetSdkWebInLib2) set(RunCMake_TEST_FAILED ".Net Web SDK not set correctly.") endif() if(NOT classicProjInLib3) set(RunCMake_TEST_FAILED "Empty DOTNET_SDK doesn't build Classic project.") endif()