VsCSharpCFProject-check.cmake 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #
  2. # Check C# Compact Framework project for required elements.
  3. #
  4. set(csProjectFile "${RunCMake_TEST_BINARY_DIR}/foo.csproj")
  5. if(NOT EXISTS "${csProjectFile}")
  6. set(RunCMake_TEST_FAILED "Project file ${csProjectFile} does not exist.")
  7. return()
  8. endif()
  9. if( NOT ${CMAKE_SYSTEM_NAME} STREQUAL "WindowsCE" )
  10. set(RunCMake_TEST_FAILED "Test only valid for WindowsCE")
  11. return()
  12. endif()
  13. set(FoundTargetFrameworkTargetsVersion FALSE)
  14. set(FoundDotNetFrameworkVersion FALSE)
  15. set(FoundTargetFrameworkIdentifier FALSE)
  16. set(FoundCFTargetsImport FALSE)
  17. file(STRINGS "${csProjectFile}" lines)
  18. foreach(line IN LISTS lines)
  19. #message(STATUS ${line})
  20. if(line MATCHES "^ *<TargetFrameworkIdentifier>WindowsEmbeddedCompact</TargetFrameworkIdentifier> *$")
  21. set(FoundTargetFrameworkIdentifier TRUE)
  22. elseif(line MATCHES " *<TargetFrameworkVersion>v3.9</TargetFrameworkVersion> *$")
  23. set(FoundDotNetFrameworkVersion TRUE)
  24. elseif(line MATCHES " *<TargetFrameworkTargetsVersion>v8.0</TargetFrameworkTargetsVersion> *$")
  25. set(FoundTargetFrameworkTargetsVersion TRUE)
  26. elseif( line MATCHES " *<Import Project=\"\\$\\(MSBuildExtensionsPath\\)\\\\Microsoft\\\\\\$\\(TargetFrameworkIdentifier\\)\\\\\\$\\(TargetFrameworkTargetsVersion\\)\\\\Microsoft\\.\\$\\(TargetFrameworkIdentifier\\)\\.CSharp\\.targets\" */> *" )
  27. set(FoundCFTargetsImport TRUE)
  28. endif()
  29. endforeach()
  30. if(NOT FoundTargetFrameworkTargetsVersion)
  31. set(RunCMake_TEST_FAILED "TargetFrameworkIdentifier not found or not set correctly.")
  32. return()
  33. endif()
  34. if(NOT FoundDotNetFrameworkVersion)
  35. set(RunCMake_TEST_FAILED "TargetFrameworkVersion not found or not set correctly.")
  36. return()
  37. endif()
  38. if(NOT FoundTargetFrameworkIdentifier)
  39. set(RunCMake_TEST_FAILED "TargetFrameworkTargetsVersion not found or not set correctly.")
  40. return()
  41. endif()
  42. if(NOT FoundCFTargetsImport)
  43. set(RunCMake_TEST_FAILED "Import of Compact Framework targets file not found or not set correctly.")
  44. return()
  45. endif()