mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-20 10:38:42 +01:00
a20c0d0f67
All client version information is moved to version.cpp, which optionally (-DHAVE_BUILD_INFO) includes build.h. build.h is automatically generated on supporting platforms via contrib/genbuild.sh, using git describe. The git export-subst attribute is used to put the commit id statically in version.cpp inside generated archives, and this value is used if no build.h is present. The gitian descriptors are modified to use git archive instead of a copy, to create the src/ directory in the output. This way, src/src/version.cpp will contain the static commit id. To prevent gitian builds from getting the "-dirty" marker in their git-describe generated identifiers, no touching of files or running sed on the makefile is performed anymore. This does not seem to influence determinism.
36 lines
793 B
Bash
Executable File
36 lines
793 B
Bash
Executable File
#!/bin/sh
|
|
|
|
if [ $# -gt 0 ]; then
|
|
FILE="$1"
|
|
shift
|
|
if [ -f "$FILE" ]; then
|
|
INFO="$(head -n 1 "$FILE")"
|
|
fi
|
|
else
|
|
echo "Usage: $0 <filename>"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -e "$(which 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"
|
|
TIME="$(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"
|
|
echo "#define BUILD_DATE \"$TIME\"" >>"$FILE"
|
|
fi
|