aboutsummaryrefslogtreecommitdiff
path: root/cmake/GetGitRevisionDescription.cmake
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2014-10-07 05:45:05 +0000
committerJustin M. Keyes <justinkz@gmail.com>2014-10-07 10:23:15 +0000
commita1901941f8de5de54e0da1fe314d92bf705bca38 (patch)
tree8db30c8d48da2b316444d6f52fefb01c04371ce0 /cmake/GetGitRevisionDescription.cmake
parent2c2fee4d1f510791c4c0a7021f11c7be820c7adb (diff)
downloadrneovim-a1901941f8de5de54e0da1fe314d92bf705bca38.tar.gz
rneovim-a1901941f8de5de54e0da1fe314d92bf705bca38.tar.bz2
rneovim-a1901941f8de5de54e0da1fe314d92bf705bca38.zip
version: generate "build number" from commit timestamp
- cmake: git_timestamp() returns last commit time formatted as `YYYYMMddHHmm`. - Always include commit hash in :version and --version output. `nvim --version` sample output: NVIM 0.0.0-alpha+201410070245 (compiled Oct 7 2014 05:30:45) Commit: f747b2b1ff7bfe7eb00cc2be82d7af87c98f1111
Diffstat (limited to 'cmake/GetGitRevisionDescription.cmake')
-rw-r--r--cmake/GetGitRevisionDescription.cmake29
1 files changed, 29 insertions, 0 deletions
diff --git a/cmake/GetGitRevisionDescription.cmake b/cmake/GetGitRevisionDescription.cmake
index d77c89eda9..42775057f1 100644
--- a/cmake/GetGitRevisionDescription.cmake
+++ b/cmake/GetGitRevisionDescription.cmake
@@ -126,6 +126,35 @@ function(git_describe _var)
set(${_var} "${out}" PARENT_SCOPE)
endfunction()
+function(git_timestamp _var)
+ if(NOT GIT_FOUND)
+ find_package(Git QUIET)
+ endif()
+ get_git_head_revision(refspec hash)
+ if(NOT GIT_FOUND)
+ set(${_var} "GIT-NOTFOUND" PARENT_SCOPE)
+ return()
+ endif()
+ if(NOT hash)
+ set(${_var} "HEAD-HASH-NOTFOUND" PARENT_SCOPE)
+ return()
+ endif()
+
+ execute_process(COMMAND "${GIT_EXECUTABLE}" log -1 --format="%ci" ${hash} ${ARGN}
+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+ RESULT_VARIABLE res
+ OUTPUT_VARIABLE out
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(NOT res EQUAL 0)
+ set(out "${out}-${res}-NOTFOUND")
+ endif()
+ string(REGEX REPLACE "[-\" :]" "" out ${out})
+ string(SUBSTRING ${out} 0 12 out)
+
+ set(${_var} ${out} PARENT_SCOPE)
+endfunction()
+
function(git_get_exact_tag _var)
git_describe(out --exact-match ${ARGN})
set(${_var} "${out}" PARENT_SCOPE)