Du kannst nicht mehr als 25 Themen auswählen
Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
|
- Function ( GitGetVersion GIT_ROOT OUT_MAJOR OUT_MINOR OUT_PATCH OUT_BUILD OUT_HASH )
-
- If ( NOT EXISTS "${GIT_ROOT}/.git" )
- Return ( )
- EndIf ( )
-
- Message ( "" )
-
- # Execute process to get git revisions
- Execute_Process ( COMMAND
- bash -c "git -C ${GIT_ROOT} show-ref --tags | egrep 'refs\/tags\/v?[0-9]+\.[0-9]+(\.[0-9]+(\.[0-9]+))' | head -1"
- RESULT_VARIABLE
- GIT_RET
- OUTPUT_VARIABLE
- GIT_REV
- ERROR_VARIABLE
- GIT_ERR )
- If ( NOT ${GIT_RET} EQUAL 0 )
- Message ( FATAL_ERROR "Unable to get git revisions! ${GIT_RET}" )
- EndIf ( )
- If ( "${GIT_REV}" STREQUAL "" )
- Return ()
- EndIf ()
-
- # Split the git revision string
- String ( REPLACE " " ";" SPLIT ${GIT_REV} )
- List ( LENGTH SPLIT COUNT )
- If ( NOT ${COUNT} EQUAL 2 )
- Return ( )
- EndIf ( )
- List ( GET SPLIT 0 HASH )
- List ( GET SPLIT 1 VERSION )
-
- # Split the version
- String ( STRIP "${VERSION}" SPLIT )
- String ( REGEX REPLACE "refs?\/tags?\/v?" "" SPLIT ${SPLIT} )
- String ( REPLACE "." ";" SPLIT ${SPLIT} )
- List ( LENGTH SPLIT COUNT )
- If ( ${COUNT} LESS 2 )
- Message ( FATAL_ERROR "Unable to parse version string!" )
- EndIf ( )
-
- # major
- List ( GET SPLIT 0 TMP )
- Set ( ${OUT_MAJOR} ${TMP} PARENT_SCOPE )
-
- # minor
- List ( GET SPLIT 1 TMP )
- Set ( ${OUT_MINOR} ${TMP} PARENT_SCOPE )
-
- # patch
- If ( ${COUNT} GREATER 2 )
- List ( GET SPLIT 2 TMP )
- Set ( ${OUT_PATCH} ${TMP} PARENT_SCOPE )
- EndIf ( )
-
- # build
- If ( ${COUNT} GREATER 3 )
- List ( GET SPLIT 3 TMP )
- Set ( ${OUT_BUILD} ${TMP} PARENT_SCOPE )
- EndIf ( )
-
- # hash
- Set ( ${OUT_HASH} ${HASH} PARENT_SCOPE )
-
- EndFunction ( )
|