Du kan inte välja fler än 25 ämnen
Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
|
- # Execute git command and return the output
- Function ( GitExecute COMMAND FORCE OUT_RESULT OUT_SUCCESS )
- Set ( ${OUT_SUCCESS} 1 PARENT_SCOPE )
- Execute_Process ( COMMAND
- bash -c "${COMMAND}"
- RESULT_VARIABLE
- GIT_RET
- OUTPUT_VARIABLE
- GIT_REV
- ERROR_VARIABLE
- GIT_ERR )
- If ( NOT ${GIT_RET} EQUAL 0
- OR NOT "${GIT_ERR}" STREQUAL "" )
- If ( FORCE )
- Message ( FATAL_ERROR "Unable to execute git command (command=${COMMAND} out=${GIT_REV}; err=${GIT_ERR}; ret=${GIT_RET})" )
- Else ( )
- Set ( ${OUT_SUCCESS} 0 PARENT_SCOPE )
- EndIf ( )
- EndIf ( )
- Set ( ${OUT_RESULT} "${GIT_REV}" PARENT_SCOPE )
- EndFunction ( )
-
- # Get the version by reading the git tag
- Function ( GitGetVersion GIT_ROOT OUT_MAJOR OUT_MINOR OUT_PATCH OUT_BUILD OUT_HASH OUT_BEHIND OUT_DIRTY )
-
- If ( NOT EXISTS "${GIT_ROOT}/.git" )
- Return ( )
- EndIf ( )
-
- # Find the latest git tag
- GitExecute ( "git describe --tags --abbrev=1 --match v[0-9].[0-9]* HEAD" False TAG SUCCESS )
- If ( NOT ${SUCCESS} )
- Return ( )
- EndIf ( )
-
- GitExecute ( "git status -s -uall" True DIRTY SUCCESS )
- If ( NOT ${SUCCESS} )
- Return ( )
- EndIf ( )
-
- GitExecute ( "git rev-parse HEAD" True HASH SUCCESS )
- If ( NOT ${SUCCESS} )
- Return ( )
- EndIf ( )
-
- # Split the git revision string
- String ( REGEX REPLACE "^v" "" TAG "${TAG}" )
- String ( REPLACE "-" ";" SPLIT "${TAG}" )
- List ( LENGTH SPLIT COUNT )
- If ( ${COUNT} LESS 2 )
- Message ( FATAL_ERROR "Unable to split git tag into it's sub components: ${TAG}!" )
- EndIf ( )
- List ( GET SPLIT 0 VERSION )
- List ( GET SPLIT 1 BEHIND )
-
- # Split the version
- String ( STRIP "${VERSION}" SPLIT )
- String ( REPLACE "." ";" SPLIT "${SPLIT}" )
- List ( LENGTH SPLIT COUNT )
- If ( ${COUNT} LESS 2 )
- Message ( FATAL_ERROR "Unable to split version string: ${VERSION}!" )
- 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
- String ( STRIP "${HASH}" HASH )
- Set ( ${OUT_HASH} ${HASH} PARENT_SCOPE )
-
- # behind
- Set ( ${OUT_BEHIND} ${BEHIND} PARENT_SCOPE )
-
- # dirty
- If ( DIRTY )
- Set ( ${OUT_DIRTY} 1 PARENT_SCOPE )
- Else ( )
- Set ( ${OUT_DIRTY} 0 PARENT_SCOPE )
- EndIf ( )
-
- EndFunction ( )
|