SourceGroupHelpers.cmake 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. function(find_source_group LINES NAME)
  2. set(foundFileFilter 0)
  3. set(foundFilter 0)
  4. foreach(line IN LISTS LINES)
  5. if(line MATCHES "<Filter>${NAME}</Filter>")
  6. if(foundFileFilter)
  7. set(RunCMake_TEST_FAILED "Multiple files listed with filter for ${NAME}." PARENT_SCOPE)
  8. set(FILTER_FOUND 0 PARENT_SCOPE)
  9. return()
  10. endif()
  11. set(foundFileFilter 1)
  12. endif()
  13. if(line MATCHES "<Filter.*Include=\"${NAME}\"")
  14. if(foundFilter)
  15. set(RunCMake_TEST_FAILED "Multiple copies of ${NAME} filter listed." PARENT_SCOPE)
  16. set(FILTER_FOUND 0 PARENT_SCOPE)
  17. return()
  18. endif()
  19. set(foundFilter 1)
  20. endif()
  21. endforeach()
  22. if(NOT foundFileFilter)
  23. set(RunCMake_TEST_FAILED "File filter for ${NAME} not found." PARENT_SCOPE)
  24. set(FILTER_FOUND 0 PARENT_SCOPE)
  25. return()
  26. endif()
  27. if(NOT foundFilter)
  28. set(RunCMake_TEST_FAILED "Filter ${NAME} not found." PARENT_SCOPE)
  29. set(FILTER_FOUND 0 PARENT_SCOPE)
  30. return()
  31. endif()
  32. set(FILTER_FOUND 1 PARENT_SCOPE)
  33. endfunction()