123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- # - Returns a version string from Git tags
- #
- # This function inspects the annotated git tags for the project and returns a string
- # into a CMake variable
- # higly adapted from https://raw.githubusercontent.com/google/benchmark/master/cmake/GetGitVersion.cmake
- # lighta
- #
- # get_git_version()
- #
- # - Example
- #
- # include(GetGitVersion)
- # get_git_version(GIT_VERSION)
- # return
- # - GIT_VERSION : remote tracking sha of master
- # - GIT_HEAD_VERSION : current sha of current branch
- #
- # Requires CMake 2.8.11+
- find_package(Git)
- if(__get_git_version)
- return()
- endif()
- set(__get_git_version INCLUDED)
- function(get_git_version)
- if(GIT_EXECUTABLE)
- #determine remote tracking master sha
- execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse origin/master
- RESULT_VARIABLE status
- OUTPUT_VARIABLE GIT_VERSION
- ERROR_QUIET)
- if(${status})
- set(GIT_VERSION "unknow")
- else()
- string(STRIP ${GIT_VERSION} GIT_VERSION)
- endif()
-
- #determine current head sha
- execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --verify HEAD
- RESULT_VARIABLE status
- OUTPUT_VARIABLE GIT_HEAD_VERSION
- ERROR_QUIET)
- if(${status})
- set(GIT_HEAD_VERSION "unknow")
- else()
- string(STRIP ${GIT_HEAD_VERSION} GIT_HEAD_VERSION)
- endif()
- endif()
- message("-- git Version: ${GIT_VERSION}, ${GIT_HEAD_VERSION}")
- set(GIT_VERSION ${GIT_VERSION} PARENT_SCOPE)
- set(GIT_HEAD_VERSION ${GIT_HEAD_VERSION} PARENT_SCOPE)
- endfunction()
|