VsPackageReferences-check.cmake 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. set(vcProjectFile "${RunCMake_TEST_BINARY_DIR}/foo.vcxproj")
  2. if(NOT EXISTS "${vcProjectFile}")
  3. set(RunCMake_TEST_FAILED "Project file foo.vcxproj does not exist.")
  4. return()
  5. endif()
  6. set(test1Library "boost")
  7. set(test1Version "1.7.0")
  8. set(test2Library "SFML")
  9. set(test2Version "2.2.0")
  10. set(Library1Found FALSE)
  11. set(Library2Found FALSE)
  12. file(STRINGS "${vcProjectFile}" lines)
  13. foreach(i 1 2)
  14. set(testLibrary "${test${i}Library}")
  15. set(testVersion "${test${i}Version}")
  16. foreach(line IN LISTS lines)
  17. if(line MATCHES "^ *<PackageReference Include=\"${testLibrary}\".*>$")
  18. if(line MATCHES "^ *<PackageReference .* Version=\"${testVersion}\".*>$")
  19. set(Library${i}Found TRUE)
  20. message(STATUS "foo.vcxproj is using package reference ${testLibrary} with version ${testVersion}")
  21. elseif()
  22. message(STATUS "foo.vcxproj failed to define reference ${testLibrary} with version ${testVersion}")
  23. set(Library${i}Found FALSE)
  24. endif()
  25. endif()
  26. endforeach()
  27. endforeach()
  28. if(NOT Library1Found OR NOT Library2Found)
  29. set(RunCMake_TEST_FAILED "Failed to find package references")
  30. return()
  31. endif()