CustomFilePermissionsVerify.cmake 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. if(NOT EXISTS "${generatedFile}")
  2. message(SEND_ERROR "Missing file:\n ${generatedFile}")
  3. endif()
  4. if (UNIX AND NOT MSYS)
  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 "${generatedFile}"
  11. OUTPUT_VARIABLE output
  12. OUTPUT_STRIP_TRAILING_WHITESPACE
  13. COMMAND_ERROR_IS_FATAL ANY
  14. )
  15. elseif (CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin")
  16. execute_process(COMMAND "${STAT_EXECUTABLE}" -f %A "${generatedFile}"
  17. OUTPUT_VARIABLE output
  18. OUTPUT_STRIP_TRAILING_WHITESPACE
  19. COMMAND_ERROR_IS_FATAL ANY
  20. )
  21. else()
  22. execute_process(COMMAND "${STAT_EXECUTABLE}" -c %a "${generatedFile}"
  23. OUTPUT_VARIABLE output
  24. OUTPUT_STRIP_TRAILING_WHITESPACE
  25. COMMAND_ERROR_IS_FATAL ANY
  26. )
  27. endif()
  28. if (NOT output EQUAL "711")
  29. message(SEND_ERROR "file generate has different permissions source "
  30. "permissions: \"${output}\" desired permissions: \"711\"")
  31. endif()
  32. endif()