Merge pull request #56 from sepeth/refactor-detect-version

Refactor build_tools/build_detect_version
This commit is contained in:
Kai Liu 2014-01-06 11:50:24 -08:00
commit be271c3357
3 changed files with 16 additions and 33 deletions

1
.gitignore vendored
View File

@ -19,5 +19,4 @@ sst_dump
util/build_version.cc
build_tools/VALGRIND_LOGS/
coverage/COVERAGE_REPORT
util/build_version.cc.tmp
.gdbhistory

View File

@ -172,7 +172,11 @@ echo "MEMENV_SOURCES=helpers/memenv/memenv.cc" >> $OUTPUT
if [ "$CROSS_COMPILE" = "true" -o "$FBCODE_BUILD" = "true" ]; then
# Cross-compiling; do not try any compilation tests.
# Also don't need any compilation tests if compiling on fbcode
true
# TODO(kailiu) For some fb-supported environments, they have trouble finding
# symbols from gflags if -lgflags wasn't specified. As a temporary resort,
# we added it to PLATFORM_LDFLAGS although for some environments it is
# unnecessary.
PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -gflags"
else
# do fPIC on 64 bit in non-fbcode environment
case "$TARGET_OS" in

View File

@ -5,38 +5,18 @@
# is then built as a regular source file as part of the compilation process.
# One can run "strings executable_filename | grep _build_" to find the version of
# the source that we used to build the executable file.
#
# create git version file
VFILE=$PWD/util/build_version.cc.tmp
trap "rm $VFILE" EXIT
OUTFILE="$PWD/util/build_version.cc"
# check to see if git is in the path
which git > /dev/null
if [ "$?" = 0 ]; then
env -i git rev-parse HEAD 2>&1 |
awk '
BEGIN {
print "#include \"build_version.h\"\n"
}
{ print "const char* rocksdb_build_git_sha = \"rocksdb_build_git_sha:" $0"\";" }
' > ${VFILE}
else
echo "git not found" |
awk '
BEGIN {
print "#include \"build_version.h\""
}
{ print "const char* rocksdb_build_git_sha = \"rocksdb_build_git_sha:git not found\";" }
' > ${VFILE}
GIT_SHA=""
if command -v git >/dev/null 2>&1; then
GIT_SHA=$(git rev-parse HEAD 2>/dev/null)
fi
echo "const char* rocksdb_build_git_datetime = \"rocksdb_build_git_datetime:$(date)\";" >> ${VFILE}
echo "const char* rocksdb_build_compile_date = __DATE__;" >> ${VFILE}
echo "const char* rocksdb_build_compile_time = __TIME__;" >> ${VFILE}
OUTFILE=$PWD/util/build_version.cc
if [ ! -e $OUTFILE ] || ! cmp -s $VFILE $OUTFILE; then
cp $VFILE $OUTFILE
fi
cat > "${OUTFILE}" <<EOF
#include "build_version.h"
const char* rocksdb_build_git_sha = "rocksdb_build_git_sha:${GIT_SHA}";
const char* rocksdb_build_git_datetime = "rocksdb_build_git_datetime:$(date)";
const char* rocksdb_build_compile_date = __DATE__;
const char* rocksdb_build_compile_time = __TIME__;
EOF