67a42f929b
This introduces CNetAddr and CService, respectively wrapping an (IPv6) IP address and an IP+port combination. This functionality used to be part of CAddress, which also contains network flags and connection attempt information. These extra fields are however not always necessary. These classes, along with logic for creating connections and doing name lookups, are moved to netbase.{h,cpp}, which does not depend on headers.h. Furthermore, CNetAddr is mostly IPv6-ready, though IPv6 functionality is not yet enabled for the application itself.
302 lines
8.8 KiB
Prolog
302 lines
8.8 KiB
Prolog
TEMPLATE = app
|
|
TARGET =
|
|
VERSION = 0.5.99
|
|
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 "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 "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_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 "USE_SSL=1"
|
|
contains(USE_SSL, 1) {
|
|
message(Building with SSL support for RPC)
|
|
DEFINES += USE_SSL
|
|
}
|
|
|
|
contains(BITCOIN_NEED_QT_PLUGINS, 1) {
|
|
DEFINES += BITCOIN_NEED_QT_PLUGINS
|
|
QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs
|
|
}
|
|
|
|
!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!
|
|
}
|
|
|
|
# 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/aboutdialog.h \
|
|
src/qt/editaddressdialog.h \
|
|
src/qt/bitcoinaddressvalidator.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/noui.h \
|
|
src/init.h \
|
|
src/headers.h \
|
|
src/irc.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/qtui.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
|
|
|
|
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/aboutdialog.cpp \
|
|
src/qt/editaddressdialog.cpp \
|
|
src/qt/bitcoinaddressvalidator.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/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
|
|
|
|
RESOURCES += \
|
|
src/qt/bitcoin.qrc
|
|
|
|
FORMS += \
|
|
src/qt/forms/sendcoinsdialog.ui \
|
|
src/qt/forms/addressbookpage.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
|
|
}
|
|
|
|
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:!mac {
|
|
DEFINES += LINUX
|
|
}
|
|
|
|
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 += -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_)
|