From dd09af34b791def2ef370232922d968f5176d1e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= Date: Fri, 12 Aug 2022 21:16:37 +0200 Subject: [PATCH] Make binaries say what git commit they come from The manual skipping of the initial "v" from tag names is unfortunate, but still a bit better than further cluttering up the build system. --- fiv-jpegcrop.c | 3 ++- fiv.c | 11 ++++++++--- meson.build | 11 ++++++----- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/fiv-jpegcrop.c b/fiv-jpegcrop.c index fad0c22..f19ff74 100644 --- a/fiv-jpegcrop.c +++ b/fiv-jpegcrop.c @@ -397,7 +397,8 @@ main(int argc, char *argv[]) gboolean initialized = gtk_init_with_args( &argc, &argv, " - Lossless JPEG cropper", options, NULL, &error); if (show_version) { - printf("fiv-jpegcrop " PROJECT_VERSION "\n"); + const char *version = PROJECT_VERSION; + printf("%s %s\n", "fiv-jpegcrop", &version[*version == 'v']); return 0; } if (!initialized) diff --git a/fiv.c b/fiv.c index 670661e..d58a5a5 100644 --- a/fiv.c +++ b/fiv.c @@ -450,8 +450,12 @@ show_about_dialog(GtkWidget *parent) // The rest is approximately copying GTK+'s own gtkaboutdialog.ui. GtkWidget *name = gtk_label_new(NULL); gtk_label_set_selectable(GTK_LABEL(name), TRUE); - gtk_label_set_markup( - GTK_LABEL(name), "" PROJECT_NAME " " PROJECT_VERSION); + + const char *version = PROJECT_VERSION; + gchar *markup = g_strdup_printf( + "%s %s", PROJECT_NAME, &version[*version == 'v']); + gtk_label_set_markup(GTK_LABEL(name), markup); + g_free(markup); GtkWidget *website = gtk_label_new(NULL); gtk_label_set_selectable(GTK_LABEL(website), TRUE); @@ -2005,7 +2009,8 @@ main(int argc, char *argv[]) gboolean initialized = gtk_init_with_args( &argc, &argv, " - Image browser and viewer", options, NULL, &error); if (show_version) { - printf(PROJECT_NAME " " PROJECT_VERSION "\n"); + const char *version = PROJECT_VERSION; + printf("%s %s\n", PROJECT_NAME, &version[*version == 'v']); return 0; } if (show_supported_media_types) { diff --git a/meson.build b/meson.build index 1e211a4..4591a67 100644 --- a/meson.build +++ b/meson.build @@ -74,7 +74,7 @@ application_ns = 'name.janouch.' conf = configuration_data() conf.set_quoted('PROJECT_NAME', meson.project_name()) -conf.set_quoted('PROJECT_VERSION', meson.project_version()) +conf.set_quoted('PROJECT_VERSION', '@VCS_TAG@') conf.set_quoted('PROJECT_NS', application_ns) conf.set_quoted('PROJECT_DOCDIR', get_option('prefix') / docdir) if host_machine.system() == 'windows' @@ -91,9 +91,10 @@ conf.set('HAVE_LIBHEIF', libheif.found()) conf.set('HAVE_LIBTIFF', libtiff.found()) conf.set('HAVE_GDKPIXBUF', gdkpixbuf.found()) -configure_file( +config = vcs_tag( + command : ['git', 'describe', '--always', '--dirty=+'], + input : configure_file(output : 'config.h.in', configuration : conf), output : 'config.h', - configuration : conf, ) rc = [] @@ -137,7 +138,7 @@ tiff_tables = custom_target('tiff-tables.h', desktops = ['fiv.desktop', 'fiv-browse.desktop'] exe = executable('fiv', 'fiv.c', 'fiv-view.c', 'fiv-io.c', 'fiv-context-menu.c', 'fiv-browser.c', 'fiv-sidebar.c', 'fiv-thumbnail.c', 'fiv-collection.c', - 'xdg.c', gresources, rc, + 'xdg.c', gresources, rc, config, install : true, dependencies : dependencies, win_subsystem : 'windows', @@ -149,7 +150,7 @@ if gdkpixbuf.found() endif desktops += 'fiv-jpegcrop.desktop' -jpegcrop = executable('fiv-jpegcrop', 'fiv-jpegcrop.c', rc, +jpegcrop = executable('fiv-jpegcrop', 'fiv-jpegcrop.c', rc, config, install : true, dependencies : [ dependency('gtk+-3.0'),