From 458776d704579528c999a70024dcce73329beee5 Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Sun, 8 Dec 2024 20:06:00 +0100 Subject: Add git commit to the reported version with -v When git is available, records the git commit in the dillo binary, so dillo -v reports the version and the commit. Otherwise only the release version is reported (as we do now). The commit is *always* recomputed when "make" is called. This allows switching branches, doing a dirty rebuild and still get the correct commit with "dillo -v". Using AC_INIT() doesn't update the commit when the source is already configured. Fixes: https://github.com/dillo-browser/dillo/issues/288 --- src/Makefile.am | 16 ++++++++++++++++ src/version.cc | 9 ++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/Makefile.am b/src/Makefile.am index 34c05e30..c0205f7d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -138,5 +138,21 @@ dillo_SOURCES = \ xembed.cc \ xembed.hh +# https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html +nodist_dillo_SOURCES = commit.h +dillo.$(OBJEXT): commit.h +CLEANFILES = commit.h + +if GIT_AVAILABLE +# Always rebuild +.PHONY: commit.h +commit.h: + printf '#define GIT_COMMIT "%s"\n' `git --work-tree="$(top_srcdir)" describe --dirty` > commit.h +else +# No need to rebuild +commit.h: + echo "" > commit.h +endif # GIT_AVAILABLE + dist_sysconf_DATA = domainrc keysrc hsts_preload EXTRA_DIST = chg srch diff --git a/src/version.cc b/src/version.cc index f118c202..44b894e5 100644 --- a/src/version.cc +++ b/src/version.cc @@ -18,6 +18,7 @@ */ #include "config.h" +#include "commit.h" #include "djpeg.h" #include "dpng.h" @@ -114,7 +115,13 @@ static void print_features() void a_Version_print_info(void) { - printf("Dillo version " VERSION "\n"); + const char *version = "v" VERSION; + +#ifdef GIT_COMMIT + version = GIT_COMMIT; +#endif + + printf("Dillo %s\n", version); print_libs(); print_features(); } -- cgit v1.2.3