15dda2efdSMircea Trofin# - Returns a version string from Git tags 25dda2efdSMircea Trofin# 35dda2efdSMircea Trofin# This function inspects the annotated git tags for the project and returns a string 45dda2efdSMircea Trofin# into a CMake variable 55dda2efdSMircea Trofin# 65dda2efdSMircea Trofin# get_git_version(<var>) 75dda2efdSMircea Trofin# 85dda2efdSMircea Trofin# - Example 95dda2efdSMircea Trofin# 105dda2efdSMircea Trofin# include(GetGitVersion) 115dda2efdSMircea Trofin# get_git_version(GIT_VERSION) 125dda2efdSMircea Trofin# 135dda2efdSMircea Trofin# Requires CMake 2.8.11+ 145dda2efdSMircea Trofinfind_package(Git) 155dda2efdSMircea Trofin 165dda2efdSMircea Trofinif(__get_git_version) 175dda2efdSMircea Trofin return() 185dda2efdSMircea Trofinendif() 195dda2efdSMircea Trofinset(__get_git_version INCLUDED) 205dda2efdSMircea Trofin 215dda2efdSMircea Trofinfunction(get_git_version var) 225dda2efdSMircea Trofin if(GIT_EXECUTABLE) 23*a5b79717SMircea Trofin execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --match "v[0-9]*.[0-9]*.[0-9]*" --abbrev=8 --dirty 245dda2efdSMircea Trofin WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} 255dda2efdSMircea Trofin RESULT_VARIABLE status 26*a5b79717SMircea Trofin OUTPUT_VARIABLE GIT_VERSION 275dda2efdSMircea Trofin ERROR_QUIET) 285dda2efdSMircea Trofin if(status) 29*a5b79717SMircea Trofin set(GIT_VERSION "v0.0.0") 305dda2efdSMircea Trofin endif() 315dda2efdSMircea Trofin else() 32*a5b79717SMircea Trofin set(GIT_VERSION "v0.0.0") 335dda2efdSMircea Trofin endif() 345dda2efdSMircea Trofin 355dda2efdSMircea Trofin set(${var} ${GIT_VERSION} PARENT_SCOPE) 365dda2efdSMircea Trofinendfunction() 37