| |
| |
| |
| |
| |
| |
| |
|
|
| |
| |
| |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| |
| function(GitInfo source) |
|
|
| |
| if(NOT EXISTS ${source}) |
| message(FATAL_ERROR "'${source}' is not a valid path") |
| endif() |
|
|
| |
| set(GIT_DIR "${source}/.git") |
|
|
| |
| if(EXISTS ${GIT_DIR}) |
|
|
| |
| set(GIT_DIR "${GIT_DIR}" CACHE PATH "Project .git directory") |
|
|
| |
| if(NOT GIT_FOUND) |
| find_package(Git QUIET) |
| endif() |
| if(NOT GIT_FOUND) |
| message(AUTHOR_WARNING "Git not found, cannot get git information") |
| return() |
| endif() |
|
|
| |
| execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD |
| WORKING_DIRECTORY ${source} |
| OUTPUT_VARIABLE GIT_HEAD_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE) |
| set(GIT_HEAD_BRANCH "${GIT_HEAD_BRANCH}" CACHE INTERNAL "name of the branch associated to HEAD") |
|
|
| |
| execute_process(COMMAND ${GIT_EXECUTABLE} show -s "--format=%H" HEAD |
| WORKING_DIRECTORY ${source} |
| OUTPUT_VARIABLE GIT_REVISION_HASH OUTPUT_STRIP_TRAILING_WHITESPACE) |
| set(GIT_REVISION_HASH "${GIT_REVISION_HASH}" CACHE INTERNAL "git revision full hash") |
|
|
| |
| execute_process(COMMAND ${GIT_EXECUTABLE} show -s "--format=%h" HEAD |
| WORKING_DIRECTORY ${source} |
| OUTPUT_VARIABLE GIT_REVISION OUTPUT_STRIP_TRAILING_WHITESPACE) |
| set(GIT_REVISION "${GIT_REVISION}" CACHE INTERNAL "short version of git revision") |
|
|
| |
| execute_process(COMMAND ${GIT_EXECUTABLE} show -s "--format=%s" HEAD |
| WORKING_DIRECTORY ${source} |
| OUTPUT_VARIABLE GIT_REVISION_NAME OUTPUT_STRIP_TRAILING_WHITESPACE) |
| set(GIT_REVISION_NAME "${GIT_REVISION_NAME}" CACHE INTERNAL "short version of git revision name") |
|
|
| |
| execute_process(COMMAND ${GIT_EXECUTABLE} config --get remote.origin.url |
| WORKING_DIRECTORY ${source} |
| OUTPUT_VARIABLE GIT_REMOTE_ORIGIN_URL OUTPUT_STRIP_TRAILING_WHITESPACE) |
| set(GIT_REMOTE_ORIGIN_URL "${GIT_REMOTE_ORIGIN_URL}" CACHE INTERNAL "git origin remote url") |
|
|
| |
| execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=0 HEAD |
| WORKING_DIRECTORY ${source} |
| OUTPUT_VARIABLE GIT_LATEST_TAG_LONG OUTPUT_STRIP_TRAILING_WHITESPACE) |
| set(GIT_LATEST_TAG_LONG "${GIT_LATEST_TAG_LONG}" CACHE INTERNAL "git most recent tag of the current branch") |
|
|
| |
| execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags HEAD |
| WORKING_DIRECTORY ${source} |
| OUTPUT_VARIABLE GIT_LATEST_TAG OUTPUT_STRIP_TRAILING_WHITESPACE) |
| set(GIT_LATEST_TAG "${GIT_LATEST_TAG}" CACHE INTERNAL "git most recent tagname of the current branch") |
|
|
| endif() |
|
|
| endfunction() |
|
|
|
|
| |
| function(GitInfoReport) |
| message(STATUS "") |
| message(STATUS "----------------------------------------------------") |
| message(STATUS " GitInfo.cmake") |
| message(STATUS "") |
| message(STATUS "GIT_DIR : ${GIT_DIR}") |
| message(STATUS "") |
| message(STATUS "GIT_HEAD_BRANCH : ${GIT_HEAD_BRANCH}") |
| message(STATUS "GIT_REVISION : ${GIT_REVISION}") |
| message(STATUS "GIT_REVISION_HASH : ${GIT_REVISION_HASH}") |
| message(STATUS "GIT_REVISION_NAME : ${GIT_REVISION_NAME}") |
| message(STATUS "") |
| message(STATUS "GIT_REMOTE_ORIGIN_URL : ${GIT_REMOTE_ORIGIN_URL}") |
| message(STATUS "GIT_LATEST_TAG_LONG : ${GIT_LATEST_TAG_LONG}") |
| message(STATUS "GIT_LATEST_TAG : ${GIT_LATEST_TAG}") |
| message(STATUS "") |
| message(STATUS "----------------------------------------------------") |
| message(STATUS "") |
| endfunction() |
|
|