mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 20:42:59 +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.
343 lines
10 KiB
Prolog
343 lines
10 KiB
Prolog
TEMPLATE = app
|
|
TARGET =
|
|
VERSION = 0.6.0
|
|
INCLUDEPATH += src src/json src/qt
|
|
DEFINES += QT_GUI BOOST_THREAD_USE_LIB
|
|
CONFIG += no_include_pwd
|
|
|
|
# for boost 1.37, add -mt to the boost libraries
|
|
# use: qmake BOOST_LIB_SUFFIX=-mt
|
|
# for boost thread win32 with _win32 sufix
|
|
# use: BOOST_THREAD_LIB_SUFFIX=_win32-...
|
|
# or when linking against a specific BerkelyDB version: BDB_LIB_SUFFIX=-4.8
|
|
|
|
# Dependency library locations can be customized with BOOST_INCLUDE_PATH,
|
|
# BOOST_LIB_PATH, BDB_INCLUDE_PATH, BDB_LIB_PATH
|
|
# OPENSSL_INCLUDE_PATH and OPENSSL_LIB_PATH respectively
|
|
|
|
OBJECTS_DIR = build
|
|
MOC_DIR = build
|
|
UI_DIR = build
|
|
|
|
# use: qmake "RELEASE=1"
|
|
contains(RELEASE, 1) {
|
|
# Mac: compile for maximum compatibility (10.5, 32-bit)
|
|
macx:QMAKE_CXXFLAGS += -mmacosx-version-min=10.5 -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk
|
|
|
|
!windows:!macx {
|
|
# Linux: static link
|
|
LIBS += -Wl,-Bstatic
|
|
}
|
|
}
|
|
|
|
# use: qmake "USE_QRCODE=1"
|
|
# libqrencode (http://fukuchi.org/works/qrencode/index.en.html) must be installed for support
|
|
contains(USE_QRCODE, 1) {
|
|
message(Building with QRCode support)
|
|
DEFINES += USE_QRCODE
|
|
LIBS += -lqrencode
|
|
}
|
|
|
|
# use: qmake "USE_UPNP=1" ( enabled by default; default)
|
|
# or: qmake "USE_UPNP=0" (disabled by default)
|
|
# or: qmake "USE_UPNP=-" (not supported)
|
|
# miniupnpc (http://miniupnp.free.fr/files/) must be installed for support
|
|
contains(USE_UPNP, -) {
|
|
message(Building without UPNP support)
|
|
} else {
|
|
message(Building with UPNP support)
|
|
count(USE_UPNP, 0) {
|
|
USE_UPNP=1
|
|
}
|
|
DEFINES += USE_UPNP=$$USE_UPNP STATICLIB
|
|
INCLUDEPATH += $$MINIUPNPC_INCLUDE_PATH
|
|
LIBS += $$join(MINIUPNPC_LIB_PATH,,-L,) -lminiupnpc
|
|
win32:LIBS += -liphlpapi
|
|
}
|
|
|
|
# use: qmake "USE_DBUS=1"
|
|
contains(USE_DBUS, 1) {
|
|
message(Building with DBUS (Freedesktop notifications) support)
|
|
DEFINES += USE_DBUS
|
|
QT += dbus
|
|
}
|
|
|
|
# use: qmake "FIRST_CLASS_MESSAGING=1"
|
|
contains(FIRST_CLASS_MESSAGING, 1) {
|
|
message(Building with first-class messaging)
|
|
DEFINES += FIRST_CLASS_MESSAGING
|
|
}
|
|
|
|
contains(BITCOIN_NEED_QT_PLUGINS, 1) {
|
|
DEFINES += BITCOIN_NEED_QT_PLUGINS
|
|
QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets
|
|
}
|
|
|
|
!windows {
|
|
# for extra security against potential buffer overflows
|
|
QMAKE_CXXFLAGS += -fstack-protector
|
|
QMAKE_LFLAGS += -fstack-protector
|
|
# 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
|
|
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
|
|
|
|
# Input
|
|
DEPENDPATH += src/qt src src json/include
|
|
HEADERS += src/qt/bitcoingui.h \
|
|
src/qt/transactiontablemodel.h \
|
|
src/qt/addresstablemodel.h \
|
|
src/qt/optionsdialog.h \
|
|
src/qt/sendcoinsdialog.h \
|
|
src/qt/addressbookpage.h \
|
|
src/qt/messagepage.h \
|
|
src/qt/aboutdialog.h \
|
|
src/qt/editaddressdialog.h \
|
|
src/qt/bitcoinaddressvalidator.h \
|
|
src/addrman.h \
|
|
src/base58.h \
|
|
src/bignum.h \
|
|
src/checkpoints.h \
|
|
src/compat.h \
|
|
src/util.h \
|
|
src/uint256.h \
|
|
src/serialize.h \
|
|
src/strlcpy.h \
|
|
src/main.h \
|
|
src/net.h \
|
|
src/key.h \
|
|
src/db.h \
|
|
src/script.h \
|
|
src/init.h \
|
|
src/headers.h \
|
|
src/irc.h \
|
|
src/mruset.h \
|
|
src/json/json_spirit_writer_template.h \
|
|
src/json/json_spirit_writer.h \
|
|
src/json/json_spirit_value.h \
|
|
src/json/json_spirit_utils.h \
|
|
src/json/json_spirit_stream_reader.h \
|
|
src/json/json_spirit_reader_template.h \
|
|
src/json/json_spirit_reader.h \
|
|
src/json/json_spirit_error_position.h \
|
|
src/json/json_spirit.h \
|
|
src/qt/clientmodel.h \
|
|
src/qt/guiutil.h \
|
|
src/qt/transactionrecord.h \
|
|
src/qt/guiconstants.h \
|
|
src/qt/optionsmodel.h \
|
|
src/qt/monitoreddatamapper.h \
|
|
src/qt/transactiondesc.h \
|
|
src/qt/transactiondescdialog.h \
|
|
src/qt/bitcoinamountfield.h \
|
|
src/wallet.h \
|
|
src/keystore.h \
|
|
src/qt/transactionfilterproxy.h \
|
|
src/qt/transactionview.h \
|
|
src/qt/walletmodel.h \
|
|
src/bitcoinrpc.h \
|
|
src/qt/overviewpage.h \
|
|
src/qt/csvmodelwriter.h \
|
|
src/crypter.h \
|
|
src/qt/sendcoinsentry.h \
|
|
src/qt/qvalidatedlineedit.h \
|
|
src/qt/bitcoinunits.h \
|
|
src/qt/qvaluecombobox.h \
|
|
src/qt/askpassphrasedialog.h \
|
|
src/protocol.h \
|
|
src/qt/notificator.h \
|
|
src/qt/qtipcserver.h \
|
|
src/allocators.h \
|
|
src/ui_interface.h
|
|
|
|
SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \
|
|
src/qt/transactiontablemodel.cpp \
|
|
src/qt/addresstablemodel.cpp \
|
|
src/qt/optionsdialog.cpp \
|
|
src/qt/sendcoinsdialog.cpp \
|
|
src/qt/addressbookpage.cpp \
|
|
src/qt/messagepage.cpp \
|
|
src/qt/aboutdialog.cpp \
|
|
src/qt/editaddressdialog.cpp \
|
|
src/qt/bitcoinaddressvalidator.cpp \
|
|
src/version.cpp \
|
|
src/util.cpp \
|
|
src/netbase.cpp \
|
|
src/key.cpp \
|
|
src/script.cpp \
|
|
src/main.cpp \
|
|
src/init.cpp \
|
|
src/net.cpp \
|
|
src/irc.cpp \
|
|
src/checkpoints.cpp \
|
|
src/addrman.cpp \
|
|
src/db.cpp \
|
|
src/json/json_spirit_writer.cpp \
|
|
src/json/json_spirit_value.cpp \
|
|
src/json/json_spirit_reader.cpp \
|
|
src/qt/clientmodel.cpp \
|
|
src/qt/guiutil.cpp \
|
|
src/qt/transactionrecord.cpp \
|
|
src/qt/optionsmodel.cpp \
|
|
src/qt/monitoreddatamapper.cpp \
|
|
src/qt/transactiondesc.cpp \
|
|
src/qt/transactiondescdialog.cpp \
|
|
src/qt/bitcoinstrings.cpp \
|
|
src/qt/bitcoinamountfield.cpp \
|
|
src/wallet.cpp \
|
|
src/keystore.cpp \
|
|
src/qt/transactionfilterproxy.cpp \
|
|
src/qt/transactionview.cpp \
|
|
src/qt/walletmodel.cpp \
|
|
src/bitcoinrpc.cpp \
|
|
src/rpcdump.cpp \
|
|
src/qt/overviewpage.cpp \
|
|
src/qt/csvmodelwriter.cpp \
|
|
src/crypter.cpp \
|
|
src/qt/sendcoinsentry.cpp \
|
|
src/qt/qvalidatedlineedit.cpp \
|
|
src/qt/bitcoinunits.cpp \
|
|
src/qt/qvaluecombobox.cpp \
|
|
src/qt/askpassphrasedialog.cpp \
|
|
src/protocol.cpp \
|
|
src/qt/notificator.cpp \
|
|
src/qt/qtipcserver.cpp
|
|
|
|
RESOURCES += \
|
|
src/qt/bitcoin.qrc
|
|
|
|
FORMS += \
|
|
src/qt/forms/sendcoinsdialog.ui \
|
|
src/qt/forms/addressbookpage.ui \
|
|
src/qt/forms/messagepage.ui \
|
|
src/qt/forms/aboutdialog.ui \
|
|
src/qt/forms/editaddressdialog.ui \
|
|
src/qt/forms/transactiondescdialog.ui \
|
|
src/qt/forms/overviewpage.ui \
|
|
src/qt/forms/sendcoinsentry.ui \
|
|
src/qt/forms/askpassphrasedialog.ui
|
|
|
|
contains(USE_QRCODE, 1) {
|
|
HEADERS += src/qt/qrcodedialog.h
|
|
SOURCES += src/qt/qrcodedialog.cpp
|
|
FORMS += src/qt/forms/qrcodedialog.ui
|
|
}
|
|
|
|
contains(BITCOIN_QT_TEST, 1) {
|
|
SOURCES += src/qt/test/test_main.cpp \
|
|
src/qt/test/uritests.cpp
|
|
HEADERS += src/qt/test/uritests.h
|
|
DEPENDPATH += src/qt/test
|
|
QT += testlib
|
|
TARGET = bitcoin-qt_test
|
|
DEFINES += BITCOIN_QT_TEST
|
|
}
|
|
|
|
CODECFORTR = UTF-8
|
|
|
|
# for lrelease/lupdate
|
|
# also add new translations to src/qt/bitcoin.qrc under translations/
|
|
TRANSLATIONS = $$files(src/qt/locale/bitcoin_*.ts)
|
|
|
|
isEmpty(QMAKE_LRELEASE) {
|
|
win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe
|
|
else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
|
|
}
|
|
isEmpty(TS_DIR):TS_DIR = src/qt/locale
|
|
# automatically build translations, so they can be included in resource file
|
|
TSQM.name = lrelease ${QMAKE_FILE_IN}
|
|
TSQM.input = TRANSLATIONS
|
|
TSQM.output = $$TS_DIR/${QMAKE_FILE_BASE}.qm
|
|
TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN}
|
|
TSQM.CONFIG = no_link
|
|
QMAKE_EXTRA_COMPILERS += TSQM
|
|
PRE_TARGETDEPS += compiler_TSQM_make_all
|
|
|
|
# "Other files" to show in Qt Creator
|
|
OTHER_FILES += \
|
|
doc/*.rst doc/*.txt doc/README README.md
|
|
|
|
# platform specific defaults, if not overridden on command line
|
|
isEmpty(BOOST_LIB_SUFFIX) {
|
|
macx:BOOST_LIB_SUFFIX = -mt
|
|
windows:BOOST_LIB_SUFFIX = -mgw44-mt-1_43
|
|
}
|
|
|
|
isEmpty(BOOST_THREAD_LIB_SUFFIX) {
|
|
BOOST_THREAD_LIB_SUFFIX = $$BOOST_LIB_SUFFIX
|
|
}
|
|
|
|
isEmpty(BDB_LIB_PATH) {
|
|
macx:BDB_LIB_PATH = /opt/local/lib/db48
|
|
}
|
|
|
|
isEmpty(BDB_LIB_SUFFIX) {
|
|
macx:BDB_LIB_SUFFIX = -4.8
|
|
}
|
|
|
|
isEmpty(BDB_INCLUDE_PATH) {
|
|
macx:BDB_INCLUDE_PATH = /opt/local/include/db48
|
|
}
|
|
|
|
isEmpty(BOOST_LIB_PATH) {
|
|
macx:BOOST_LIB_PATH = /opt/local/lib
|
|
}
|
|
|
|
isEmpty(BOOST_INCLUDE_PATH) {
|
|
macx:BOOST_INCLUDE_PATH = /opt/local/include
|
|
}
|
|
|
|
windows:LIBS += -lws2_32 -lshlwapi
|
|
windows:DEFINES += WIN32
|
|
windows:RC_FILE = src/qt/res/bitcoin-qt.rc
|
|
|
|
windows:!contains(MINGW_THREAD_BUGFIX, 0) {
|
|
# At least qmake's win32-g++-cross profile is missing the -lmingwthrd
|
|
# thread-safety flag. GCC has -mthreads to enable this, but it doesn't
|
|
# work with static linking. -lmingwthrd must come BEFORE -lmingw, so
|
|
# it is prepended to QMAKE_LIBS_QT_ENTRY.
|
|
# It can be turned off with MINGW_THREAD_BUGFIX=0, just in case it causes
|
|
# any problems on some untested qmake profile now or in the future.
|
|
DEFINES += _MT
|
|
QMAKE_LIBS_QT_ENTRY = -lmingwthrd $$QMAKE_LIBS_QT_ENTRY
|
|
}
|
|
|
|
!windows:!mac {
|
|
DEFINES += LINUX
|
|
LIBS += -lrt
|
|
}
|
|
|
|
macx:HEADERS += src/qt/macdockiconhandler.h
|
|
macx:OBJECTIVE_SOURCES += src/qt/macdockiconhandler.mm
|
|
macx:LIBS += -framework Foundation -framework ApplicationServices -framework AppKit
|
|
macx:DEFINES += MAC_OSX MSG_NOSIGNAL=0
|
|
macx:ICON = src/qt/res/icons/bitcoin.icns
|
|
macx:TARGET = "Bitcoin-Qt"
|
|
|
|
# Set libraries and includes at end, to use platform-defined defaults if not overridden
|
|
INCLUDEPATH += $$BOOST_INCLUDE_PATH $$BDB_INCLUDE_PATH $$OPENSSL_INCLUDE_PATH $$QRENCODE_INCLUDE_PATH
|
|
LIBS += $$join(BOOST_LIB_PATH,,-L,) $$join(BDB_LIB_PATH,,-L,) $$join(OPENSSL_LIB_PATH,,-L,) $$join(QRENCODE_LIB_PATH,,-L,)
|
|
LIBS += -lssl -lcrypto -ldb_cxx$$BDB_LIB_SUFFIX
|
|
# -lgdi32 has to happen after -lcrypto (see #681)
|
|
windows:LIBS += -lole32 -luuid -lgdi32
|
|
LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_THREAD_LIB_SUFFIX
|
|
|
|
contains(RELEASE, 1) {
|
|
!windows:!macx {
|
|
# Linux: turn dynamic linking back on for c/c++ runtime libraries
|
|
LIBS += -Wl,-Bdynamic
|
|
}
|
|
}
|
|
|
|
system($$QMAKE_LRELEASE -silent $$_PRO_FILE_)
|