summaryrefslogtreecommitdiff
path: root/CMake
diff options
context:
space:
mode:
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
#######################################################################