aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPřemysl Eric Janouch <p@janouch.name>2022-08-12 21:16:37 +0200
committerPřemysl Eric Janouch <p@janouch.name>2022-08-13 12:42:21 +0200
commitdd09af34b791def2ef370232922d968f5176d1e1 (patch)
treee85df427a2c28c8b1ed0cb435efc4006e85c2516
parentdcbc8a90b4caee1f57d185ef47d44818e67711f5 (diff)
downloadfiv-dd09af34b791def2ef370232922d968f5176d1e1.tar.gz
fiv-dd09af34b791def2ef370232922d968f5176d1e1.tar.xz
fiv-dd09af34b791def2ef370232922d968f5176d1e1.zip
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.
-rw-r--r--fiv-jpegcrop.c3
-rw-r--r--fiv.c11
-rw-r--r--meson.build11
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), "<b>" PROJECT_NAME "</b> " PROJECT_VERSION);
+
+ const char *version = PROJECT_VERSION;
+ gchar *markup = g_strdup_printf(
+ "<b>%s</b> %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'),