summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2016-04-16 10:19:59 +0200
committer Miodrag Milanovic <mmicko@gmail.com>2016-04-16 10:19:59 +0200
commit6bb33aa52c4e02989519f9dc04d11a94df76fd3e (patch)
tree31cbf91aa6e8d47b277ccd7478cd84b939520d7a
parent942472ea224e9cd0c4dff6a3abe0c4c331fc314b (diff)
Add short git version if building non-release build, also if git command is not available or if .git is not there (so building out of other sources) (nw)
-rw-r--r--makefile10
-rw-r--r--scripts/genie.lua21
-rw-r--r--src/version.cpp8
3 files changed, 38 insertions, 1 deletions
diff --git a/makefile b/makefile
index df813945c4c..3488a7a106d 100644
--- a/makefile
+++ b/makefile
@@ -823,10 +823,12 @@ ifeq (posix,$(SHELLTYPE))
GCC_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) -dumpversion 2> /dev/null)
CLANG_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) --version 2> /dev/null| head -n 1 | grep clang | sed "s/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$$/\1/" | head -n 1)
PYTHON_AVAILABLE := $(shell $(PYTHON) --version > /dev/null 2>&1 && echo python)
+GIT_AVAILABLE := $(shell git --version > /dev/null 2>&1 && echo git)
else
GCC_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) -dumpversion 2> NUL)
CLANG_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) --version 2> NUL| head -n 1 | grep clang | sed "s/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$$/\1/" | head -n 1)
PYTHON_AVAILABLE := $(shell $(PYTHON) --version > NUL 2>&1 && echo python)
+GIT_AVAILABLE := $(shell git --version > NUL 2>&1 && echo git)
endif
ifdef MSBUILD
MSBUILD_PARAMS := /v:minimal /m:$(NUMBER_OF_PROCESSORS)
@@ -847,6 +849,7 @@ ifneq ($(OS),solaris)
CLANG_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) --version 2> /dev/null | head -n 1 | grep -e 'version [0-9]\.[0-9]\(\.[0-9]\)\?' -o | grep -e '[0-9]\.[0-9]\(\.[0-9]\)\?' -o | tail -n 1)
endif
PYTHON_AVAILABLE := $(shell $(PYTHON) --version > /dev/null 2>&1 && echo python)
+GIT_AVAILABLE := $(shell git --version > /dev/null 2>&1 && echo git)
endif
ifeq ($(CLANG_VERSION),)
@@ -866,6 +869,13 @@ ifneq ($(PYTHON_AVAILABLE),python)
$(error Python is not available in path)
endif
+ifneq ($(GIT_AVAILABLE),git)
+PARAMS += --IGNORE_GIT='1'
+endif
+ifeq ($(wildcard .git/*),)
+PARAMS += --IGNORE_GIT='1'
+endif
+
GENIE := 3rdparty/genie/bin/$(GENIEOS)/genie$(EXE)
ifeq ($(TARGET),$(SUBTARGET))
diff --git a/scripts/genie.lua b/scripts/genie.lua
index 90df0a55d76..ca37aa1b0f5 100644
--- a/scripts/genie.lua
+++ b/scripts/genie.lua
@@ -349,6 +349,15 @@ newoption {
}
newoption {
+ trigger = "IGNORE_GIT",
+ description = "Ignore usage of git command in build process",
+ allowed = {
+ { "0", "Do not ignore" },
+ { "1", "Ingore" },
+ },
+}
+
+newoption {
trigger = "SOURCES",
description = "List of sources to compile.",
}
@@ -520,6 +529,18 @@ if (_OPTIONS["SOURCES"] == nil) then
dofile (path.join("target", _OPTIONS["target"],_OPTIONS["subtarget"] .. ".lua"))
end
+
+if _OPTIONS["IGNORE_GIT"]~="1" then
+ GIT_VERSION = backtick( "git rev-parse --short HEAD" )
+ GIT_VERSION_RELEASE = backtick( "git rev-list --tags --max-count=1" )
+ GIT_VERSION_LASTONE = backtick( "git rev-list --max-count=1 HEAD" )
+ if (GIT_VERSION_RELEASE ~= GIT_VERSION_LASTONE) then
+ defines {
+ "GIT_VERSION=" .. GIT_VERSION,
+ }
+ end
+end
+
configuration { "gmake" }
flags {
"SingleOutputDir",
diff --git a/src/version.cpp b/src/version.cpp
index 75859a6b57b..0721ba139d5 100644
--- a/src/version.cpp
+++ b/src/version.cpp
@@ -13,4 +13,10 @@
extern const char bare_build_version[];
extern const char build_version[];
const char bare_build_version[] = BARE_BUILD_VERSION;
-const char build_version[] = BARE_BUILD_VERSION " (" __DATE__")";
+#if defined(GIT_VERSION)
+#define VERSION_TO_STRING(s) XVERSION_TO_STRING(s)
+#define XVERSION_TO_STRING(ver) #ver
+const char build_version[] = BARE_BUILD_VERSION " (" VERSION_TO_STRING(GIT_VERSION) ")";
+#else
+const char build_version[] = BARE_BUILD_VERSION;
+#endif