VsTargetsFileReferences-check.cmake 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. set(files foo.vcxproj bar.vcxproj baz.vcxproj)
  2. foreach(file ${files})
  3. set(vsProjectFile ${RunCMake_TEST_BINARY_DIR}/${file})
  4. if(NOT EXISTS "${vsProjectFile}")
  5. set(RunCMake_TEST_FAILED "Project file ${vsProjectFile} does not exist.")
  6. return()
  7. endif()
  8. set(waldoFound FALSE)
  9. set(xyzzyFound FALSE)
  10. file(STRINGS "${vsProjectFile}" lines)
  11. foreach(line IN LISTS lines)
  12. if(line MATCHES "^ *<Import Project=.*/>$")
  13. if(line MATCHES "^.*waldo.targets.*$")
  14. set(waldoFound TRUE)
  15. message(STATUS "${file} is importing waldo.targets")
  16. elseif(line MATCHES "^.*xyzzy.targets.*$")
  17. set(xyzzyFound TRUE)
  18. message(STATUS "${file} is importing xyzzy.targets")
  19. endif()
  20. endif()
  21. endforeach()
  22. if("${file}" STREQUAL "foo.vcxproj")
  23. if(NOT xyzzyFound)
  24. set(RunCMake_TEST_FAILED "xyzzy.targets not imported from ${file}")
  25. return()
  26. endif()
  27. if(waldoFound)
  28. set(RunCMake_TEST_FAILED "waldo.targets imported from ${file}")
  29. return()
  30. endif()
  31. else()
  32. if(NOT xyzzyFound)
  33. set(RunCMake_TEST_FAILED "xyzzy.targets not imported from ${file}")
  34. return()
  35. endif()
  36. if(NOT waldoFound)
  37. set(RunCMake_TEST_FAILED "waldo.targets not imported from ${file}")
  38. return()
  39. endif()
  40. endif()
  41. endforeach()