LinkDirectory1.cmake 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. include(ExternalData)
  2. set(ExternalData_LINK_CONTENT MD5)
  3. set(ExternalData_SOURCE_ROOT ${CMAKE_CURRENT_BINARY_DIR})
  4. set(ExternalData_BINARY_ROOT ${CMAKE_CURRENT_BINARY_DIR}/ExternalData)
  5. set(input ${CMAKE_CURRENT_BINARY_DIR}/Dir)
  6. set(output ${CMAKE_CURRENT_BINARY_DIR}/ExternalData/Dir)
  7. set(staged "${input}/.ExternalData_MD5_c18ff9804c8deec9eaeb17063cda8b7b")
  8. set(content "To be transformed into a content link.")
  9. file(REMOVE ${staged})
  10. file(REMOVE_RECURSE ${input})
  11. file(WRITE ${input}/ToLink.txt "${content}")
  12. ExternalData_Expand_Arguments(Data args "DATA{${input}/,REGEX:.*}")
  13. if("x${args}" STREQUAL "x${output}")
  14. message(STATUS "Raw data correctly transformed to content link!")
  15. else()
  16. message(FATAL_ERROR "Data reference transformed to:\n ${args}\n"
  17. "but we expected:\n ${output}")
  18. endif()
  19. if(EXISTS "${staged}")
  20. message(STATUS "Staged content exists!")
  21. else()
  22. message(FATAL_ERROR "Staged content missing!")
  23. endif()
  24. # Expand again to check whether staged content is ignored.
  25. ExternalData_Expand_Arguments(Data args "DATA{${input}/,REGEX:.*}")
  26. file(STRINGS "${staged}" staged_content LIMIT_INPUT 1024)
  27. if("${content}" STREQUAL "${staged_content}")
  28. message(STATUS "Staged content is correct!")
  29. else()
  30. message(STATUS "Staged content is incorrect!")
  31. endif()
  32. if(EXISTS "${staged}.md5")
  33. message(FATAL_ERROR "Staged content was incorrectly re-staged!")
  34. else()
  35. message(STATUS "Staged content was correctly not re-staged!")
  36. endif()