From 9568d5bb737eb468e87fd43f21404e2def101e30 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Mon, 12 Aug 2024 19:58:32 +0200 Subject: Display Git revision in docs generated from releases (#499) - makesrcdist: store Git revision in a file in the tarball - CMake/resources.cmake: get git revision either from Git or file and store it as CMake cache variable 'FLTK_GIT_REVISION' for reference - documentation/*: get git revision from git or file - fluid/documentation/*: get git revision from git or file --- CMake/resources.cmake | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'CMake') diff --git a/CMake/resources.cmake b/CMake/resources.cmake index 45a0ddcae..82d9d296c 100644 --- a/CMake/resources.cmake +++ b/CMake/resources.cmake @@ -40,6 +40,55 @@ macro(fl_find_header VAR HEADER) endif(NOT CMAKE_REQUIRED_QUIET) endmacro(fl_find_header) + +####################################################################### +# find git revision and store it in the CMake cache for reference +####################################################################### + +# (1) Get current Git revision from `git rev-parse ...` +# (2) Read Git revision from file `fltk_git_rev.dat` +# +# (1) This can fail if the FLTK source directory is not a Git checkout, +# i.e. FLTK was downloaded as a distro (tarball). +# (2) If (1) fails the file `fltk_git_rev.dat` is read. This file is +# generated by the process to generate the distribution (makesrcdist). +# + +set(git_rev_file ${FLTK_SOURCE_DIR}/fltk_git_rev.dat) + +set(git_revision "") # temporary variable + +execute_process(COMMAND + git rev-parse HEAD # --short=${git_rev_size} HEAD + OUTPUT_VARIABLE git_revision + OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY ${FLTK_SOURCE_DIR} + ERROR_QUIET +) + +if(git_revision STREQUAL "") + + # Read git revision from a file generated by makesrcdist. + # This file is located in the FLTK source directory + + if(EXISTS ${git_rev_file}) + file(READ ${git_rev_file} git_revision) + string(STRIP "${git_revision}" git_revision) + else() + set(git_revision "unknown") + endif() +endif() + +set(FLTK_GIT_REVISION "${git_revision}" + CACHE STRING + "FLTK Git revision (do not change)" + FORCE) + +# debug and unset temporary variables +# fl_debug_var(git_revision) +unset(git_rev_file) +unset(git_revision) + ####################################################################### # Include FindPkgConfig for later use of pkg-config ####################################################################### -- cgit v1.2.3