auto merge of #9748 : klutzy/rust/print-git-revision, r=alexcrichton

Fixes a bug that `rustc.exe -v` didn't show git revision hash.
The bug is caused by that `$(wildcard $(CFG_GIT))` requires
space-escaped inputs while `$(CFG_GIT)` is usually
`C:\Program Files (x86)\Gitin\git.exe`.
This commit is contained in:
bors 2013-10-09 09:31:36 -07:00
commit 4fd7f852e1

View File

@ -147,11 +147,17 @@ CFG_VERSION = $(CFG_RELEASE)
# numbers and dots here # numbers and dots here
CFG_VERSION_WIN = 0.9 CFG_VERSION_WIN = 0.9
ifneq ($(wildcard $(CFG_GIT)),) # since $(CFG_GIT) may contain spaces (especially on Windows),
ifneq ($(wildcard $(CFG_GIT_DIR)),) # we need to escape them. (" " to r"\ ")
CFG_VERSION += $(shell git --git-dir=$(CFG_GIT_DIR) log -1 \ # Note that $(subst ...) ignores space after `subst`,
# so we use a hack: define $(SPACE) which contains space character.
SPACE :=
SPACE +=
ifneq ($(wildcard $(subst $(SPACE),\$(SPACE),$(CFG_GIT))),)
ifneq ($(wildcard $(subst $(SPACE),\$(SPACE),$(CFG_GIT_DIR))),)
CFG_VERSION += $(shell git --git-dir='$(CFG_GIT_DIR)' log -1 \
--pretty=format:'(%h %ci)') --pretty=format:'(%h %ci)')
CFG_VER_HASH = $(shell git --git-dir=$(CFG_GIT_DIR) rev-parse HEAD) CFG_VER_HASH = $(shell git --git-dir='$(CFG_GIT_DIR)' rev-parse HEAD)
endif endif
endif endif