2df5e3427c
Don't define BUILD_DATE at all when no git version information is available. `version.cpp` will then define it for us correctly to the last commit date. This has been fixed and broken many times over 0.9 history (21cc8bd
,ef1e984
), please don't touch this code unless you plan on testing all possible scenarios including gitian builds. Fixes #3570.
41 lines
956 B
Bash
Executable file
41 lines
956 B
Bash
Executable file
#!/bin/sh
|
|
if [ $# -gt 1 ]; then
|
|
cd "$2"
|
|
fi
|
|
if [ $# -gt 0 ]; then
|
|
FILE="$1"
|
|
shift
|
|
if [ -f "$FILE" ]; then
|
|
INFO="$(head -n 1 "$FILE")"
|
|
fi
|
|
else
|
|
echo "Usage: $0 <filename> <srcroot>"
|
|
exit 1
|
|
fi
|
|
|
|
DESC=""
|
|
LAST_COMMIT_DATE=""
|
|
if [ -e "$(which git)" -a -d ".git" ]; then
|
|
# clean 'dirty' status of touched files that haven't been modified
|
|
git diff >/dev/null 2>/dev/null
|
|
|
|
# get a string like "v0.6.0-66-g59887e8-dirty"
|
|
DESC="$(git describe --dirty 2>/dev/null)"
|
|
|
|
# get a string like "2012-04-10 16:27:19 +0200"
|
|
LAST_COMMIT_DATE="$(git log -n 1 --format="%ci")"
|
|
fi
|
|
|
|
if [ -n "$DESC" ]; then
|
|
NEWINFO="#define BUILD_DESC \"$DESC\""
|
|
else
|
|
NEWINFO="// No build information available"
|
|
fi
|
|
|
|
# only update build.h if necessary
|
|
if [ "$INFO" != "$NEWINFO" ]; then
|
|
echo "$NEWINFO" >"$FILE"
|
|
if [ -n "$LAST_COMMIT_DATE" ]; then
|
|
echo "#define BUILD_DATE \"$LAST_COMMIT_DATE\"" >> "$FILE"
|
|
fi
|
|
fi
|