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
+
/** @} */