From f60150e8c7d2e9741375d3e4e2e5c8956b9b6be9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20H=C3=BCttel?= Date: Mon, 26 Aug 2019 00:05:45 +0200 Subject: [PATCH] Add full git commit to About dialog --- include/gds-render/version.h | 2 ++ main.c | 7 +++++++ resources/about.glade | 3 ++- version/CMakeLists.txt | 7 ++++++- version/generate-git-commit-string.sh | 3 +++ version/generate-version-string.sh | 2 +- version/version.c | 8 ++++++++ 7 files changed, 29 insertions(+), 3 deletions(-) create mode 100755 version/generate-git-commit-string.sh diff --git a/include/gds-render/version.h b/include/gds-render/version.h index 036255e..8ab0f1d 100644 --- a/include/gds-render/version.h +++ b/include/gds-render/version.h @@ -25,4 +25,6 @@ /** @brief This string holds the @ref git-version-num of the app */ extern const char *_app_version_string; +/** @brief This string holds the git commit hash of the current HEAD revision */ +extern const char *_app_git_commit; /** @} */ diff --git a/main.c b/main.c index 3e27d89..92fe3f7 100644 --- a/main.c +++ b/main.c @@ -89,11 +89,18 @@ static void app_about(GSimpleAction *action, GVariant *parameter, gpointer user_ (void)user_data; (void)action; (void)parameter; + GString *comment_text; + + comment_text = g_string_new("gds-render is a tool fo rendering GDS2 layout files into vector graphics."); + g_string_append_printf(comment_text, "\n\n Full git commit: %s", _app_git_commit); builder = gtk_builder_new_from_resource("/gui/about.glade"); dialog = GTK_DIALOG(gtk_builder_get_object(builder, "about-dialog")); gtk_window_set_transient_for(GTK_WINDOW(dialog), NULL); gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), _app_version_string); + gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(dialog), comment_text->str); + + g_string_free(comment_text, TRUE); /* Load icon from resource */ logo_buf = gdk_pixbuf_new_from_resource_at_scale("/images/logo.svg", 100, 100, TRUE, &error); diff --git a/resources/about.glade b/resources/about.glade index b21402d..96e5dd3 100644 --- a/resources/about.glade +++ b/resources/about.glade @@ -6,7 +6,8 @@ False dialog GDS-Render Tool - Tool for rendering GDS(II) layout files into LaTeX/TikZ code or directly into a PDF file + !! Replaced during runtime !! + !! Replaced during runtime !! https://git.shimatta.de/mhu/gds-render Git Repository Mario Hüttel <mario.huettel@gmx.net> diff --git a/version/CMakeLists.txt b/version/CMakeLists.txt index 0efa079..e438a16 100644 --- a/version/CMakeLists.txt +++ b/version/CMakeLists.txt @@ -2,4 +2,9 @@ add_library(version STATIC "version.c") execute_process(COMMAND bash ./generate-version-string.sh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE GIT_VER) -target_compile_definitions(version PUBLIC PROJECT_GIT_VERSION=${GIT_VER}) +execute_process(COMMAND bash ./generate-git-commit-string.sh + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE GIT_COMMIT) +message("Commit: ${GIT_COMMIT}") +message("Version: ${GIT_VER}") +target_compile_definitions(version PRIVATE PROJECT_GIT_VERSION=${GIT_VER} PROJECT_GIT_COMMIT=${GIT_COMMIT}) diff --git a/version/generate-git-commit-string.sh b/version/generate-git-commit-string.sh new file mode 100755 index 0000000..e27da30 --- /dev/null +++ b/version/generate-git-commit-string.sh @@ -0,0 +1,3 @@ +#!/bin/bash +git rev-parse --verify HEAD | tr -d '\n' + diff --git a/version/generate-version-string.sh b/version/generate-version-string.sh index 5d9d080..4a72834 100755 --- a/version/generate-version-string.sh +++ b/version/generate-version-string.sh @@ -1 +1 @@ -git describe --tags --dirty +git describe --tags --dirty | tr -d '\n' diff --git a/version/version.c b/version/version.c index 3c35d30..0dc18e6 100644 --- a/version/version.c +++ b/version/version.c @@ -33,4 +33,12 @@ const char *_app_version_string = xstr(PROJECT_GIT_VERSION); const char *_app_version_string = "! version not set !"; #endif +#ifdef PROJECT_GIT_COMMIT +#define xstr(a) str(a) +#define str(a) #a +const char *_app_git_commit = xstr(PROJECT_GIT_COMMIT); +#else +const char *_app_git_commit = "! Commit hash not available !"; +#endif + /** @} */