build systems: uniformize git_sha1.h generation
Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com> Reviewed-by: Matt Turner <mattst88@gmail.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
parent
ccfac28835
commit
3fd425aed7
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# run git from the sources directory
|
||||||
|
cd "$(dirname "$0")"
|
||||||
|
|
||||||
|
# don't print anything if git fails
|
||||||
|
if ! git_sha1=$(git --git-dir=.git rev-parse --short=10 HEAD 2>/dev/null)
|
||||||
|
then
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf '#define MESA_GIT_SHA1 "git-%s"\n' "$git_sha1"
|
|
@ -21,18 +21,7 @@
|
||||||
|
|
||||||
.PHONY: git_sha1.h.tmp
|
.PHONY: git_sha1.h.tmp
|
||||||
git_sha1.h.tmp:
|
git_sha1.h.tmp:
|
||||||
@# Don't assume that $(top_srcdir)/.git is a directory. It may be
|
@sh $(top_srcdir)/git_sha1_gen.sh > $@
|
||||||
@# a gitlink file if $(top_srcdir) is a submodule checkout or a linked
|
|
||||||
@# worktree.
|
|
||||||
@# If we are building from a release tarball copy the bundled header.
|
|
||||||
@touch git_sha1.h.tmp
|
|
||||||
@if test -e $(top_srcdir)/.git; then \
|
|
||||||
if which git > /dev/null; then \
|
|
||||||
printf '#define MESA_GIT_SHA1 "git-%s"\n' \
|
|
||||||
`git --git-dir=$(top_srcdir)/.git rev-parse --short=10 HEAD` \
|
|
||||||
> git_sha1.h.tmp ; \
|
|
||||||
fi \
|
|
||||||
fi
|
|
||||||
|
|
||||||
git_sha1.h: git_sha1.h.tmp
|
git_sha1.h: git_sha1.h.tmp
|
||||||
@echo "updating git_sha1.h"
|
@echo "updating git_sha1.h"
|
||||||
|
|
|
@ -22,27 +22,15 @@ def write_git_sha1_h_file(filename):
|
||||||
to retrieve the git hashid and write the header file. An empty file
|
to retrieve the git hashid and write the header file. An empty file
|
||||||
will be created if anything goes wrong."""
|
will be created if anything goes wrong."""
|
||||||
|
|
||||||
args = [ 'git', 'rev-parse', '--short=10', 'HEAD' ]
|
tempfile = "git_sha1.h.tmp"
|
||||||
|
with open(tempfile, "w") as f:
|
||||||
|
args = [ 'sh', Dir('#').abspath + '/git_sha1_gen.sh' ]
|
||||||
try:
|
try:
|
||||||
(commit, foo) = subprocess.Popen(args, stdout=subprocess.PIPE).communicate()
|
subprocess.Popen(args, stdout=f)
|
||||||
except:
|
except:
|
||||||
print "Warning: exception in write_git_sha1_h_file()"
|
print "Warning: exception in write_git_sha1_h_file()"
|
||||||
# git log command didn't work
|
|
||||||
if not os.path.exists(filename):
|
|
||||||
dirname = os.path.dirname(filename)
|
|
||||||
if dirname and not os.path.exists(dirname):
|
|
||||||
os.makedirs(dirname)
|
|
||||||
# create an empty file if none already exists
|
|
||||||
f = open(filename, "w")
|
|
||||||
f.close()
|
|
||||||
return
|
return
|
||||||
|
|
||||||
# note that commit[:-1] removes the trailing newline character
|
|
||||||
commit = '#define MESA_GIT_SHA1 "git-%s"\n' % commit[:-1]
|
|
||||||
tempfile = "git_sha1.h.tmp"
|
|
||||||
f = open(tempfile, "w")
|
|
||||||
f.write(commit)
|
|
||||||
f.close()
|
|
||||||
if not os.path.exists(filename) or not filecmp.cmp(tempfile, filename):
|
if not os.path.exists(filename) or not filecmp.cmp(tempfile, filename):
|
||||||
# The filename does not exist or it's different from the new file,
|
# The filename does not exist or it's different from the new file,
|
||||||
# so replace old file with new.
|
# so replace old file with new.
|
||||||
|
|
|
@ -46,12 +46,7 @@ LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/, git_sha1.h)
|
||||||
$(intermediates)/git_sha1.h: $(wildcard $(MESA_TOP)/.git/logs/HEAD)
|
$(intermediates)/git_sha1.h: $(wildcard $(MESA_TOP)/.git/logs/HEAD)
|
||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
@echo "GIT-SHA1: $(PRIVATE_MODULE) <= git"
|
@echo "GIT-SHA1: $(PRIVATE_MODULE) <= git"
|
||||||
$(hide) touch $@
|
$(hide) sh $(MESA_TOP)/git_sha1_gen.sh > $@
|
||||||
$(hide) if which git > /dev/null; then \
|
|
||||||
git --git-dir $(MESA_TOP)/.git log -n 1 --oneline | \
|
|
||||||
sed 's/^\([^ ]*\) .*/#define MESA_GIT_SHA1 "git-\1"/' \
|
|
||||||
> $@; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
LOCAL_EXPORT_C_INCLUDE_DIRS := $(intermediates)
|
LOCAL_EXPORT_C_INCLUDE_DIRS := $(intermediates)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue