summaryrefslogtreecommitdiff
path: root/cmake/utils/GetGitHash.cmake
blob: 8a9be41d44873878755db3404cf55e7be94bb52e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function(get_git_hash WORKING_DIR VERSION_MAJ VERSION_MIN VERSION_PAT OUTPUT_VAR)
  execute_process(
    COMMAND git describe --always --dirty
    WORKING_DIRECTORY ${WORKING_DIR}
    OUTPUT_VARIABLE _hash
    OUTPUT_STRIP_TRAILING_WHITESPACE
    ERROR_QUIET
  )

  if(NOT _hash)
    message(WARNING "Could not determine git hash")
    set(_hash "${VERSION_MAJ}.${VERSION_MIN}.${VERSION_PAT}-custom")
  endif()

  set(${OUTPUT_VAR} "${_hash}" PARENT_SCOPE)
endfunction()