5530920b25
Shows an intro dialog on first launch letting users choose where to store blockchain data. Saves the choice in QSettings so it only appears once. Styled to match the existing Triangles dark theme. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
555 lines
17 KiB
Prolog
555 lines
17 KiB
Prolog
TEMPLATE = app
|
|
TARGET = triangles-qt
|
|
|
|
VERSION = 5.1.5.0
|
|
INCLUDEPATH += src src/json src/qt src/qt/plugins/mrichtexteditor
|
|
DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE BOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN BOOST_BIND_GLOBAL_PLACEHOLDERS __NO_SYSTEM_INCLUDES
|
|
CONFIG += no_include_pwd
|
|
CONFIG += thread
|
|
|
|
lessThan(QT_MAJOR_VERSION, 5) {
|
|
error(Triangles Qt requires Qt 5 or newer)
|
|
}
|
|
|
|
QT += widgets
|
|
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
|
|
|
|
# UNCOMMENT THIS SECTION TO BUILD ON WINDOWS
|
|
# MSYS2 MinGW64 paths
|
|
win32 {
|
|
BOOST_LIB_SUFFIX=-mt
|
|
BOOST_THREAD_LIB_SUFFIX=-mt
|
|
BOOST_INCLUDE_PATH=C:/msys64/mingw64/include
|
|
BOOST_LIB_PATH=C:/msys64/mingw64/lib
|
|
BDB_INCLUDE_PATH=C:/msys64/mingw64/include
|
|
BDB_LIB_PATH=C:/msys64/mingw64/lib
|
|
OPENSSL_INCLUDE_PATH=C:/msys64/mingw64/include
|
|
OPENSSL_LIB_PATH=C:/msys64/mingw64/lib
|
|
MINIUPNPC_INCLUDE_PATH=C:/msys64/mingw64/include
|
|
MINIUPNPC_LIB_PATH=C:/msys64/mingw64/lib
|
|
EVENT_INCLUDE_PATH=C:/msys64/mingw64/include
|
|
EVENT_LIB_PATH=C:/msys64/mingw64/lib
|
|
}
|
|
|
|
# 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 compatibility (macOS 11+)
|
|
macx:QMAKE_CXXFLAGS += -mmacosx-version-min=11.0
|
|
macx:QMAKE_LFLAGS += -mmacosx-version-min=11.0
|
|
|
|
!windows:!macx {
|
|
# Linux: static link
|
|
LIBS += -Wl,-Bstatic
|
|
}
|
|
}
|
|
|
|
!win32 {
|
|
# for extra security against potential buffer overflows: enable GCCs Stack Smashing Protection
|
|
QMAKE_CXXFLAGS *= -fstack-protector-all --param ssp-buffer-size=1
|
|
QMAKE_LFLAGS *= -fstack-protector-all --param ssp-buffer-size=1
|
|
# We need to exclude this for Windows cross compile with MinGW 4.2.x, as it will result in a non-working executable!
|
|
# This can be enabled for Windows, when we switch to MinGW >= 4.4.x.
|
|
}
|
|
# for extra security on Windows: enable ASLR and DEP via GCC linker flags
|
|
win32:QMAKE_LFLAGS *= -static
|
|
win32:QMAKE_LFLAGS += -static-libgcc -static-libstdc++
|
|
lessThan(QT_MAJOR_VERSION, 5): win32: QMAKE_LFLAGS *= -static
|
|
|
|
# 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
|
|
}
|
|
|
|
#triangles: use UPNP with TOR
|
|
USE_UPNP=1
|
|
# 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 MINIUPNP_STATICLIB
|
|
INCLUDEPATH += $$MINIUPNPC_INCLUDE_PATH
|
|
LIBS += $$join(MINIUPNPC_LIB_PATH,,-L,) -lminiupnpc
|
|
win32:LIBS += -liphlpapi
|
|
}
|
|
|
|
# use: qmake "USE_DBUS=1" or qmake "USE_DBUS=0"
|
|
linux:count(USE_DBUS, 0) {
|
|
USE_DBUS=1
|
|
}
|
|
contains(USE_DBUS, 1) {
|
|
message(Building with DBUS (Freedesktop notifications) support)
|
|
DEFINES += USE_DBUS
|
|
QT += dbus
|
|
}
|
|
|
|
# use: qmake "USE_IPV6=1" ( enabled by default; default)
|
|
# or: qmake "USE_IPV6=0" (disabled by default)
|
|
# or: qmake "USE_IPV6=-" (not supported)
|
|
contains(USE_IPV6, -) {
|
|
message(Building without IPv6 support)
|
|
} else {
|
|
count(USE_IPV6, 0) {
|
|
USE_IPV6=1
|
|
}
|
|
DEFINES += USE_IPV6=$$USE_IPV6
|
|
}
|
|
|
|
contains(TRIANGLES_NEED_QT_PLUGINS, 1) {
|
|
message(Building with Qt Plugins)
|
|
DEFINES += TRIANGLES_NEED_QT_PLUGINS
|
|
QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets
|
|
} else {
|
|
message(Building without Qt Plugins)
|
|
}
|
|
|
|
INCLUDEPATH += src/leveldb/include src/leveldb/helpers
|
|
LIBS += $$PWD/src/leveldb/libleveldb.a $$PWD/src/leveldb/libmemenv.a
|
|
SOURCES += src/txdb-leveldb.cpp \
|
|
src/blake.c \
|
|
src/groestl.c \
|
|
src/jh.c \
|
|
src/keccak.c \
|
|
src/skein.c \
|
|
src/aes_helper.c \
|
|
src/bmw.c \
|
|
src/cubehash.c \
|
|
src/echo.c \
|
|
src/fugue.c \
|
|
src/hamsi.c \
|
|
src/hamsi_helper.c \
|
|
src/luffa.c \
|
|
src/shavite.c \
|
|
src/simd.c
|
|
|
|
!win32 {
|
|
# we use QMAKE_CXXFLAGS_RELEASE even without RELEASE=1 because we use RELEASE to indicate linking preferences not -O preferences
|
|
genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a
|
|
} else {
|
|
# make an educated guess about what the ranlib command is called
|
|
isEmpty(QMAKE_RANLIB) {
|
|
QMAKE_RANLIB = $$replace(QMAKE_STRIP, strip, ranlib)
|
|
}
|
|
LIBS += -lshlwapi
|
|
genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libmemenv.a
|
|
}
|
|
genleveldb.target = $$PWD/src/leveldb/libleveldb.a
|
|
genleveldb.depends = FORCE
|
|
PRE_TARGETDEPS += $$PWD/src/leveldb/libleveldb.a
|
|
QMAKE_EXTRA_TARGETS += genleveldb
|
|
# Gross ugly hack that depends on qmake internals, unfortunately there is no other way to do it.
|
|
QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a; cd $$PWD/src/leveldb ; $(MAKE) clean
|
|
|
|
# regenerate src/build.h
|
|
!windows|contains(USE_BUILD_INFO, 1) {
|
|
genbuild.depends = FORCE
|
|
genbuild.commands = cd $$PWD; /bin/sh share/genbuild.sh $$OUT_PWD/build/build.h
|
|
genbuild.target = $$OUT_PWD/build/build.h
|
|
PRE_TARGETDEPS += $$OUT_PWD/build/build.h
|
|
QMAKE_EXTRA_TARGETS += genbuild
|
|
DEFINES += HAVE_BUILD_INFO
|
|
}
|
|
|
|
contains(USE_O3, 1) {
|
|
message(Building O3 optimization flag)
|
|
QMAKE_CXXFLAGS_RELEASE -= -O2
|
|
QMAKE_CFLAGS_RELEASE -= -O2
|
|
QMAKE_CXXFLAGS += -O3
|
|
QMAKE_CFLAGS += -O3
|
|
}
|
|
|
|
*-g++-32 {
|
|
message("32 platform, adding -msse2 flag")
|
|
|
|
QMAKE_CXXFLAGS += -msse2
|
|
QMAKE_CFLAGS += -msse2
|
|
}
|
|
|
|
QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wextra -Wno-ignored-qualifiers -Wformat -Wformat-security -Wno-unused-parameter -Wstack-protector
|
|
|
|
|
|
# Input
|
|
DEPENDPATH += src src/json src/qt
|
|
HEADERS += src/qt/trianglesgui.h \
|
|
src/qt/transactiontablemodel.h \
|
|
src/qt/addresstablemodel.h \
|
|
src/qt/optionsdialog.h \
|
|
src/qt/coincontroldialog.h \
|
|
src/qt/coincontroltreewidget.h \
|
|
src/qt/sendcoinsdialog.h \
|
|
src/qt/addressbookpage.h \
|
|
src/qt/aboutdialog.h \
|
|
src/qt/introdialog.h \
|
|
src/qt/editaddressdialog.h \
|
|
src/qt/trianglesaddressvalidator.h \
|
|
src/alert.h \
|
|
src/addrman.h \
|
|
src/base58.h \
|
|
src/bignum.h \
|
|
src/checkpoints.h \
|
|
src/compat.h \
|
|
src/coincontrol.h \
|
|
src/sync.h \
|
|
src/util.h \
|
|
src/uint256.h \
|
|
src/kernel.h \
|
|
src/net_bootstrap.h \
|
|
src/tor/onion_v3.h \
|
|
src/tor/tor_process.h \
|
|
src/tor/tor_crypto_compat.h \
|
|
src/scrypt.h \
|
|
src/pbkdf2.h \
|
|
src/serialize.h \
|
|
src/strlcpy.h \
|
|
src/smessage.h \
|
|
src/zmqpublishnotifier.h \
|
|
src/notificationqueue.h \
|
|
src/addressindex.h \
|
|
src/main.h \
|
|
src/miner.h \
|
|
src/net.h \
|
|
src/key.h \
|
|
src/db.h \
|
|
src/txdb.h \
|
|
src/walletdb.h \
|
|
src/script.h \
|
|
src/init.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/trianglesamountfield.h \
|
|
src/wallet.h \
|
|
src/keystore.h \
|
|
src/qt/transactionfilterproxy.h \
|
|
src/qt/transactionview.h \
|
|
src/qt/walletmodel.h \
|
|
src/trianglesrpc.h \
|
|
src/rest.h \
|
|
src/qt/overviewpage.h \
|
|
src/qt/csvmodelwriter.h \
|
|
src/crypter.h \
|
|
src/qt/sendcoinsentry.h \
|
|
src/qt/qvalidatedlineedit.h \
|
|
src/qt/trianglesunits.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 \
|
|
src/qt/rpcconsole.h \
|
|
src/version.h \
|
|
src/netbase.h \
|
|
src/clientversion.h \
|
|
src/hashblock.h \
|
|
src/sph_blake.h \
|
|
src/sph_groestl.h \
|
|
src/sph_jh.h \
|
|
src/sph_keccak.h \
|
|
src/sph_skein.h \
|
|
src/sph_types.h \
|
|
src/qt/messagepage.h \
|
|
src/qt/dialog_move_handler.h \
|
|
src/qt/signmessagepage.h \
|
|
src/qt/verifymessagepage.h \
|
|
src/qt/messagemodel.h \
|
|
src/qt/sendmessagesdialog.h \
|
|
src/qt/sendmessagesentry.h \
|
|
src/qt/plugins/mrichtexteditor/mrichtextedit.h \
|
|
src/qt/qvalidatedtextedit.h \
|
|
src/txdb-leveldb.h \
|
|
src/onionseed.h \
|
|
src/sph_bmw.h \
|
|
src/sph_cubehash.h \
|
|
src/sph_echo.h \
|
|
src/sph_fugue.h \
|
|
src/sph_hamsi.h \
|
|
src/sph_luffa.h \
|
|
src/sph_shavite.h \
|
|
src/sph_simd.h
|
|
|
|
SOURCES += src/qt/triangles.cpp src/qt/trianglesgui.cpp \
|
|
src/qt/transactiontablemodel.cpp \
|
|
src/qt/addresstablemodel.cpp \
|
|
src/qt/optionsdialog.cpp \
|
|
src/qt/sendcoinsdialog.cpp \
|
|
src/qt/coincontroldialog.cpp \
|
|
src/qt/coincontroltreewidget.cpp \
|
|
src/qt/addressbookpage.cpp \
|
|
src/qt/aboutdialog.cpp \
|
|
src/qt/introdialog.cpp \
|
|
src/qt/editaddressdialog.cpp \
|
|
src/qt/trianglesaddressvalidator.cpp \
|
|
# Old embedded Tor v2 client removed - incompatible with OpenSSL 3.x
|
|
# Tor v3 onion services handled by onion_v3.cpp via external Tor/SOCKS5
|
|
src/tor/anonymize.cpp \
|
|
src/alert.cpp \
|
|
src/version.cpp \
|
|
src/sync.cpp \
|
|
src/smessage.cpp \
|
|
src/util.cpp \
|
|
src/netbase.cpp \
|
|
src/key.cpp \
|
|
src/script.cpp \
|
|
src/main.cpp \
|
|
src/miner.cpp \
|
|
src/init.cpp \
|
|
src/net.cpp \
|
|
src/irc.cpp \
|
|
src/checkpoints.cpp \
|
|
src/addrman.cpp \
|
|
src/db.cpp \
|
|
src/walletdb.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/trianglesstrings.cpp \
|
|
src/qt/trianglesamountfield.cpp \
|
|
src/wallet.cpp \
|
|
src/keystore.cpp \
|
|
src/qt/transactionfilterproxy.cpp \
|
|
src/qt/transactionview.cpp \
|
|
src/qt/walletmodel.cpp \
|
|
src/trianglesrpc.cpp \
|
|
src/rest.cpp \
|
|
src/rpcdump.cpp \
|
|
src/rpcnet.cpp \
|
|
src/rpcmining.cpp \
|
|
src/rpcwallet.cpp \
|
|
src/rpcblockchain.cpp \
|
|
src/rpcrawtransaction.cpp \
|
|
src/rpcsmessage.cpp \
|
|
src/zmqpublishnotifier.cpp \
|
|
src/qt/overviewpage.cpp \
|
|
src/qt/csvmodelwriter.cpp \
|
|
src/crypter.cpp \
|
|
src/qt/sendcoinsentry.cpp \
|
|
src/qt/qvalidatedlineedit.cpp \
|
|
src/qt/trianglesunits.cpp \
|
|
src/qt/qvaluecombobox.cpp \
|
|
src/qt/askpassphrasedialog.cpp \
|
|
src/protocol.cpp \
|
|
src/qt/notificator.cpp \
|
|
src/qt/qtipcserver.cpp \
|
|
src/qt/rpcconsole.cpp \
|
|
src/qt/messagepage.cpp \
|
|
src/qt/dialog_move_handler.cpp \
|
|
src/qt/signmessagepage.cpp \
|
|
src/qt/verifymessagepage.cpp \
|
|
src/qt/messagemodel.cpp \
|
|
src/qt/sendmessagesdialog.cpp \
|
|
src/qt/sendmessagesentry.cpp \
|
|
src/qt/qvalidatedtextedit.cpp \
|
|
src/qt/plugins/mrichtexteditor/mrichtextedit.cpp \
|
|
src/noui.cpp \
|
|
src/kernel.cpp \
|
|
src/net_bootstrap.cpp \
|
|
src/tor/onion_v3.cpp \
|
|
src/tor/tor_process.cpp \
|
|
src/scrypt-arm.S \
|
|
src/scrypt-x86.S \
|
|
src/scrypt-x86_64.S \
|
|
src/scrypt.cpp \
|
|
src/pbkdf2.cpp
|
|
|
|
RESOURCES += \
|
|
src/qt/triangles.qrc
|
|
|
|
FORMS += \
|
|
src/qt/forms/coincontroldialog.ui \
|
|
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 \
|
|
src/qt/forms/rpcconsole.ui \
|
|
src/qt/forms/optionsdialog.ui \
|
|
src/qt/forms/messagepage.ui \
|
|
src/qt/forms/sendmessagesentry.ui \
|
|
src/qt/forms/sendmessagesdialog.ui \
|
|
src/qt/plugins/mrichtexteditor/mrichtextedit.ui \
|
|
src/qt/forms/mainwindow.ui \
|
|
src/qt/forms/signmessagepage.ui \
|
|
src/qt/forms/verifymessagepage.ui \
|
|
src/qt/forms/transactionspage.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/triangles.qrc under translations/
|
|
TRANSLATIONS = $$files(src/qt/locale/triangles_*.ts)
|
|
|
|
isEmpty(QMAKE_LRELEASE) {
|
|
win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe
|
|
else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
|
|
}
|
|
isEmpty(QM_DIR):QM_DIR = $$PWD/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 = $$QM_DIR/${QMAKE_FILE_BASE}.qm
|
|
TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT}
|
|
TSQM.CONFIG = no_link
|
|
QMAKE_EXTRA_COMPILERS += TSQM
|
|
|
|
# "Other files" to show in Qt Creator
|
|
OTHER_FILES += \
|
|
doc/*.rst doc/*.txt doc/README README.md res/triangles-qt.rc
|
|
|
|
# platform specific defaults, if not overridden on command line
|
|
isEmpty(BOOST_LIB_SUFFIX) {
|
|
macx:BOOST_LIB_SUFFIX =
|
|
windows:BOOST_LIB_SUFFIX = -mt
|
|
}
|
|
|
|
isEmpty(BOOST_THREAD_LIB_SUFFIX) {
|
|
win32:BOOST_THREAD_LIB_SUFFIX = _win32$$BOOST_LIB_SUFFIX
|
|
else:BOOST_THREAD_LIB_SUFFIX = $$BOOST_LIB_SUFFIX
|
|
}
|
|
|
|
isEmpty(BDB_LIB_PATH) {
|
|
macx:BDB_LIB_PATH = /opt/homebrew/opt/berkeley-db@5/lib
|
|
}
|
|
|
|
isEmpty(BDB_LIB_SUFFIX) {
|
|
macx:BDB_LIB_SUFFIX =
|
|
}
|
|
|
|
isEmpty(BDB_INCLUDE_PATH) {
|
|
macx:BDB_INCLUDE_PATH = /opt/homebrew/opt/berkeley-db@5/include
|
|
}
|
|
|
|
isEmpty(BOOST_LIB_PATH) {
|
|
macx:BOOST_LIB_PATH = /opt/homebrew/opt/boost/lib
|
|
}
|
|
|
|
isEmpty(BOOST_INCLUDE_PATH) {
|
|
macx:BOOST_INCLUDE_PATH = /opt/homebrew/opt/boost/include
|
|
}
|
|
|
|
windows:DEFINES += WIN32
|
|
windows:RC_FILE = src/qt/res/triangles-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:!macx {
|
|
DEFINES += LINUX
|
|
LIBS += -lrt
|
|
}
|
|
|
|
macx:HEADERS += src/qt/macdockiconhandler.h \
|
|
src/qt/macnotificationhandler.h
|
|
macx:OBJECTIVE_SOURCES += src/qt/macdockiconhandler.mm \
|
|
src/qt/macnotificationhandler.mm
|
|
|
|
macx:LIBS += -framework Foundation -framework ApplicationServices -framework AppKit
|
|
macx:DEFINES += MAC_OSX MSG_NOSIGNAL=0
|
|
macx:ICON = src/qt/res/icons/triangles.icns
|
|
macx:TARGET = "Triangles-Qt"
|
|
macx:QMAKE_CFLAGS_THREAD += -pthread
|
|
macx:QMAKE_LFLAGS_THREAD += -pthread
|
|
macx:QMAKE_CXXFLAGS_THREAD += -pthread
|
|
macx:QMAKE_CXXFLAGS += -Wno-reserved-user-defined-literal -Wno-deprecated-declarations
|
|
|
|
# Set libraries and includes at end, to use platform-defined defaults if not overridden
|
|
#$$join(ADDITIONAL_LIBS_PATH,,-L,)
|
|
INCLUDEPATH += $$BOOST_INCLUDE_PATH \
|
|
$$BDB_INCLUDE_PATH \
|
|
$$OPENSSL_INCLUDE_PATH \
|
|
#$$QRENCODE_INCLUDE_PATH \
|
|
$$EVENT_INCLUDE_PATH
|
|
|
|
LIBS += $$join(BOOST_LIB_PATH,,-L,) \
|
|
$$join(BDB_LIB_PATH,,-L,) \
|
|
$$join(OPENSSL_LIB_PATH,,-L,) \
|
|
#$$join(QRENCODE_LIB_PATH,,-L,) \
|
|
$$join(EVENT_LIB_PATH,,-L,)
|
|
|
|
LIBS += -lssl -lcrypto -ldb_cxx$$BDB_LIB_SUFFIX
|
|
LIBS += -levent -lz
|
|
# -lgdi32 has to happen after -lcrypto (see #681)
|
|
windows:LIBS += -lws2_32 -lshlwapi -lmswsock -lole32 -loleaut32 -luuid -lgdi32 -lcrypt32
|
|
|
|
LIBS += -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_THREAD_LIB_SUFFIX
|
|
LIBS += -lboost_chrono$$BOOST_LIB_SUFFIX
|
|
|
|
contains(RELEASE, 1) {
|
|
!windows:!macx {
|
|
# Linux: turn dynamic linking back on for c/c++ runtime libraries
|
|
LIBS += -Wl,-Bdynamic
|
|
}
|
|
}
|
|
|
|
# ZMQ support (optional)
|
|
# Build with: qmake "USE_ZMQ=1"
|
|
contains(USE_ZMQ, 1) {
|
|
message(Building with ZMQ support)
|
|
DEFINES += ENABLE_ZMQ
|
|
LIBS += -lzmq
|
|
}
|
|
|
|
system($$QMAKE_LRELEASE -silent $$_PRO_FILE_)
|