From 4528b78d81359c4f03c6b269d782a219a111d3b5 Mon Sep 17 00:00:00 2001 From: Albert Andaluz Date: Tue, 15 Oct 2019 15:41:19 +0200 Subject: [PATCH] Added git branch name and short hash to moonlight binary --- CMakeLists.txt | 1 + cmake/generate_version_header.cmake | 29 +++++++++++++++++++++++++++++ src/configuration.h.in | 2 ++ src/main.c | 4 ++++ 4 files changed, 36 insertions(+) create mode 100644 cmake/generate_version_header.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index caeb8e7..bb5eaff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,7 @@ project(moonlight-embedded VERSION 2.4.10 LANGUAGES C) SET(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") SET(CMAKE_C_STANDARD 99) include(${CMAKE_ROOT}/Modules/GNUInstallDirs.cmake) +include(${CMAKE_SOURCE_DIR}/cmake/generate_version_header.cmake) aux_source_directory(./src SRC_LIST) list(APPEND SRC_LIST ./src/input/evdev.c ./src/input/mapping.c ./src/input/udev.c) diff --git a/cmake/generate_version_header.cmake b/cmake/generate_version_header.cmake new file mode 100644 index 0000000..a1ff085 --- /dev/null +++ b/cmake/generate_version_header.cmake @@ -0,0 +1,29 @@ +include(FindGit) + +if(GIT_FOUND AND IS_DIRECTORY "${PROJECT_SOURCE_DIR}/.git") + set(GIT_BRANCH "") + set(GIT_COMMIT_HASH "") + + # Get the current working branch + execute_process( + COMMAND ${GIT_EXECUTABLE} name-rev --name-only HEAD + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_BRANCH0 + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + # Clean Branch name to have only the branch + STRING(REGEX REPLACE "((origin))+" "" GIT_BRANCH1 ${GIT_BRANCH0}) + STRING(REGEX REPLACE "((remotes))+" "" GIT_BRANCH2 ${GIT_BRANCH1}) + STRING(REGEX REPLACE "\\/+" "" GIT_BRANCH3 ${GIT_BRANCH2}) + STRING(REGEX REPLACE "~[0-9]*" "" GIT_BRANCH4 ${GIT_BRANCH3}) + STRING(REGEX REPLACE "\\^[0-9]*" "" GIT_BRANCH ${GIT_BRANCH4}) + + # 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 + ) +endif() diff --git a/src/configuration.h.in b/src/configuration.h.in index e329365..db35be9 100644 --- a/src/configuration.h.in +++ b/src/configuration.h.in @@ -20,5 +20,7 @@ #define VERSION_MAJOR @PROJECT_VERSION_MAJOR@ #define VERSION_MINOR @PROJECT_VERSION_MINOR@ #define VERSION_PATCH @PROJECT_VERSION_PATCH@ +#cmakedefine GIT_BRANCH "@GIT_BRANCH@" +#cmakedefine GIT_COMMIT_HASH "@GIT_COMMIT_HASH@" #define COMPILE_OPTIONS "@MOONLIGHT_OPTIONS@" diff --git a/src/main.c b/src/main.c index 6802b30..1c6633e 100644 --- a/src/main.c +++ b/src/main.c @@ -151,7 +151,11 @@ static void stream(PSERVER_DATA server, PCONFIGURATION config, enum platform sys } static void help() { + #ifdef GIT_BRANCH + printf("Moonlight Embedded %d.%d.%d-%s-%s\n", VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH, GIT_BRANCH, GIT_COMMIT_HASH); + #else printf("Moonlight Embedded %d.%d.%d\n", VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH); + #endif printf("Usage: moonlight [action] (options) [host]\n"); printf(" moonlight [configfile]\n"); printf("\n Actions\n\n");