From d876f6f12b7719a5f477a6ccabb943a32be05755 Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Tue, 12 Jul 2022 18:23:01 -0700 Subject: Include diff and diffstat from git. --- Makefile | 17 +---------------- git-tag.h | 2 ++ main.cpp | 4 ++++ tools/mkgit.rb | 28 ++++++++++++++++++++++++++++ 4 files changed, 35 insertions(+), 16 deletions(-) create mode 100755 tools/mkgit.rb diff --git a/Makefile b/Makefile index 6a9baab..cb8b824 100644 --- a/Makefile +++ b/Makefile @@ -14,19 +14,6 @@ CXXFLAGS := -Wall -Werror -std=c++20 -fPIC -iquote . ${PKG_FLAGS} ${OPTIMIZE} ${ .DEFAULT_GOAL := all -VERSION := $(shell git describe --always --dirty --long --tags 2> /dev/null) -ifndef VERSION -VERSION := unknown -endif -$(info Version ${VERSION}) - -define GITTAGCPP = -#include "git-tag.h" - -const char *GIT_TAG = "$(subst ",\",${VERSION})"; -endef -export GITTAGCPP - ifneq ($(shell which ${IWYU}),) iwyu = ${CHRONIC} ${IWYU} -Xiwyu --error -Xiwyu --mapping_file=tools/iwyu.imp -Xiwyu --no_fwd_decls ${CXXFLAGS} $(1) else @@ -97,8 +84,6 @@ endif MAINOBJS := $(patsubst %.cpp,build/%.o,$(wildcard *.cpp)) MAINOBJS += build/git-tag.o -$(info ) - all: ${IWYU_CPPS} issim issim-static issim: build/issim-dynamic @@ -123,7 +108,7 @@ clean: build/git-tag.cpp: @mkdir -p $(dir $@) - @echo "$$GITTAGCPP" > $@ + @tools/mkgit.rb > $@ .PHONY: build/git-tag.cpp build/%.o: %.cpp diff --git a/git-tag.h b/git-tag.h index 0f36b73..0e742a5 100644 --- a/git-tag.h +++ b/git-tag.h @@ -1,3 +1,5 @@ #pragma once extern const char *GIT_TAG; +extern const char *GIT_DIFF; +extern const char *GIT_STAT; diff --git a/main.cpp b/main.cpp index 7142eed..ffc6cad 100644 --- a/main.cpp +++ b/main.cpp @@ -13,6 +13,10 @@ int main(int argc, const char *argv[]) { std::cout << "Version " << GIT_TAG << "\n"; + if (GIT_STAT) + std::cout << GIT_STAT << "\n"; + if (GIT_DIFF) + std::cout << GIT_DIFF << "\n"; fib::Fib<3> fib; diff --git a/tools/mkgit.rb b/tools/mkgit.rb new file mode 100755 index 0000000..2a6ef4c --- /dev/null +++ b/tools/mkgit.rb @@ -0,0 +1,28 @@ +#!/usr/bin/ruby -w + +$stdout.write(<