Pārlūkot izejas kodu

* Improved FindLocalModele and Git Helper

master
bergmann pirms 6 gadiem
vecāks
revīzija
a50f6505f4
2 mainītis faili ar 78 papildinājumiem un 9 dzēšanām
  1. +12
    -9
      find_local_module.cmake
  2. +66
    -0
      git_helper.cmake

+ 12
- 9
find_local_module.cmake Parādīt failu

@@ -1,10 +1,13 @@
Function ( FindLocalModule MODULE_NAME MODULE_PATH )

Get_Property ( IS_INCLUDED GLOBAL PROPERTY __find_local_module_${MODULE_NAME} )
If ( NOT IS_INCLUDED )
Add_Subdirectory ( ${MODULE_PATH}/
${CMAKE_BINARY_DIR}/subprojects/${MODULE_NAME}/ )
Set_Property ( GLOBAL PROPERTY __find_local_module_${MODULE_NAME} TRUE )
Include ( FindPackageHandleStandardArgs )
Macro ( FindLocalModule MODULE_NAME MODULE_PATH )
If ( EXISTS ${MODULE_PATH} )
Get_Property ( IS_INCLUDED GLOBAL PROPERTY __find_local_module_${MODULE_NAME} )
If ( NOT IS_INCLUDED )
Add_Subdirectory ( ${MODULE_PATH}/
${CMAKE_BINARY_DIR}/subprojects/${MODULE_NAME}/ )
Set_Property ( GLOBAL PROPERTY __find_local_module_${MODULE_NAME} TRUE )
EndIf ( )
Find_Package_Handle_Standard_Args ( ${MODULE_NAME}
DEFAULT_MSG )
EndIf ( )

EndFunction ( )
EndMacro ( )

+ 66
- 0
git_helper.cmake Parādīt failu

@@ -0,0 +1,66 @@
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 ( )

Notiek ielāde…
Atcelt
Saglabāt