diff options
Diffstat (limited to 'Tests/RunCMake/VsDotnetSdk/DotnetSdkVariables-check.cmake')
-rw-r--r-- | Tests/RunCMake/VsDotnetSdk/DotnetSdkVariables-check.cmake | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Tests/RunCMake/VsDotnetSdk/DotnetSdkVariables-check.cmake b/Tests/RunCMake/VsDotnetSdk/DotnetSdkVariables-check.cmake new file mode 100644 index 0000000..7a5cd1d --- /dev/null +++ b/Tests/RunCMake/VsDotnetSdk/DotnetSdkVariables-check.cmake @@ -0,0 +1,52 @@ +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() |