summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorVladislav Vaintroub <wlad@mariadb.com>2017-09-20 23:58:26 +0000
committerVladislav Vaintroub <wlad@mariadb.com>2017-09-21 08:48:46 +0000
commit0f3735842f584412da6e119927ece5974cbc23f8 (patch)
tree9ee0eb581bbdd4c60be8a893b4c378359ac0653f /CMakeLists.txt
parentf70865bc9e540767d8afc3cc2cbe0e1c92a8c0be (diff)
downloadmariadb-git-0f3735842f584412da6e119927ece5974cbc23f8.tar.gz
MDEV-12583 : Bake the git hash into the binaries.
Added version_source_revision server "variable", for the git revision. Also , mysql -V will show git revision. "make dist" will now pack source_revision.h into the source package.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt17
1 files changed, 17 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3c638cb2d41..a0b498b27e3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -432,6 +432,23 @@ CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in
${CMAKE_BINARY_DIR}/include/mysql_version.h )
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc.in
${CMAKE_BINARY_DIR}/sql/sql_builtin.cc)
+
+FIND_PACKAGE(Git)
+IF(GIT_EXECUTABLE)
+ EXECUTE_PROCESS(
+ COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ OUTPUT_VARIABLE OUT RESULT_VARIABLE RES)
+ IF(RES EQUAL 0)
+ STRING(REGEX REPLACE "\n$" "" SOURCE_REVISION "${OUT}")
+ ENDIF()
+ENDIF()
+IF(SOURCE_REVISION OR
+ (NOT EXISTS ${PROJECT_SOURCE_DIR}/include/source_revision.h))
+ CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/include/source_revision.h.in
+ ${PROJECT_BINARY_DIR}/include/source_revision.h )
+ENDIF()
+
CONFIGURE_FILE(
${CMAKE_SOURCE_DIR}/cmake/info_macros.cmake.in
${CMAKE_BINARY_DIR}/info_macros.cmake @ONLY)