# - 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 # # get_git_version() # # - Example # # include(GetGitVersion) # get_git_version(GIT_VERSION) # # Requires CMake 2.8.11+ find_package(Git) if(__get_git_version) return() endif() set(__get_git_version INCLUDED) function(get_git_version var) if(GIT_EXECUTABLE) execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --match "v[0-9]*.[0-9]*.[0-9]*" --abbrev=8 --dirty WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} RESULT_VARIABLE status OUTPUT_VARIABLE GIT_VERSION ERROR_QUIET) if(status) set(GIT_VERSION "v0.0.0") endif() else() set(GIT_VERSION "v0.0.0") endif() set(${var} ${GIT_VERSION} PARENT_SCOPE) endfunction()