check-make-program-hooks.cmake 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. set(NUM_TRIES 30)
  2. set(DELAY 1)
  3. if (NOT EXISTS ${v1}/preBuild.hook)
  4. set(RunCMake_TEST_FAILED "preBuild hook did not run\n")
  5. endif()
  6. macro(hasPostBuildArtifacts)
  7. if (NOT postBuildRan AND EXISTS ${v1}/postBuild.hook)
  8. set(postBuildRan 1)
  9. endif()
  10. if (NOT dataDirClean)
  11. file(GLOB data "${v1}/data/*")
  12. if ("${data}" STREQUAL "")
  13. set(dataDirClean 1)
  14. endif()
  15. endif()
  16. endmacro()
  17. set(postBuildRan 0)
  18. set(dataDirClean 0)
  19. foreach(_ RANGE ${NUM_TRIES})
  20. hasPostBuildArtifacts()
  21. if (postBuildRan AND dataDirClean)
  22. break()
  23. endif()
  24. execute_process(COMMAND ${CMAKE_COMMAND} -E sleep ${DELAY})
  25. endforeach()
  26. if (NOT postBuildRan)
  27. string(APPEND RunCMake_TEST_FAILED "postBuild hook did not run\n")
  28. endif()
  29. if (NOT dataDirClean)
  30. string(APPEND RunCMake_TEST_FAILED "Snippet files not fully removed post build\n")
  31. endif()
  32. file(READ ${v1}/postBuild.hook postBuildErrors)
  33. if (NOT postBuildErrors MATCHES "^$")
  34. string(APPEND RunCMake_TEST_FAILED "Errors found in data during postBuild hook:\n${postBuildErrors}\n")
  35. endif()
  36. file(READ ${v1}/preBuild.hook preBuildErrors)
  37. if (NOT preBuildErrors MATCHES "^$")
  38. string(APPEND RunCMake_TEST_FAILED "Errors found in data during preBuild hook:\n${preBuildErrors}\n")
  39. endif()