1*dbb99499SAndroid Build Coastguard Worker# - Returns a version string from Git tags 2*dbb99499SAndroid Build Coastguard Worker# 3*dbb99499SAndroid Build Coastguard Worker# This function inspects the annotated git tags for the project and returns a string 4*dbb99499SAndroid Build Coastguard Worker# into a CMake variable 5*dbb99499SAndroid Build Coastguard Worker# 6*dbb99499SAndroid Build Coastguard Worker# get_git_version(<var>) 7*dbb99499SAndroid Build Coastguard Worker# 8*dbb99499SAndroid Build Coastguard Worker# - Example 9*dbb99499SAndroid Build Coastguard Worker# 10*dbb99499SAndroid Build Coastguard Worker# include(GetGitVersion) 11*dbb99499SAndroid Build Coastguard Worker# get_git_version(GIT_VERSION) 12*dbb99499SAndroid Build Coastguard Worker# 13*dbb99499SAndroid Build Coastguard Worker# Requires CMake 2.8.11+ 14*dbb99499SAndroid Build Coastguard Workerfind_package(Git) 15*dbb99499SAndroid Build Coastguard Worker 16*dbb99499SAndroid Build Coastguard Workerif(__get_git_version) 17*dbb99499SAndroid Build Coastguard Worker return() 18*dbb99499SAndroid Build Coastguard Workerendif() 19*dbb99499SAndroid Build Coastguard Workerset(__get_git_version INCLUDED) 20*dbb99499SAndroid Build Coastguard Worker 21*dbb99499SAndroid Build Coastguard Workerfunction(get_git_version var) 22*dbb99499SAndroid Build Coastguard Worker if(GIT_EXECUTABLE) 23*dbb99499SAndroid Build Coastguard Worker execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --match "v[0-9]*.[0-9]*.[0-9]*" --abbrev=8 --dirty 24*dbb99499SAndroid Build Coastguard Worker WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} 25*dbb99499SAndroid Build Coastguard Worker RESULT_VARIABLE status 26*dbb99499SAndroid Build Coastguard Worker OUTPUT_VARIABLE GIT_VERSION 27*dbb99499SAndroid Build Coastguard Worker ERROR_QUIET) 28*dbb99499SAndroid Build Coastguard Worker if(status) 29*dbb99499SAndroid Build Coastguard Worker set(GIT_VERSION "v0.0.0") 30*dbb99499SAndroid Build Coastguard Worker endif() 31*dbb99499SAndroid Build Coastguard Worker else() 32*dbb99499SAndroid Build Coastguard Worker set(GIT_VERSION "v0.0.0") 33*dbb99499SAndroid Build Coastguard Worker endif() 34*dbb99499SAndroid Build Coastguard Worker 35*dbb99499SAndroid Build Coastguard Worker set(${var} ${GIT_VERSION} PARENT_SCOPE) 36*dbb99499SAndroid Build Coastguard Workerendfunction() 37