TodayTimeStamp.cmake 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # This script returns the current date in ISO format
  2. #
  3. # YYYY-MM-DD +%Y-%m-%d
  4. #
  5. MACRO (TODAY RESULT)
  6. if (DEFINED ENV{SOURCE_DATE_EPOCH} AND NOT WIN32)
  7. EXECUTE_PROCESS(COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}" "+%Y-%m-%d"
  8. OUTPUT_VARIABLE ${RESULT} OUTPUT_STRIP_TRAILING_WHITESPACE)
  9. elseif(CMAKE_VERSION VERSION_LESS "2.8.11")
  10. if (WIN32)
  11. message(FATAL_ERROR "Your CMake version is too old. Please update to a more recent version >= 2.8.11")
  12. else()
  13. EXECUTE_PROCESS(COMMAND "date" "-u" "+%Y-%m-%d"
  14. OUTPUT_VARIABLE ${RESULT} OUTPUT_STRIP_TRAILING_WHITESPACE)
  15. endif()
  16. else()
  17. STRING(TIMESTAMP ${RESULT} "%Y-%m-%d" UTC)
  18. endif()
  19. ENDMACRO (TODAY)
  20. MACRO (THIS_MONTH RESULT)
  21. if (DEFINED ENV{SOURCE_DATE_EPOCH} AND NOT WIN32)
  22. EXECUTE_PROCESS(COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}" "+%Y%m"
  23. OUTPUT_VARIABLE ${RESULT} OUTPUT_STRIP_TRAILING_WHITESPACE)
  24. elseif(CMAKE_VERSION VERSION_LESS "2.8.11")
  25. if (WIN32)
  26. message(FATAL_ERROR "Your CMake version is too old. Please update to a more recent version >= 2.8.11")
  27. else()
  28. EXECUTE_PROCESS(COMMAND "date" "-u" "+%Y%m"
  29. OUTPUT_VARIABLE ${RESULT} OUTPUT_STRIP_TRAILING_WHITESPACE)
  30. endif()
  31. else()
  32. STRING(TIMESTAMP ${RESULT} "%Y%m" UTC)
  33. endif()
  34. ENDMACRO (THIS_MONTH)
  35. MACRO (get_today _year _month _day)
  36. if (DEFINED ENV{SOURCE_DATE_EPOCH} AND NOT WIN32)
  37. EXECUTE_PROCESS(COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}" "+%Y"
  38. OUTPUT_VARIABLE ${_year} OUTPUT_STRIP_TRAILING_WHITESPACE)
  39. EXECUTE_PROCESS(COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}" "+%m"
  40. OUTPUT_VARIABLE ${_month} OUTPUT_STRIP_TRAILING_WHITESPACE)
  41. EXECUTE_PROCESS(COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}" "+%d"
  42. OUTPUT_VARIABLE ${_day} OUTPUT_STRIP_TRAILING_WHITESPACE)
  43. else()
  44. STRING(TIMESTAMP ${_year} "%Y")
  45. STRING(TIMESTAMP ${_month} "%m")
  46. STRING(TIMESTAMP ${_day} "%d")
  47. endif()
  48. ENDMACRO (get_today)