Skip to content
Snippets Groups Projects
git.cmake 1.17 KiB
Newer Older
# Get the current working commit hash
function(set_git_version)
  find_package(Git)

  if (Git_FOUND)
    execute_process (
      COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
      OUTPUT_VARIABLE ALIB_GIT_COMMIT_HASH
      RESULT_VARIABLE RET_CODE
      OUTPUT_STRIP_TRAILING_WHITESPACE
    )

    if("${RET_CODE}" STREQUAL "0")
      message ( "[Git] Commit hash '${ALIB_GIT_COMMIT_HASH}'" )
      set ( ALIB_GIT_COMMIT_HASH ${ALIB_GIT_COMMIT_HASH} PARENT_SCOPE )
    else()
      message ( "[Git] Commit hash not found ${RET_CODE}" )
    endif()

    # Get the current working branch
    execute_process (
      COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
      OUTPUT_VARIABLE ALIB_GIT_BRANCH
      RESULT_VARIABLE RET_CODE
      OUTPUT_STRIP_TRAILING_WHITESPACE
    )

    if("${RET_CODE}" STREQUAL "0")
      message ( "[Git] Current branch '${ALIB_GIT_BRANCH}'" )
      set ( ALIB_GIT_BRANCH ${ALIB_GIT_BRANCH} PARENT_SCOPE )
    else()
      message ( "[Git] Current branch not found" )
    endif()
  else()
    message ( "[Git] Git not found" )
  endif()
endfunction(set_git_version)