VsDotnetTargetFrameworkVersion-check.cmake 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. set(files foo.csproj bar.csproj)
  2. set(inLib1 FALSE)
  3. set(targetFrameworkInLib1 FALSE)
  4. set(inLib2 FALSE)
  5. set(targetFrameworksInLib2 FALSE)
  6. foreach(file ${files})
  7. set(csProjectFile ${RunCMake_TEST_BINARY_DIR}/${file})
  8. if(NOT EXISTS "${csProjectFile}")
  9. set(RunCMake_TEST_FAILED "Project file ${csProjectFile} does not exist.")
  10. return()
  11. endif()
  12. file(STRINGS "${csProjectFile}" lines)
  13. foreach(line IN LISTS lines)
  14. if(NOT inLib1)
  15. if(line MATCHES " *<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> *$")
  16. set(targetFrameworkInLib1 TRUE)
  17. set(inLib1 TRUE)
  18. endif()
  19. elseif(NOT inLib2)
  20. if(line MATCHES " *<TargetFramework>netcoreapp3.1</TargetFramework> *$")
  21. set(targetFrameworksInLib2 TRUE)
  22. set(inLib2 TRUE)
  23. endif()
  24. endif()
  25. endforeach()
  26. endforeach()
  27. if(NOT targetFrameworkInLib1)
  28. set(RunCMake_TEST_FAILED "TargetFrameworkVersion not set correctly.")
  29. endif()
  30. if(NOT targetFrameworksInLib2)
  31. set(RunCMake_TEST_FAILED "TargetFramework not set correctly.")
  32. endif()