find_package(Git REQUIRED) macro(get_git_commit_hash output) # full commit hash execute_process( COMMAND ${GIT_EXECUTABLE} log -1 --format="%H" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE ${output} OUTPUT_STRIP_TRAILING_WHITESPACE) endmacro() macro(get_git_commit_date output) # 2024-06-02T20:17:41+00:00 execute_process( COMMAND ${GIT_EXECUTABLE} log -1 --format="%cI" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE ${output} OUTPUT_STRIP_TRAILING_WHITESPACE) endmacro() macro(get_git_commit_subject output) # message from `git commit -m "message"` execute_process( COMMAND ${GIT_EXECUTABLE} log -1 --format="%s" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE GIT_COMMIT_SUBJECT OUTPUT_STRIP_TRAILING_WHITESPACE) endmacro()