Permalink
Cannot retrieve contributors at this time
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
74 lines (63 sloc)
2.08 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# (c) https://github.com/dev-cafe/autocmake/blob/master/AUTHORS.md | |
# licensed under BSD-3: https://github.com/dev-cafe/autocmake/blob/master/LICENSE | |
#.rst: | |
# | |
# Creates git_info.h in the build directory. | |
# This file can be included in sources to print | |
# Git repository version and status information | |
# to the program output. | |
# | |
# autocmake.yml configuration:: | |
# | |
# url_root: https://github.com/dev-cafe/autocmake/raw/master/ | |
# fetch: | |
# - "%(url_root)modules/git_info/git_info.h.in" | |
get_filename_component(_current_dir ${CMAKE_CURRENT_LIST_FILE} PATH) | |
function(generate_git_info_header _header_location _header_name) | |
# _header_location: where the Git info header file should be generated | |
# _header_name: the Git info header name, complete with extension (.h, .hpp, .hxx or whatever) | |
find_package(Git) | |
set(_git_last_commit_hash "unknown") | |
set(_git_last_commit_author "unknown") | |
set(_git_last_commit_date "unknown") | |
set(_git_branch "unknown") | |
if(GIT_FOUND) | |
execute_process( | |
COMMAND ${GIT_EXECUTABLE} --no-pager show -s --pretty=format:%h -n 1 | |
OUTPUT_VARIABLE _git_last_commit_hash | |
OUTPUT_STRIP_TRAILING_WHITESPACE | |
ERROR_QUIET | |
) | |
execute_process( | |
COMMAND ${GIT_EXECUTABLE} --no-pager show -s --pretty=format:%aN -n 1 | |
OUTPUT_VARIABLE _git_last_commit_author | |
OUTPUT_STRIP_TRAILING_WHITESPACE | |
ERROR_QUIET | |
) | |
execute_process( | |
COMMAND ${GIT_EXECUTABLE} --no-pager show -s --pretty=format:%ad -n 1 | |
OUTPUT_VARIABLE _git_last_commit_date | |
OUTPUT_STRIP_TRAILING_WHITESPACE | |
ERROR_QUIET | |
) | |
execute_process( | |
COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD | |
OUTPUT_VARIABLE _git_branch | |
OUTPUT_STRIP_TRAILING_WHITESPACE | |
ERROR_QUIET | |
) | |
endif() | |
configure_file( | |
${_current_dir}/git_info.h.in | |
${_header_location}/${_header_name} | |
@ONLY | |
) | |
unset(_git_last_commit_hash) | |
unset(_git_last_commit_author) | |
unset(_git_last_commit_date) | |
unset(_git_branch) | |
add_custom_target( | |
git_info | |
ALL DEPENDS ${_header_location}/${_header_name} | |
) | |
endfunction() |