From 18c4b1aa6d84fcf828f474c100f880569c7b9d04 Mon Sep 17 00:00:00 2001 From: Phillip Stephens Date: Thu, 19 Nov 2015 23:33:09 -0800 Subject: [PATCH] Add git revision --- .gitignore | 3 ++- CMakeLists.txt | 13 +++++++++++++ version.h.in | 7 +++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 version.h.in diff --git a/.gitignore b/.gitignore index 8b95cebeb..dca2e8836 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -*.user \ No newline at end of file +version.h +*.user diff --git a/CMakeLists.txt b/CMakeLists.txt index 427882182..9af16f282 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,3 +44,16 @@ add_subdirectory(DataSpec) if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") add_subdirectory(Runtime) endif() + +find_package(Git) +if(GIT_FOUND) + message("git found: ${GIT_EXECUTABLE}") + # Get the current working branch + execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE ) + + # Get the latest abbreviated commit hash of the working branch + execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%h WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE GIT_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse HEAD WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE GIT_COMMIT_HASH_FULL OUTPUT_STRIP_TRAILING_WHITESPACE) + + configure_file(${CMAKE_SOURCE_DIR}/version.h.in ${CMAKE_SOURCE_DIR}/version.h) +endif() diff --git a/version.h.in b/version.h.in new file mode 100644 index 000000000..79abdedab --- /dev/null +++ b/version.h.in @@ -0,0 +1,7 @@ +#ifndef VERSION_H +#define VERSION_H + +#define GIT_BRANCH "@GIT_BRANCH@" +#define GIT_COMMIT_HASH "@GIT_COMMIT_HASH@" +#define GIT_COMMIT_HASH_FULL "@GIT_COMMIT_HASH_FULL@" +#endif