From 1cace82a703b9ebe2626dfb3654dcda9f3f0fe60 Mon Sep 17 00:00:00 2001 From: Dirk Zimoch Date: Thu, 30 Jul 2020 17:15:47 +0200 Subject: [PATCH] make version generation more robust --- src/Makefile | 2 +- src/StreamVersion.c | 10 ++++++++-- src/makeStreamVersion.pl | 24 +++++++++++++++--------- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/Makefile b/src/Makefile index 0ebefbb..9759b55 100644 --- a/src/Makefile +++ b/src/Makefile @@ -89,7 +89,7 @@ CPPFLAGS += -DSTREAM_INTERNAL # Update version string whenever something changed. StreamVersion$(OBJ): $(COMMON_DIR)/StreamVersion.h $(filter-out StreamVersion$(OBJ),$(LIBOBJS) $(LIBRARY_OBJS)) ../CONFIG_STREAM -$(COMMON_DIR)/StreamVersion.h: $(SRCS) $(filter-out StreamVersion.h, $(INC)) +$(COMMON_DIR)/StreamVersion.h: ../../.VERSION $(SRCS) $(filter-out StreamVersion.h, $(INC)) @echo Creating $@ $(PERL) ../makeStreamVersion.pl $@ diff --git a/src/StreamVersion.c b/src/StreamVersion.c index 1c6c1c9..8f814b1 100644 --- a/src/StreamVersion.c +++ b/src/StreamVersion.c @@ -26,10 +26,16 @@ #define STR(x) STR2(x) const char StreamVersion [] = "StreamDevice" -#if STREAM_MAJOR+0 +#ifdef STREAM_MAJOR " " STR(STREAM_MAJOR) "." STR(STREAM_MINOR) "." STR(STREAM_PATCHLEVEL) STREAM_DEV #endif - " commit:" STREAM_COMMIT_HASH; +#ifdef STREAM_COMMIT_DATE + " " STREAM_COMMIT_DATE +#endif +#ifdef STREAM_COMMIT_HASH + "\n commit: " STREAM_COMMIT_HASH +#endif +; diff --git a/src/makeStreamVersion.pl b/src/makeStreamVersion.pl index 67a4e09..342f5d5 100644 --- a/src/makeStreamVersion.pl +++ b/src/makeStreamVersion.pl @@ -23,7 +23,7 @@ use strict; -my ( $major, $minor, $patch, $dev, $branch, $date, $hash ); +my ( $major, $minor, $patch, $dev, $date, $hash ); if (my $version = `git describe --tags --abbrev=0 --dirty --match "[0-9]*" 2>/dev/null`) { if ($version =~ m/(\d+)\.(\d+)\.(\d+)?(.*)?/) { @@ -39,10 +39,10 @@ if (!$major) { if ($line =~ m/COMMIT: *([[:xdigit:]]+)/) { $hash = $1; } - if ($line =~ m/REFS: *tag: *((\d+)\.(\d+)\.(\d+)?,)? *(.*)/) { - $major = $2; $minor = $3; $patch = $4; $branch = $5; + if ($line =~ m/REFS: .*tag: *(\d+)\.(\d+)\.?(\d+)?/) { + $major = $1; $minor = $2; $patch = $3 or $patch = 0; } - if ($line =~ m/DATE: *(.+)/) { + if ($line =~ m/DATE: *([-0-9:+ ]*)/) { $date = $1; } } @@ -58,14 +58,20 @@ print $out <