Use CMake TIMESTAMP, remove newline from TODAY
# YYYY-MM-DD
#
MACRO (TODAY RESULT)
- IF (WIN32)
- EXECUTE_PROCESS(COMMAND "cmd" " /C date +%Y-%m-%d" OUTPUT_VARIABLE ${RESULT})
- string(REGEX REPLACE "(..)/(..)/..(..).*" "\\1/\\2/\\3" ${RESULT} ${${RESULT}})
- ELSEIF(UNIX)
- if (DEFINED ENV{SOURCE_DATE_EPOCH})
- EXECUTE_PROCESS(COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}" "+%Y-%m-%d" OUTPUT_VARIABLE ${RESULT})
+ if (DEFINED ENV{SOURCE_DATE_EPOCH} AND NOT WIN32)
+ EXECUTE_PROCESS(COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}" "+%Y-%m-%d"
+ OUTPUT_VARIABLE ${RESULT} OUTPUT_STRIP_TRAILING_WHITESPACE)
else()
- EXECUTE_PROCESS(COMMAND "date" "+%Y-%m-%d" OUTPUT_VARIABLE ${RESULT})
+ STRING(TIMESTAMP ${RESULT} "%Y-%m-%d" UTC)
endif()
- string(REGEX REPLACE "(..)/(..)/..(..).*" "\\1/\\2/\\3" ${RESULT} ${${RESULT}})
- ELSE (WIN32)
- MESSAGE(SEND_ERROR "date not implemented")
- SET(${RESULT} 000000)
- ENDIF (WIN32)
ENDMACRO (TODAY)
