Changeset View
Changeset View
Standalone View
Standalone View
third-party/benchmark/cmake/GetGitVersion.cmake
Show All 14 Lines | |||||
if(__get_git_version) | if(__get_git_version) | ||||
return() | return() | ||||
endif() | endif() | ||||
set(__get_git_version INCLUDED) | set(__get_git_version INCLUDED) | ||||
function(get_git_version var) | function(get_git_version var) | ||||
if(GIT_EXECUTABLE) | if(GIT_EXECUTABLE) | ||||
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --match "v[0-9]*.[0-9]*.[0-9]*" --abbrev=8 | execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --match "llvmorg-[0-9]*.[0-9]*.[0-9]*" --abbrev=8 | ||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} | WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} | ||||
RESULT_VARIABLE status | RESULT_VARIABLE status | ||||
OUTPUT_VARIABLE GIT_DESCRIBE_VERSION | OUTPUT_VARIABLE GIT_DESCRIBE_VERSION | ||||
ERROR_QUIET) | ERROR_QUIET) | ||||
if(status) | if(status) | ||||
set(GIT_DESCRIBE_VERSION "v0.0.0") | set(GIT_DESCRIBE_VERSION "v0.0.0") | ||||
endif() | endif() | ||||
string(STRIP ${GIT_DESCRIBE_VERSION} GIT_DESCRIBE_VERSION) | string(STRIP ${GIT_DESCRIBE_VERSION} GIT_DESCRIBE_VERSION) | ||||
if(GIT_DESCRIBE_VERSION MATCHES v[^-]*-) | string(REGEX REPLACE "llvmorg-(.*)" "v\\1" GIT_VERSION ${GIT_DESCRIBE_VERSION}) | ||||
string(REGEX REPLACE "v([^-]*)-([0-9]+)-.*" "\\1.\\2" GIT_VERSION ${GIT_DESCRIBE_VERSION}) | |||||
else() | |||||
string(REGEX REPLACE "v(.*)" "\\1" GIT_VERSION ${GIT_DESCRIBE_VERSION}) | |||||
endif() | |||||
# Work out if the repository is dirty | # Work out if the repository is dirty | ||||
execute_process(COMMAND ${GIT_EXECUTABLE} update-index -q --refresh | execute_process(COMMAND ${GIT_EXECUTABLE} update-index -q --refresh | ||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} | WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} | ||||
OUTPUT_QUIET | OUTPUT_QUIET | ||||
ERROR_QUIET) | ERROR_QUIET) | ||||
execute_process(COMMAND ${GIT_EXECUTABLE} diff-index --name-only HEAD -- | execute_process(COMMAND ${GIT_EXECUTABLE} diff-index --name-only HEAD -- | ||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} | WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} | ||||
OUTPUT_VARIABLE GIT_DIFF_INDEX | OUTPUT_VARIABLE GIT_DIFF_INDEX | ||||
ERROR_QUIET) | ERROR_QUIET) | ||||
string(COMPARE NOTEQUAL "${GIT_DIFF_INDEX}" "" GIT_DIRTY) | string(COMPARE NOTEQUAL "${GIT_DIFF_INDEX}" "" GIT_DIRTY) | ||||
if (${GIT_DIRTY}) | if (${GIT_DIRTY}) | ||||
set(GIT_DESCRIBE_VERSION "${GIT_DESCRIBE_VERSION}-dirty") | set(GIT_DESCRIBE_VERSION "${GIT_DESCRIBE_VERSION}-dirty") | ||||
endif() | endif() | ||||
message(STATUS "git version: ${GIT_DESCRIBE_VERSION} normalized to ${GIT_VERSION}") | message(STATUS "Git version: ${GIT_DESCRIBE_VERSION} normalized to ${GIT_VERSION}") | ||||
else() | else() | ||||
set(GIT_VERSION "0.0.0") | set(GIT_VERSION "0.0.0") | ||||
endif() | endif() | ||||
set(${var} ${GIT_VERSION} PARENT_SCOPE) | set(${var} ${GIT_VERSION} PARENT_SCOPE) | ||||
endfunction() | endfunction() |