summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2025-12-04 17:47:33 +0500
committerilotterytea <iltsu@alright.party>2025-12-04 17:47:33 +0500
commit6711c33204deb3a10eb447f74813352ff24ec8e6 (patch)
tree00c3579050697cb9a1a62f168b560a86fc59b700
parent0c8746bb0e8ca470a7f682d3fcfb7a756bb9c6a5 (diff)
feat: display git commit ID as bot version
-rw-r--r--CMakeLists.txt33
-rw-r--r--bot/CMakeLists.txt2
2 files changed, 34 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8e88ce4..cbaa659 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -21,6 +21,39 @@ set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+# getting Git information
+find_package(Git QUIET)
+if (GIT_FOUND)
+ # get git tag
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=0
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ OUTPUT_VARIABLE GIT_TAG
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+
+ if(NOT GIT_TAG)
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ OUTPUT_VARIABLE GIT_COMMIT_HASH
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ set(BOT_VERSION_STRING "commit ${GIT_COMMIT_HASH}")
+ else()
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} describe --tags --long --dirty --always
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ OUTPUT_VARIABLE GIT_DESCRIBE
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ set(BOT_VERSION_STRING "commit ${GIT_DESCRIBE}")
+ endif()
+else()
+ set(BOT_VERSION_STRING "v${PROJECT_VERSION}")
+endif()
+
option(BUILD_BOT "Build the bot" ON)
option(BUILD_WEB "Build the web application" ON)
diff --git a/bot/CMakeLists.txt b/bot/CMakeLists.txt
index c1e14e1..53771b5 100644
--- a/bot/CMakeLists.txt
+++ b/bot/CMakeLists.txt
@@ -18,7 +18,7 @@ endif()
string(TIMESTAMP PROJECT_COMPILE_TIME "%s")
target_compile_definitions(Bot PRIVATE
- BOT_VERSION="${PROJECT_VERSION}"
+ BOT_VERSION="${BOT_VERSION_STRING}"
BOT_COMPILED_TIMESTAMP=${PROJECT_COMPILE_TIME}
)