From d3377e776c72f5d5860fa804728b959e15ab2a8a Mon Sep 17 00:00:00 2001 From: George Smart Date: Thu, 9 Mar 2017 20:55:41 +0000 Subject: [PATCH 1/6] Added Git Version number (*NIX only) --- .gitignore | 1 + MMDVMHost.cpp | 2 ++ Makefile | 13 ++++++++++--- Makefile.Pi | 13 ++++++++++--- Makefile.Pi.Adafruit | 13 ++++++++++--- Makefile.Pi.HD44780 | 13 ++++++++++--- Makefile.Pi.OLED | 13 ++++++++++--- Makefile.Pi.PCF8574 | 12 ++++++++++-- Makefile.Solaris | 13 ++++++++++--- 9 files changed, 73 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index f1260a1..158435f 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ MMDVMHost *.VC.db .vs *.ambe +gitversion.h diff --git a/MMDVMHost.cpp b/MMDVMHost.cpp index cea5c9b..a875ec4 100644 --- a/MMDVMHost.cpp +++ b/MMDVMHost.cpp @@ -33,6 +33,7 @@ #include "LCDproc.h" #include "Thread.h" #include "Log.h" +#include "gitversion.h" #if defined(HD44780) #include "HD44780.h" @@ -235,6 +236,7 @@ int CMMDVMHost::run() LogInfo(HEADER4); LogMessage("MMDVMHost-%s is starting", VERSION); + LogMessage("Built %s %s (GitID #%.7s)", __TIME__, __DATE__, gitversion); readParams(); diff --git a/Makefile b/Makefile index f180e2d..b1f1050 100644 --- a/Makefile +++ b/Makefile @@ -15,12 +15,19 @@ OBJECTS = \ all: MMDVMHost -MMDVMHost: $(OBJECTS) +MMDVMHost: gitversion.h $(OBJECTS) $(CXX) $(OBJECTS) $(CFLAGS) $(LIBS) -o MMDVMHost %.o: %.cpp $(CXX) $(CFLAGS) -c -o $@ $< clean: - $(RM) MMDVMHost *.o *.d *.bak *~ - + $(RM) MMDVMHost *.o *.d *.bak *~ gitversion.h + +# Export the current git version if the index file exists, else 000... +gitversion.h: +ifneq ("$(wildcard .git/index)","") + echo "const char *gitversion = \"$(shell git rev-parse HEAD)\";" > $@ +else + echo "const char *gitversion = \"0000000000000000000000000000000000000000\";" > $@ +endif diff --git a/Makefile.Pi b/Makefile.Pi index 0734d47..f683ec6 100644 --- a/Makefile.Pi +++ b/Makefile.Pi @@ -15,12 +15,19 @@ OBJECTS = \ all: MMDVMHost -MMDVMHost: $(OBJECTS) +MMDVMHost: gitversion.h $(OBJECTS) $(CXX) $(OBJECTS) $(CFLAGS) $(LIBS) -o MMDVMHost %.o: %.cpp $(CXX) $(CFLAGS) -c -o $@ $< clean: - $(RM) MMDVMHost *.o *.d *.bak *~ - + $(RM) MMDVMHost *.o *.d *.bak *~ gitversion.h + +# Export the current git version if the index file exists, else 000... +gitversion.h: +ifneq ("$(wildcard .git/index)","") + echo "const char *gitversion = \"$(shell git rev-parse HEAD)\";" > $@ +else + echo "const char *gitversion = \"0000000000000000000000000000000000000000\";" > $@ +endif diff --git a/Makefile.Pi.Adafruit b/Makefile.Pi.Adafruit index bbe5dfe..16ecc2f 100644 --- a/Makefile.Pi.Adafruit +++ b/Makefile.Pi.Adafruit @@ -15,12 +15,19 @@ OBJECTS = \ all: MMDVMHost -MMDVMHost: $(OBJECTS) +MMDVMHost: gitversion.h $(OBJECTS) $(CXX) $(OBJECTS) $(CFLAGS) $(LIBS) -o MMDVMHost %.o: %.cpp $(CXX) $(CFLAGS) -c -o $@ $< clean: - $(RM) MMDVMHost *.o *.d *.bak *~ - + $(RM) MMDVMHost *.o *.d *.bak *~ gitversion.h + +# Export the current git version if the index file exists, else 000... +gitversion.h: +ifneq ("$(wildcard .git/index)","") + echo "const char *gitversion = \"$(shell git rev-parse HEAD)\";" > $@ +else + echo "const char *gitversion = \"0000000000000000000000000000000000000000\";" > $@ +endif diff --git a/Makefile.Pi.HD44780 b/Makefile.Pi.HD44780 index a4b9c97..981af5e 100644 --- a/Makefile.Pi.HD44780 +++ b/Makefile.Pi.HD44780 @@ -15,12 +15,19 @@ OBJECTS = \ all: MMDVMHost -MMDVMHost: $(OBJECTS) +MMDVMHost: gitversion.h $(OBJECTS) $(CXX) $(OBJECTS) $(CFLAGS) $(LIBS) -o MMDVMHost %.o: %.cpp $(CXX) $(CFLAGS) -c -o $@ $< clean: - $(RM) MMDVMHost *.o *.d *.bak *~ - + $(RM) MMDVMHost *.o *.d *.bak *~ gitversion.h + +# Export the current git version if the index file exists, else 000... +gitversion.h: +ifneq ("$(wildcard .git/index)","") + echo "const char *gitversion = \"$(shell git rev-parse HEAD)\";" > $@ +else + echo "const char *gitversion = \"0000000000000000000000000000000000000000\";" > $@ +endif diff --git a/Makefile.Pi.OLED b/Makefile.Pi.OLED index 167c739..660fc88 100644 --- a/Makefile.Pi.OLED +++ b/Makefile.Pi.OLED @@ -15,12 +15,19 @@ OBJECTS = \ all: MMDVMHost -MMDVMHost: $(OBJECTS) +MMDVMHost: gitversion.h $(OBJECTS) $(CXX) $(OBJECTS) $(CFLAGS) $(LIBS) -o MMDVMHost %.o: %.cpp $(CXX) $(CFLAGS) -c -o $@ $< clean: - $(RM) MMDVMHost *.o *.d *.bak *~ - + $(RM) MMDVMHost *.o *.d *.bak *~ gitversion.h + +# Export the current git version if the index file exists, else 000... +gitversion.h: +ifneq ("$(wildcard .git/index)","") + echo "const char *gitversion = \"$(shell git rev-parse HEAD)\";" > $@ +else + echo "const char *gitversion = \"0000000000000000000000000000000000000000\";" > $@ +endif diff --git a/Makefile.Pi.PCF8574 b/Makefile.Pi.PCF8574 index e5df3a5..2ea81dd 100644 --- a/Makefile.Pi.PCF8574 +++ b/Makefile.Pi.PCF8574 @@ -15,11 +15,19 @@ OBJECTS = \ all: MMDVMHost -MMDVMHost: $(OBJECTS) +MMDVMHost: gitversion.h $(OBJECTS) $(CXX) $(OBJECTS) $(CFLAGS) $(LIBS) -o MMDVMHost %.o: %.cpp $(CXX) $(CFLAGS) -c -o $@ $< clean: - $(RM) MMDVMHost *.o *.d *.bak *~ + $(RM) MMDVMHost *.o *.d *.bak *~ gitversion.h + +# Export the current git version if the index file exists, else 000... +gitversion.h: +ifneq ("$(wildcard .git/index)","") + echo "const char *gitversion = \"$(shell git rev-parse HEAD)\";" > $@ +else + echo "const char *gitversion = \"0000000000000000000000000000000000000000\";" > $@ +endif diff --git a/Makefile.Solaris b/Makefile.Solaris index a2c74ac..6113fa6 100644 --- a/Makefile.Solaris +++ b/Makefile.Solaris @@ -15,12 +15,19 @@ OBJECTS = \ all: MMDVMHost -MMDVMHost: $(OBJECTS) +MMDVMHost: gitversion.h $(OBJECTS) $(CXX) $(OBJECTS) $(CFLAGS) $(LIBS) -o MMDVMHost %.o: %.cpp $(CXX) $(CFLAGS) -c -o $@ $< clean: - $(RM) MMDVMHost *.o *.d *.bak *~ - + $(RM) MMDVMHost *.o *.d *.bak *~ gitversion.h + +# Export the current git version if the index file exists, else 000... +gitversion.h: +ifneq ("$(wildcard .git/index)","") + echo "const char *gitversion = \"$(shell git rev-parse HEAD)\";" > $@ +else + echo "const char *gitversion = \"0000000000000000000000000000000000000000\";" > $@ +endif From 0898b5c98cd8bfb4016c7a91fd91745b4c5564f4 Mon Sep 17 00:00:00 2001 From: George Smart Date: Fri, 10 Mar 2017 03:06:04 +0000 Subject: [PATCH 2/6] Added Git Version number (Windows MSVS with prebuild script) --- MMDVMHost.vcxproj | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/MMDVMHost.vcxproj b/MMDVMHost.vcxproj index 1c9a25e..ea4eb81 100644 --- a/MMDVMHost.vcxproj +++ b/MMDVMHost.vcxproj @@ -108,6 +108,12 @@ true kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ws2_32.lib;%(AdditionalDependencies) + + "$(ProjectDir)prebuild.cmd" $(ProjectDir) + + + prebuild.cmd generates GitVersion.h from git refs heads master + From b6cbbc02e3be497600f63caa8e4169b441b9be1a Mon Sep 17 00:00:00 2001 From: George Smart Date: Fri, 10 Mar 2017 03:06:23 +0000 Subject: [PATCH 3/6] Added Git Version number (Windows MSVS with prebuild script) --- prebuild.cmd | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 prebuild.cmd diff --git a/prebuild.cmd b/prebuild.cmd new file mode 100644 index 0000000..c73ceca --- /dev/null +++ b/prebuild.cmd @@ -0,0 +1,38 @@ +@echo off +REM This pre-build file is for MSVS VC++. It parses the git master hash and +REM converts it into GitVersion.h for compiling into builds. [George M1GEO] + +cd %1 +setlocal enabledelayedexpansion +set HEADFILE=.git\HEAD +set HASHFILE=0 +if exist %HEADFILE% ( + for /F "tokens=4 delims=/:" %%a in ('type %HEADFILE%') do set HEADBRANCH=%%a + set HASHFILE=.git\refs\heads\!HEADBRANCH! + echo Found Git HEAD file: %HEADFILE% + echo Git HEAD branch: !HEADBRANCH! + echo Git HASH file: !HASHFILE! + call :USEHASH +) else ( + echo No head file :( + call :USENULL +) + +goto :EOF + +:USENULL +set GITHASH=0000000000000000000000000000000000000000 +goto :WRITEGITVERSIONHEADER + +:USEHASH +for /f %%i in ('type !HASHFILE!') do set GITHASH=%%i +goto :WRITEGITVERSIONHEADER + +:WRITEGITVERSIONHEADER +echo # File contains Git commit ID SHA1 present at buildtime (prebuild.cmd) > GitVersion.h +echo const char *gitversion = "%GITHASH%"; >> GitVersion.h +echo Current Git HASH: %GITHASH% +goto :FINISHED + +:FINISHED +echo GitVersion.h written... From ef89ffe5235caaa4b3f0f0c8e1b490f41a7eec3e Mon Sep 17 00:00:00 2001 From: George Smart Date: Fri, 10 Mar 2017 03:32:00 +0000 Subject: [PATCH 4/6] Fixed typo in generated header file and tested more --- prebuild.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prebuild.cmd b/prebuild.cmd index c73ceca..2dc5f9d 100644 --- a/prebuild.cmd +++ b/prebuild.cmd @@ -29,7 +29,7 @@ for /f %%i in ('type !HASHFILE!') do set GITHASH=%%i goto :WRITEGITVERSIONHEADER :WRITEGITVERSIONHEADER -echo # File contains Git commit ID SHA1 present at buildtime (prebuild.cmd) > GitVersion.h +echo // File contains Git commit ID SHA1 present at buildtime (prebuild.cmd) > GitVersion.h echo const char *gitversion = "%GITHASH%"; >> GitVersion.h echo Current Git HASH: %GITHASH% goto :FINISHED From e0b0a3b6d8f3507ed260eb691b202c017d21976e Mon Sep 17 00:00:00 2001 From: George Smart Date: Fri, 10 Mar 2017 04:21:40 +0000 Subject: [PATCH 5/6] corrected case --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 158435f..690a1f9 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,4 @@ MMDVMHost *.VC.db .vs *.ambe -gitversion.h +GitVersion.h From 1cb9db0e4d4d3660aef14b5af0c7175141311c83 Mon Sep 17 00:00:00 2001 From: George Smart Date: Fri, 10 Mar 2017 04:22:33 +0000 Subject: [PATCH 6/6] corrected case --- MMDVMHost.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MMDVMHost.cpp b/MMDVMHost.cpp index a875ec4..4d9ed6a 100644 --- a/MMDVMHost.cpp +++ b/MMDVMHost.cpp @@ -33,7 +33,7 @@ #include "LCDproc.h" #include "Thread.h" #include "Log.h" -#include "gitversion.h" +#include "GitVersion.h" #if defined(HD44780) #include "HD44780.h"