From d23d37fcfd8a1126bedb033f4f07089488720d29 Mon Sep 17 00:00:00 2001 From: Edward Hennis Date: Thu, 6 Jan 2022 10:47:22 -0500 Subject: [PATCH] Correctly add `GIT_COMMIT_HASH` into version string: Commit bf013c02ad8e49b9242d73afae245e48fa0ad5b3 added support for incorporating a commit ID into the compiled version string but did so in a way that did not follow the semantic versioning standard. This commit corrects that flaw by moving the commit ID into the "metadata" part of the version string and properly handles the case where the commit hash cannot be retrieved. --- CMakeLists.txt | 9 ++++++--- src/ripple/protocol/impl/BuildInfo.cpp | 7 ++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7e2e94eb6..ee210b726 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,9 +10,12 @@ project (rippled) find_package(Git) if(Git_FOUND) execute_process(COMMAND ${GIT_EXECUTABLE} describe --always --abbrev=40 - OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE GIT_COMMIT_HASH) - message(STATUS gch: ${GIT_COMMIT_HASH}) - add_definitions(-DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}") + OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE gch) + if(gch) + set(GIT_COMMIT_HASH "${gch}") + message(STATUS gch: ${GIT_COMMIT_HASH}) + add_definitions(-DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}") + endif() endif() #git list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake") diff --git a/src/ripple/protocol/impl/BuildInfo.cpp b/src/ripple/protocol/impl/BuildInfo.cpp index 6e6b4476c..96bab0c71 100644 --- a/src/ripple/protocol/impl/BuildInfo.cpp +++ b/src/ripple/protocol/impl/BuildInfo.cpp @@ -37,10 +37,11 @@ char const* const versionString = "1.8.4" // clang-format on #if defined(DEBUG) || defined(SANITIZER) -#ifdef GIT_COMMIT_HASH - "-" GIT_COMMIT_HASH -#endif "+" +#ifdef GIT_COMMIT_HASH + GIT_COMMIT_HASH + "." +#endif #ifdef DEBUG "DEBUG" #ifdef SANITIZER