Merge pull request #1054 from sipa/buildinfo
Build identification strings
This commit is contained in:
commit
702764f53b
20 changed files with 193 additions and 31 deletions
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
src/version.cpp export-subst
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,6 +1,7 @@
|
||||||
src/*.exe
|
src/*.exe
|
||||||
src/bitcoin
|
src/bitcoin
|
||||||
src/bitcoind
|
src/bitcoind
|
||||||
|
src/build.h
|
||||||
.*.swp
|
.*.swp
|
||||||
*.*~*
|
*.*~*
|
||||||
*.bak
|
*.bak
|
||||||
|
|
|
@ -80,6 +80,15 @@ contains(BITCOIN_NEED_QT_PLUGINS, 1) {
|
||||||
# do not enable this on windows, as it will result in a non-working executable!
|
# do not enable this on windows, as it will result in a non-working executable!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# regenerate src/build.h
|
||||||
|
!windows || contains(USE_BUILD_INFO, 1) {
|
||||||
|
genbuild.commands = share/genbuild.sh src/build.h
|
||||||
|
genbuild.target = src/build.h
|
||||||
|
"src/version.cpp".depends += src/build.h
|
||||||
|
QMAKE_EXTRA_TARGETS += genbuild
|
||||||
|
DEFINES += HAVE_BUILD_INFO
|
||||||
|
}
|
||||||
|
|
||||||
# disable quite some warnings because bitcoin core "sins" a lot
|
# disable quite some warnings because bitcoin core "sins" a lot
|
||||||
QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wno-strict-aliasing -Wno-invalid-offsetof -Wno-unused-variable -Wno-unused-parameter -Wno-sign-compare -Wno-char-subscripts -Wno-unused-value -Wno-sequence-point -Wno-parentheses -Wno-unknown-pragmas -Wno-switch
|
QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wno-strict-aliasing -Wno-invalid-offsetof -Wno-unused-variable -Wno-unused-parameter -Wno-sign-compare -Wno-char-subscripts -Wno-unused-value -Wno-sequence-point -Wno-parentheses -Wno-unknown-pragmas -Wno-switch
|
||||||
|
|
||||||
|
@ -161,6 +170,7 @@ SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \
|
||||||
src/qt/aboutdialog.cpp \
|
src/qt/aboutdialog.cpp \
|
||||||
src/qt/editaddressdialog.cpp \
|
src/qt/editaddressdialog.cpp \
|
||||||
src/qt/bitcoinaddressvalidator.cpp \
|
src/qt/bitcoinaddressvalidator.cpp \
|
||||||
|
src/version.cpp \
|
||||||
src/util.cpp \
|
src/util.cpp \
|
||||||
src/netbase.cpp \
|
src/netbase.cpp \
|
||||||
src/key.cpp \
|
src/key.cpp \
|
||||||
|
|
|
@ -45,25 +45,30 @@ script: |
|
||||||
#
|
#
|
||||||
cd bitcoin
|
cd bitcoin
|
||||||
mkdir -p $OUTDIR/src
|
mkdir -p $OUTDIR/src
|
||||||
cp -a . $OUTDIR/src
|
git archive HEAD | tar -x -C $OUTDIR/src
|
||||||
rm -rf $OUTDIR/src/.git
|
|
||||||
cp $OUTDIR/src/doc/README_windows.txt $OUTDIR/readme.txt
|
cp $OUTDIR/src/doc/README_windows.txt $OUTDIR/readme.txt
|
||||||
cp $OUTDIR/src/COPYING $OUTDIR/license.txt
|
cp $OUTDIR/src/COPYING $OUTDIR/license.txt
|
||||||
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
|
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
|
||||||
export FAKETIME=$REFERENCE_DATETIME
|
export FAKETIME=$REFERENCE_DATETIME
|
||||||
export TZ=UTC
|
export TZ=UTC
|
||||||
$HOME/qt/src/bin/qmake -spec unsupported/win32-g++-cross MINIUPNPC_LIB_PATH=$HOME/build/miniupnpc MINIUPNPC_INCLUDE_PATH=$HOME/build/ BDB_LIB_PATH=$HOME/build/db-4.8.30.NC/build_unix BDB_INCLUDE_PATH=$HOME/build/db-4.8.30.NC/build_unix BOOST_LIB_PATH=$HOME/build/boost_1_47_0/stage/lib BOOST_INCLUDE_PATH=$HOME/build/boost_1_47_0 BOOST_LIB_SUFFIX=-mt-s BOOST_THREAD_LIB_SUFFIX=_win32-mt-s OPENSSL_LIB_PATH=$HOME/build/openssl-1.0.0e OPENSSL_INCLUDE_PATH=$HOME/build/openssl-1.0.0e/include QRENCODE_LIB_PATH=$HOME/build/qrencode-3.2.0/.libs QRENCODE_INCLUDE_PATH=$HOME/build/qrencode-3.2.0 USE_QRCODE=1 INCLUDEPATH=$HOME/build DEFINES=BOOST_THREAD_USE_LIB BITCOIN_NEED_QT_PLUGINS=1 QMAKE_LRELEASE=lrelease QMAKE_CXXFLAGS=-frandom-seed=bitcoin QMAKE_LFLAGS=-frandom-seed=bitcoin
|
$HOME/qt/src/bin/qmake -spec unsupported/win32-g++-cross MINIUPNPC_LIB_PATH=$HOME/build/miniupnpc MINIUPNPC_INCLUDE_PATH=$HOME/build/ BDB_LIB_PATH=$HOME/build/db-4.8.30.NC/build_unix BDB_INCLUDE_PATH=$HOME/build/db-4.8.30.NC/build_unix BOOST_LIB_PATH=$HOME/build/boost_1_47_0/stage/lib BOOST_INCLUDE_PATH=$HOME/build/boost_1_47_0 BOOST_LIB_SUFFIX=-mt-s BOOST_THREAD_LIB_SUFFIX=_win32-mt-s OPENSSL_LIB_PATH=$HOME/build/openssl-1.0.0e OPENSSL_INCLUDE_PATH=$HOME/build/openssl-1.0.0e/include QRENCODE_LIB_PATH=$HOME/build/qrencode-3.2.0/.libs QRENCODE_INCLUDE_PATH=$HOME/build/qrencode-3.2.0 USE_QRCODE=1 INCLUDEPATH=$HOME/build DEFINES=BOOST_THREAD_USE_LIB BITCOIN_NEED_QT_PLUGINS=1 QMAKE_LRELEASE=lrelease QMAKE_CXXFLAGS=-frandom-seed=bitcoin QMAKE_LFLAGS=-frandom-seed=bitcoin USE_BUILD_INFO=1
|
||||||
make $MAKEOPTS
|
make $MAKEOPTS
|
||||||
cp release/bitcoin-qt.exe $OUTDIR/
|
cp release/bitcoin-qt.exe $OUTDIR/
|
||||||
#
|
#
|
||||||
cd src
|
cd src
|
||||||
sed 's/$(DEBUGFLAGS)/-frandom-seed=bitcoin/' -i makefile.linux-mingw
|
|
||||||
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
|
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
|
||||||
export FAKETIME=$REFERENCE_DATETIME
|
export FAKETIME=$REFERENCE_DATETIME
|
||||||
export TZ=UTC
|
export TZ=UTC
|
||||||
make -f makefile.linux-mingw $MAKEOPTS DEPSDIR=$HOME/build bitcoind.exe USE_UPNP=0
|
make -f makefile.linux-mingw $MAKEOPTS DEPSDIR=$HOME/build bitcoind.exe USE_UPNP=0 DEBUGFLAGS="-frandom-seed=bitcoin"
|
||||||
i586-mingw32msvc-strip bitcoind.exe
|
i586-mingw32msvc-strip bitcoind.exe
|
||||||
makensis ../share/setup.nsi
|
|
||||||
cp ../share/bitcoin-*-win32-setup.exe $OUTDIR/
|
|
||||||
mkdir $OUTDIR/daemon
|
mkdir $OUTDIR/daemon
|
||||||
cp bitcoind.exe $OUTDIR/daemon
|
cp bitcoind.exe $OUTDIR/daemon
|
||||||
|
cd ..
|
||||||
|
mkdir nsis
|
||||||
|
git archive HEAD | tar -x -C nsis
|
||||||
|
cd nsis/src
|
||||||
|
mkdir ../release
|
||||||
|
cp ../../release/* ../release/
|
||||||
|
cp ../../src/*.exe .
|
||||||
|
makensis ../share/setup.nsi
|
||||||
|
cp ../share/bitcoin-*-win32-setup.exe $OUTDIR/
|
||||||
|
|
|
@ -42,13 +42,11 @@ script: |
|
||||||
#
|
#
|
||||||
cd bitcoin
|
cd bitcoin
|
||||||
mkdir -p $OUTDIR/src
|
mkdir -p $OUTDIR/src
|
||||||
cp -a . $OUTDIR/src
|
git archive HEAD | tar -x -C $OUTDIR/src
|
||||||
rm -rf $OUTDIR/src/.git
|
|
||||||
cp $OUTDIR/src/doc/README $OUTDIR
|
cp $OUTDIR/src/doc/README $OUTDIR
|
||||||
cp $OUTDIR/src/COPYING $OUTDIR
|
cp $OUTDIR/src/COPYING $OUTDIR
|
||||||
cd src
|
cd src
|
||||||
sed 's/$(DEBUGFLAGS)//' -i makefile.unix
|
make -f makefile.unix STATIC=1 OPENSSL_INCLUDE_PATH="$INSTDIR/include" OPENSSL_LIB_PATH="$INSTDIR/lib" $MAKEOPTS bitcoind USE_UPNP=0 DEBUGFLAGS=
|
||||||
make -f makefile.unix STATIC=1 OPENSSL_INCLUDE_PATH="$INSTDIR/include" OPENSSL_LIB_PATH="$INSTDIR/lib" $MAKEOPTS bitcoind USE_UPNP=0
|
|
||||||
mkdir -p $OUTDIR/bin/$GBUILD_BITS
|
mkdir -p $OUTDIR/bin/$GBUILD_BITS
|
||||||
install -s bitcoind $OUTDIR/bin/$GBUILD_BITS
|
install -s bitcoind $OUTDIR/bin/$GBUILD_BITS
|
||||||
cd ..
|
cd ..
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
* update (commit) version in sources
|
* update (commit) version in sources
|
||||||
bitcoin-qt.pro
|
bitcoin-qt.pro
|
||||||
src/main.h (CLIENT_VERSION : PROTOCOL_VERSION in serialize.h is updated only on protocol changes)
|
src/version.cpp
|
||||||
share/setup.nsi
|
share/setup.nsi
|
||||||
doc/README*
|
doc/README*
|
||||||
|
|
||||||
|
|
35
share/genbuild.sh
Executable file
35
share/genbuild.sh
Executable file
|
@ -0,0 +1,35 @@
|
||||||
|
#!/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
|
|
@ -310,7 +310,7 @@ bool AppInit2(int argc, char* argv[])
|
||||||
if (!fDebug && !pszSetDataDir[0])
|
if (!fDebug && !pszSetDataDir[0])
|
||||||
ShrinkDebugFile();
|
ShrinkDebugFile();
|
||||||
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
|
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
|
||||||
printf("Bitcoin version %s\n", FormatFullVersion().c_str());
|
printf("Bitcoin version %s (%s)\n", FormatFullVersion().c_str(), CLIENT_DATE.c_str());
|
||||||
printf("Default data directory %s\n", GetDefaultDataDir().c_str());
|
printf("Default data directory %s\n", GetDefaultDataDir().c_str());
|
||||||
|
|
||||||
if (GetBoolArg("-loadblockindextest"))
|
if (GetBoolArg("-loadblockindextest"))
|
||||||
|
|
|
@ -18,11 +18,6 @@ using namespace boost;
|
||||||
// Global state
|
// Global state
|
||||||
//
|
//
|
||||||
|
|
||||||
// Name of client reported in the 'version' message. Report the same name
|
|
||||||
// for both bitcoind and bitcoin-qt, to make it harder for attackers to
|
|
||||||
// target servers or GUI users specifically.
|
|
||||||
const std::string CLIENT_NAME("Satoshi");
|
|
||||||
|
|
||||||
CCriticalSection cs_setpwalletRegistered;
|
CCriticalSection cs_setpwalletRegistered;
|
||||||
set<CWallet*> setpwalletRegistered;
|
set<CWallet*> setpwalletRegistered;
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#include "key.h"
|
#include "key.h"
|
||||||
#include "script.h"
|
#include "script.h"
|
||||||
#include "db.h"
|
#include "db.h"
|
||||||
|
#include "version.h"
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
#include <io.h> /* for _commit */
|
#include <io.h> /* for _commit */
|
||||||
|
@ -30,10 +31,6 @@ class CInv;
|
||||||
class CRequestTracker;
|
class CRequestTracker;
|
||||||
class CNode;
|
class CNode;
|
||||||
|
|
||||||
static const int CLIENT_VERSION = 60099;
|
|
||||||
static const bool VERSION_IS_BETA = true;
|
|
||||||
extern const std::string CLIENT_NAME;
|
|
||||||
|
|
||||||
static const unsigned int MAX_BLOCK_SIZE = 1000000;
|
static const unsigned int MAX_BLOCK_SIZE = 1000000;
|
||||||
static const unsigned int MAX_BLOCK_SIZE_GEN = MAX_BLOCK_SIZE/2;
|
static const unsigned int MAX_BLOCK_SIZE_GEN = MAX_BLOCK_SIZE/2;
|
||||||
static const int MAX_BLOCK_SIGOPS = MAX_BLOCK_SIZE/50;
|
static const int MAX_BLOCK_SIGOPS = MAX_BLOCK_SIZE/50;
|
||||||
|
|
|
@ -43,6 +43,7 @@ LIBS += -l mingwthrd -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l w
|
||||||
HEADERS = $(wildcard *.h)
|
HEADERS = $(wildcard *.h)
|
||||||
|
|
||||||
OBJS= \
|
OBJS= \
|
||||||
|
obj/version.o \
|
||||||
obj/checkpoints.o \
|
obj/checkpoints.o \
|
||||||
obj/netbase.o \
|
obj/netbase.o \
|
||||||
obj/addrman.o \
|
obj/addrman.o \
|
||||||
|
@ -64,10 +65,14 @@ OBJS= \
|
||||||
|
|
||||||
all: bitcoind.exe
|
all: bitcoind.exe
|
||||||
|
|
||||||
|
build.h: FORCE
|
||||||
|
@../share/genbuild.sh build.h
|
||||||
|
DEFS += -DHAVE_BUILD_INFO
|
||||||
|
|
||||||
obj/%.o: %.cpp $(HEADERS)
|
obj/%.o: %.cpp $(HEADERS)
|
||||||
i586-mingw32msvc-g++ -c $(CFLAGS) -o $@ $<
|
i586-mingw32msvc-g++ -c $(CFLAGS) -o $@ $<
|
||||||
|
|
||||||
bitcoind.exe: $(OBJS:obj/%=obj/%)
|
bitcoind.exe: build.h $(OBJS:obj/%=obj/%)
|
||||||
i586-mingw32msvc-g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
|
i586-mingw32msvc-g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
|
||||||
|
|
||||||
|
|
||||||
|
@ -85,3 +90,6 @@ clean:
|
||||||
-rm -f headers.h.gch
|
-rm -f headers.h.gch
|
||||||
-rm -f bitcoind.exe
|
-rm -f bitcoind.exe
|
||||||
-rm -f test_bitcoin.exe
|
-rm -f test_bitcoin.exe
|
||||||
|
-rm -f src/build.h
|
||||||
|
|
||||||
|
FORCE:
|
||||||
|
|
|
@ -41,6 +41,7 @@ LIBS += -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l winmm -l shell
|
||||||
HEADERS = $(wildcard *.h)
|
HEADERS = $(wildcard *.h)
|
||||||
|
|
||||||
OBJS= \
|
OBJS= \
|
||||||
|
obj/version.o \
|
||||||
obj/checkpoints.o \
|
obj/checkpoints.o \
|
||||||
obj/netbase.o \
|
obj/netbase.o \
|
||||||
obj/addrman.o \
|
obj/addrman.o \
|
||||||
|
@ -82,3 +83,4 @@ clean:
|
||||||
-del /Q obj\test\*
|
-del /Q obj\test\*
|
||||||
-del /Q test\*.o
|
-del /Q test\*.o
|
||||||
-del /Q headers.h.gch
|
-del /Q headers.h.gch
|
||||||
|
-del /Q build.h
|
||||||
|
|
|
@ -65,6 +65,7 @@ CFLAGS += -Wextra -Wno-sign-compare -Wno-char-subscripts -Wno-invalid-offsetof -
|
||||||
$(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
|
$(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
|
||||||
|
|
||||||
OBJS= \
|
OBJS= \
|
||||||
|
obj/version.o \
|
||||||
obj/checkpoints.o \
|
obj/checkpoints.o \
|
||||||
obj/netbase.o \
|
obj/netbase.o \
|
||||||
obj/addrman.o \
|
obj/addrman.o \
|
||||||
|
@ -99,6 +100,10 @@ all: bitcoind
|
||||||
-include obj/*.P
|
-include obj/*.P
|
||||||
-include obj-test/*.P
|
-include obj-test/*.P
|
||||||
|
|
||||||
|
build.h: FORCE
|
||||||
|
@../share/genbuild.sh build.h
|
||||||
|
DEFS += -DHAVE_BUILD_INFO
|
||||||
|
|
||||||
obj/%.o: %.cpp
|
obj/%.o: %.cpp
|
||||||
$(CXX) -c $(CFLAGS) -MMD -o $@ $<
|
$(CXX) -c $(CFLAGS) -MMD -o $@ $<
|
||||||
@cp $(@:%.o=%.d) $(@:%.o=%.P); \
|
@cp $(@:%.o=%.d) $(@:%.o=%.P); \
|
||||||
|
@ -106,7 +111,7 @@ obj/%.o: %.cpp
|
||||||
-e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
|
-e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
|
||||||
rm -f $(@:%.o=%.d)
|
rm -f $(@:%.o=%.d)
|
||||||
|
|
||||||
bitcoind: $(OBJS:obj/%=obj/%)
|
bitcoind: build.h $(OBJS:obj/%=obj/%)
|
||||||
$(CXX) $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
|
$(CXX) $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
|
||||||
|
|
||||||
TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp))
|
TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp))
|
||||||
|
@ -127,3 +132,6 @@ clean:
|
||||||
-rm -f obj-test/*.o
|
-rm -f obj-test/*.o
|
||||||
-rm -f obj/*.P
|
-rm -f obj/*.P
|
||||||
-rm -f obj-test/*.P
|
-rm -f obj-test/*.P
|
||||||
|
-rm -f src/build.h
|
||||||
|
|
||||||
|
FORCE:
|
||||||
|
|
|
@ -85,6 +85,7 @@ xCXXFLAGS=-pthread -Wextra -Wno-sign-compare -Wno-char-subscripts -Wno-invalid-o
|
||||||
$(DEBUGFLAGS) $(DEFS) $(HARDENING) $(CXXFLAGS)
|
$(DEBUGFLAGS) $(DEFS) $(HARDENING) $(CXXFLAGS)
|
||||||
|
|
||||||
OBJS= \
|
OBJS= \
|
||||||
|
obj/version.o \
|
||||||
obj/checkpoints.o \
|
obj/checkpoints.o \
|
||||||
obj/netbase.o \
|
obj/netbase.o \
|
||||||
obj/addrman.o \
|
obj/addrman.o \
|
||||||
|
@ -111,6 +112,10 @@ all: bitcoind
|
||||||
-include obj/*.P
|
-include obj/*.P
|
||||||
-include obj-test/*.P
|
-include obj-test/*.P
|
||||||
|
|
||||||
|
build.h: FORCE
|
||||||
|
@../share/genbuild.sh build.h
|
||||||
|
DEFS += -DHAVE_BUILD_INFO
|
||||||
|
|
||||||
obj/%.o: %.cpp
|
obj/%.o: %.cpp
|
||||||
$(CXX) -c $(xCXXFLAGS) -MMD -o $@ $<
|
$(CXX) -c $(xCXXFLAGS) -MMD -o $@ $<
|
||||||
@cp $(@:%.o=%.d) $(@:%.o=%.P); \
|
@cp $(@:%.o=%.d) $(@:%.o=%.P); \
|
||||||
|
@ -118,7 +123,7 @@ obj/%.o: %.cpp
|
||||||
-e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
|
-e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
|
||||||
rm -f $(@:%.o=%.d)
|
rm -f $(@:%.o=%.d)
|
||||||
|
|
||||||
bitcoind: $(OBJS:obj/%=obj/%)
|
bitcoind: build.h $(OBJS:obj/%=obj/%)
|
||||||
$(CXX) $(xCXXFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS)
|
$(CXX) $(xCXXFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS)
|
||||||
|
|
||||||
TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp))
|
TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp))
|
||||||
|
@ -139,3 +144,6 @@ clean:
|
||||||
-rm -f obj-test/*.o
|
-rm -f obj-test/*.o
|
||||||
-rm -f obj/*.P
|
-rm -f obj/*.P
|
||||||
-rm -f obj-test/*.P
|
-rm -f obj-test/*.P
|
||||||
|
-rm -f src/build.h
|
||||||
|
|
||||||
|
FORCE:
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
#include "ui_aboutdialog.h"
|
#include "ui_aboutdialog.h"
|
||||||
#include "clientmodel.h"
|
#include "clientmodel.h"
|
||||||
|
|
||||||
|
#include "version.h"
|
||||||
|
|
||||||
AboutDialog::AboutDialog(QWidget *parent) :
|
AboutDialog::AboutDialog(QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::AboutDialog)
|
ui(new Ui::AboutDialog)
|
||||||
|
|
|
@ -88,3 +88,8 @@ QString ClientModel::formatFullVersion() const
|
||||||
{
|
{
|
||||||
return QString::fromStdString(FormatFullVersion());
|
return QString::fromStdString(FormatFullVersion());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString ClientModel::formatBuildDate() const
|
||||||
|
{
|
||||||
|
return QString::fromStdString(CLIENT_DATE);
|
||||||
|
}
|
||||||
|
|
|
@ -37,6 +37,7 @@ public:
|
||||||
QString getStatusBarWarnings() const;
|
QString getStatusBarWarnings() const;
|
||||||
|
|
||||||
QString formatFullVersion() const;
|
QString formatFullVersion() const;
|
||||||
|
QString formatBuildDate() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
OptionsModel *optionsModel;
|
OptionsModel *optionsModel;
|
||||||
|
|
|
@ -1066,12 +1066,7 @@ string FormatVersion(int nVersion)
|
||||||
|
|
||||||
string FormatFullVersion()
|
string FormatFullVersion()
|
||||||
{
|
{
|
||||||
string s = FormatVersion(CLIENT_VERSION);
|
return CLIENT_BUILD;
|
||||||
if (VERSION_IS_BETA) {
|
|
||||||
s += "-";
|
|
||||||
s += _("beta");
|
|
||||||
}
|
|
||||||
return s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Format the subversion field according to BIP 14 spec (https://en.bitcoin.it/wiki/BIP_0014)
|
// Format the subversion field according to BIP 14 spec (https://en.bitcoin.it/wiki/BIP_0014)
|
||||||
|
|
77
src/version.cpp
Normal file
77
src/version.cpp
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
// Copyright (c) 2012 The Bitcoin developers
|
||||||
|
// Distributed under the MIT/X11 software license, see the accompanying
|
||||||
|
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include "version.h"
|
||||||
|
|
||||||
|
// Name of client reported in the 'version' message. Report the same name
|
||||||
|
// for both bitcoind and bitcoin-qt, to make it harder for attackers to
|
||||||
|
// target servers or GUI users specifically.
|
||||||
|
const std::string CLIENT_NAME("Satoshi");
|
||||||
|
|
||||||
|
// Client version number
|
||||||
|
#define CLIENT_VERSION_MAJOR 0
|
||||||
|
#define CLIENT_VERSION_MINOR 6
|
||||||
|
#define CLIENT_VERSION_REVISION 0
|
||||||
|
#define CLIENT_VERSION_BUILD 99
|
||||||
|
#define CLIENT_VERSION_SUFFIX "-beta"
|
||||||
|
|
||||||
|
const int CLIENT_VERSION = 1000000 * CLIENT_VERSION_MAJOR
|
||||||
|
+ 10000 * CLIENT_VERSION_MINOR
|
||||||
|
+ 100 * CLIENT_VERSION_REVISION
|
||||||
|
+ 1 * CLIENT_VERSION_BUILD;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// The following part of the code determines the CLIENT_BUILD variable.
|
||||||
|
// Several mechanisms are used for this:
|
||||||
|
// * first, if HAVE_BUILD_INFO is defined, include build.h, a file that is
|
||||||
|
// generated by the build environment, possibly containing the output
|
||||||
|
// of git-describe in a macro called BUILD_DESC
|
||||||
|
// * secondly, if this is an exported version of the code, GIT_ARCHIVE will
|
||||||
|
// be defined (automatically using the export-subst git attribute), and
|
||||||
|
// GIT_COMMIT will contain the commit id.
|
||||||
|
// * then, three options exist for determining CLIENT_BUILD:
|
||||||
|
// * if BUILD_DESC is defined, use that literally (output of git-describe)
|
||||||
|
// * if not, but GIT_COMMIT is defined, use v[maj].[min].[rev].[build]-g[commit]
|
||||||
|
// * otherwise, use v[maj].[min].[rev].[build]-unk
|
||||||
|
// finally CLIENT_VERSION_SUFFIX is added
|
||||||
|
|
||||||
|
// First, include build.h if requested
|
||||||
|
#ifdef HAVE_BUILD_INFO
|
||||||
|
# include "build.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// git will put "#define GIT_ARCHIVE 1" on the next line inside archives. $Format:%n#define GIT_ARCHIVE 1$
|
||||||
|
#ifdef GIT_ARCHIVE
|
||||||
|
# define GIT_COMMIT_ID "$Format:%h$"
|
||||||
|
# define GIT_COMMIT_DATE "$Format:%cD"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define STRINGIFY(s) #s
|
||||||
|
|
||||||
|
#define BUILD_DESC_FROM_COMMIT(maj,min,rev,build,commit) \
|
||||||
|
"v" STRINGIFY(maj) "." STRINGIFY(min) "." STRINGIFY(rev) "." STRINGIFY(build) "-g" commit
|
||||||
|
|
||||||
|
#define BUILD_DESC_FROM_UNKNOWN(maj,min,rev,build) \
|
||||||
|
"v" STRINGIFY(maj) "." STRINGIFY(min) "." STRINGIFY(rev) "." STRINGIFY(build) "-unk"
|
||||||
|
|
||||||
|
#ifndef BUILD_DESC
|
||||||
|
# ifdef GIT_COMMIT_ID
|
||||||
|
# define BUILD_DESC BUILD_DESC_FROM_COMMIT(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION, CLIENT_VERSION_BUILD, GIT_COMMIT_ID)
|
||||||
|
# else
|
||||||
|
# define BUILD_DESC BUILD_DESC_FROM_UNKNOWN(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION, CLIENT_VERSION_BUILD)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BUILD_DATE
|
||||||
|
# ifdef GIT_COMMIT_DATE
|
||||||
|
# define BUILD_DATE GIT_COMMIT_DATE
|
||||||
|
# else
|
||||||
|
# define BUILD_DATE __DATE__ ", " __TIME__
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const std::string CLIENT_BUILD(BUILD_DESC CLIENT_VERSION_SUFFIX);
|
||||||
|
const std::string CLIENT_DATE(BUILD_DATE);
|
14
src/version.h
Normal file
14
src/version.h
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
// Copyright (c) 2012 The Bitcoin developers
|
||||||
|
// Distributed under the MIT/X11 software license, see the accompanying
|
||||||
|
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
#ifndef BITCOIN_VERSION_H
|
||||||
|
#define BITCOIN_VERSION_H
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
extern const std::string CLIENT_NAME;
|
||||||
|
extern const std::string CLIENT_BUILD;
|
||||||
|
extern const std::string CLIENT_DATE;
|
||||||
|
extern const int CLIENT_VERSION;
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in a new issue