aboutsummaryrefslogtreecommitdiffhomepage
path: root/CMake
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2022-07-08 20:56:43 +0300
committerlevlam <levlam@telegram.org>2022-07-08 20:56:43 +0300
commitd37ad61f86d0e3fd8df6dd36776b74b2496bf4e5 (patch)
tree3d5fd35fb00518ddac5949852f7b7d7c4ab8dcfc /CMake
parent1dec0e203ca8110ea53f57830eb5d890a648d0e0 (diff)
Generate GIT_COMMIT and GIT_DIRTY from CMake.
Diffstat (limited to 'CMake')
-rw-r--r--CMake/GetGitInfo.cmake29
1 files changed, 29 insertions, 0 deletions
diff --git a/CMake/GetGitInfo.cmake b/CMake/GetGitInfo.cmake
new file mode 100644
index 000000000..bba1a0b5c
--- /dev/null
+++ b/CMake/GetGitInfo.cmake
@@ -0,0 +1,29 @@
+# sets GIT_COMMIT and GIT_DIRTY CMake variables
+function(get_git_info)
+ find_program(GIT_EXECUTABLE git)
+
+ unset(TD_GIT_COMMIT PARENT_SCOPE)
+ unset(TD_GIT_DIRTY PARENT_SCOPE)
+
+ execute_process(
+ COMMAND "${GIT_EXECUTABLE}" rev-parse HEAD
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ OUTPUT_VARIABLE GIT_COMMIT
+ ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ if (NOT GIT_COMMIT)
+ return()
+ endif()
+
+ set(TD_GIT_COMMIT "${GIT_COMMIT}" PARENT_SCOPE)
+
+ execute_process(
+ COMMAND "${GIT_EXECUTABLE}" diff-index --quiet HEAD
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ RESULT_VARIABLE GIT_DIRTY_RESULT
+ ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ if (GIT_DIRTY_RESULT)
+ set(TD_GIT_DIRTY "true" PARENT_SCOPE)
+ endif()
+endfunction()