From 9d17b3dc4628215cb2fb9c83fe71874f262d057d Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 10 Jul 2018 18:57:26 +0200 Subject: Embed the commit in the version string --- CMakeLists.txt | 22 ++++++++++++++++++---- applications/kube/main.cpp | 2 +- kube_version.h.in | 10 ++++++++++ 3 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 kube_version.h.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 73659a6e..2f3fcb3b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,10 +29,24 @@ set(KDE_SKIP_TEST_SETTINGS true) include(KDECMakeSettings NO_POLICY_SCOPE) include(ECMSetupVersion) -ecm_setup_version(PROJECT - SOVERSION kube_VERSION_MAJOR - VERSION_HEADER kube_version.h - ) +# Get the current working branch +execute_process( + COMMAND git rev-parse --abbrev-ref HEAD + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_BRANCH + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +# Get the latest abbreviated commit hash of the working branch +execute_process( + COMMAND git log -1 --format=%h + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_COMMIT_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +ecm_setup_version(PROJECT SOVERSION kube_VERSION_MAJOR) +configure_file(kube_version.h.in ${CMAKE_BINARY_DIR}/kube_version.h) enable_testing() diff --git a/applications/kube/main.cpp b/applications/kube/main.cpp index e0d37fc2..a146a8a7 100644 --- a/applications/kube/main.cpp +++ b/applications/kube/main.cpp @@ -166,7 +166,7 @@ int main(int argc, char *argv[]) QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts, true); QApplication app(argc, argv); app.setApplicationName("kube"); - app.setApplicationVersion(kube_VERSION_STRING); + app.setApplicationVersion(QString("%1 Branch: %2 Commit: %3").arg(kube_VERSION_STRING).arg(kube_BRANCH).arg(kube_COMMIT)); app.setFont(QFont{"Noto Sans", app.font().pointSize(), QFont::Normal}); diff --git a/kube_version.h.in b/kube_version.h.in new file mode 100644 index 00000000..fdbb23d7 --- /dev/null +++ b/kube_version.h.in @@ -0,0 +1,10 @@ +#pragma once + +#define kube_VERSION_STRING "${kube_VERSION_STRING}" +#define kube_VERSION_MAJOR ${kube_VERSION_MAJOR} +#define kube_VERSION_MINOR ${kube_VERSION_MINOR} +#define kube_VERSION_PATCH ${kube_VERSION_PATCH} +#define kube_VERSION ((${kube_VERSION_MAJOR}<<16)|(${kube_VERSION_MINOR}<<8)|(${kube_VERSION_PATCH})) +#define kube_BRANCH "${GIT_BRANCH}" +#define kube_COMMIT "${GIT_COMMIT_HASH}" + -- cgit v1.2.3