From a1901941f8de5de54e0da1fe314d92bf705bca38 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Tue, 7 Oct 2014 05:45:05 +0000 Subject: 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 --- cmake/GetGitRevisionDescription.cmake | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'cmake/GetGitRevisionDescription.cmake') 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) -- cgit