summaryrefslogtreecommitdiff
path: root/CMake
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2024-08-12 19:58:32 +0200
committerAlbrecht Schlosser <albrechts.fltk@online.de>2024-08-26 20:02:42 +0200
commit9568d5bb737eb468e87fd43f21404e2def101e30 (patch)
tree37dccaef760e15fa48d7d49569570ed6f2b3f88a /CMake
parent13f1911624359e8370c070981bb4b391b3caaae1 (diff)
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
Diffstat (limited to 'CMake')
-rw-r--r--CMake/resources.cmake49
1 files changed, 49 insertions, 0 deletions
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
#######################################################################