UseSourcePermissionsVerify.cmake 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. if(NOT EXISTS "${generatedFile}")
  2. message(SEND_ERROR "Missing generated file:\n ${generatedFile}")
  3. endif()
  4. if (CMAKE_HOST_UNIX)
  5. find_program(STAT_EXECUTABLE NAMES stat)
  6. if(NOT STAT_EXECUTABLE)
  7. return()
  8. endif()
  9. if (CMAKE_HOST_SYSTEM_NAME MATCHES "FreeBSD")
  10. execute_process(COMMAND "${STAT_EXECUTABLE}" -f %Lp "${sourceFile}"
  11. OUTPUT_VARIABLE output1
  12. OUTPUT_STRIP_TRAILING_WHITESPACE
  13. COMMAND_ERROR_IS_FATAL ANY
  14. )
  15. execute_process(COMMAND "${STAT_EXECUTABLE}" -f %Lp "${generatedFile}"
  16. OUTPUT_VARIABLE output2
  17. OUTPUT_STRIP_TRAILING_WHITESPACE
  18. COMMAND_ERROR_IS_FATAL ANY
  19. )
  20. elseif (CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin")
  21. execute_process(COMMAND "${STAT_EXECUTABLE}" -f %A "${sourceFile}"
  22. OUTPUT_VARIABLE output1
  23. OUTPUT_STRIP_TRAILING_WHITESPACE
  24. COMMAND_ERROR_IS_FATAL ANY
  25. )
  26. execute_process(COMMAND "${STAT_EXECUTABLE}" -f %A "${generatedFile}"
  27. OUTPUT_VARIABLE output2
  28. OUTPUT_STRIP_TRAILING_WHITESPACE
  29. COMMAND_ERROR_IS_FATAL ANY
  30. )
  31. else()
  32. execute_process(COMMAND "${STAT_EXECUTABLE}" -c %a "${sourceFile}"
  33. OUTPUT_VARIABLE output1
  34. OUTPUT_STRIP_TRAILING_WHITESPACE
  35. COMMAND_ERROR_IS_FATAL ANY
  36. )
  37. execute_process(COMMAND "${STAT_EXECUTABLE}" -c %a "${generatedFile}"
  38. OUTPUT_VARIABLE output2
  39. OUTPUT_STRIP_TRAILING_WHITESPACE
  40. COMMAND_ERROR_IS_FATAL ANY
  41. )
  42. endif()
  43. if (NOT output1 EQUAL output2)
  44. message(SEND_ERROR "generated file has a different permissions source "
  45. "permissions: \"${output1}\" generated permissions: \"${output2}\"")
  46. endif()
  47. endif()