VsCustomProps-check.cmake 968 B

123456789101112131415161718192021222324252627282930
  1. macro(check_custom_prop suffix)
  2. set(vcProjectFile "${RunCMake_TEST_BINARY_DIR}/foo.vcxproj${suffix}")
  3. if(NOT EXISTS "${vcProjectFile}")
  4. set(RunCMake_TEST_FAILED "Project file ${vcProjectFile} does not exist.")
  5. return()
  6. endif()
  7. set(importFound FALSE)
  8. set(props_file "${RunCMake_SOURCE_DIR}/my.props")
  9. file(TO_NATIVE_PATH "${props_file}" check_file)
  10. file(STRINGS "${vcProjectFile}" lines)
  11. foreach(line IN LISTS lines)
  12. if(line MATCHES "^ *<Import Project=\"([^\"]+)\".*Label=\"([^\"]+)\".*$")
  13. if("${CMAKE_MATCH_1}" STREQUAL "${check_file}" AND
  14. "${CMAKE_MATCH_2}" STREQUAL "LocalAppDataPlatform")
  15. message(STATUS "foo.vcxproj${suffix} is importing ${check_file}")
  16. set(importFound TRUE)
  17. endif()
  18. endif()
  19. endforeach()
  20. if(NOT importFound)
  21. set(RunCMake_TEST_FAILED "Import of custom .props file not found.")
  22. return()
  23. endif()
  24. endmacro()
  25. check_custom_prop("")
  26. check_custom_prop(".filters")