if(__add_icdump_git) return() endif() set(__add_icdump_git ON) execute_process( COMMAND ${GIT_EXECUTABLE} log -1 --format=%h WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE ICDUMP_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND ${GIT_EXECUTABLE} rev-list --count ${ICDUMP_COMMIT_HASH} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE ICDUMP_COMMIT_COUNT OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND ${GIT_EXECUTABLE} describe --abbrev=0 --tags HEAD --always WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE ICDUMP_GIT_TAG OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND ${GIT_EXECUTABLE} tag --list --points-at=HEAD WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE ICDUMP_GIT_COMMIT_TAGGED OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE ICDUMP_GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE ) string(COMPARE NOTEQUAL "${ICDUMP_GIT_COMMIT_TAGGED}" "" ICDUMP_IS_TAGGED) string(REGEX MATCHALL "([0-9]+)" VERSION_STRING "${ICDUMP_GIT_TAG}") message(STATUS "Tagged: ${ICDUMP_IS_TAGGED}") if (${ICDUMP_IS_TAGGED}) message(STATUS "Tag: ${ICDUMP_GIT_TAG}") else() if(ICDUMP_GIT_BRANCH MATCHES "^release-") string(REGEX MATCHALL "([0-9]+)" VERSION_STRING "${ICDUMP_GIT_BRANCH}") message(STATUS "${VERSION_STRING}") endif() endif() message(STATUS "Current branch: ${ICDUMP_GIT_BRANCH}") if (VERSION_STRING) list(GET VERSION_STRING 0 ICDUMP_VERSION_MAJOR) list(GET VERSION_STRING 1 ICDUMP_VERSION_MINOR) list(GET VERSION_STRING 2 ICDUMP_VERSION_PATCH) if (NOT ${ICDUMP_IS_TAGGED}) if(ICDUMP_GIT_BRANCH MATCHES "^release-") message(STATUS "Release branch") else() MATH(EXPR ICDUMP_VERSION_MINOR "${ICDUMP_VERSION_MINOR}+1") set(ICDUMP_VERSION_PATCH 0) endif() endif() else() set(ICDUMP_VERSION_MAJOR 0) set(ICDUMP_VERSION_MINOR 0) set(ICDUMP_VERSION_PATCH 0) endif()