CMake check for git on the system

This commit is contained in:
Tobias Ulvgard 2015-10-02 17:05:58 +02:00 committed by Anton Danielsson
parent 414941295e
commit 775ef51d04

View File

@ -10,7 +10,8 @@
# include(GetGitVersion)
# get_git_version(GIT_VERSION)
#
# Requires CMake 2.6+
# Requires CMake 2.8.11+
find_package(Git)
if(__get_git_version)
return()
@ -18,17 +19,22 @@ endif()
set(__get_git_version INCLUDED)
function(get_git_version var)
execute_process(COMMAND git describe --match "v[0-9]*.[0-9]*.[0-9]*" --abbrev=8
RESULT_VARIABLE status
OUTPUT_VARIABLE GIT_VERSION
ERROR_QUIET)
if(${status})
set(GIT_VERSION "v0.0.0")
if(GIT_EXECUTABLE)
execute_process(COMMAND git describe --match "v[0-9]*.[0-9]*.[0-9]*" --abbrev=8
RESULT_VARIABLE status
OUTPUT_VARIABLE GIT_VERSION
ERROR_QUIET)
if(${status})
set(GIT_VERSION "v0.0.0")
else()
string(STRIP ${GIT_VERSION} GIT_VERSION)
string(REGEX REPLACE "-[0-9]+-g" "-" GIT_VERSION ${GIT_VERSION})
endif()
else()
string(STRIP ${GIT_VERSION} GIT_VERSION)
string(REGEX REPLACE "-[0-9]+-g" "-" GIT_VERSION ${GIT_VERSION})
set(GIT_VERSION "v0.0.0")
endif()
# Work out if the repository is dirty
execute_process(COMMAND git update-index -q --refresh
OUTPUT_QUIET