4 INCLUDEPATH
+= src src
/json src
/qt
5 DEFINES
+= QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE USE_IPV6
6 CONFIG
+= no_include_pwd
8 # for boost 1.37, add -mt to the boost libraries
9 # use: qmake BOOST_LIB_SUFFIX=-mt
10 # for boost thread win32 with _win32 sufix
11 # use: BOOST_THREAD_LIB_SUFFIX=_win32-...
12 # or when linking against a specific BerkelyDB version: BDB_LIB_SUFFIX=-4.8
14 # Dependency library locations can be customized with:
15 # BOOST_INCLUDE_PATH, BOOST_LIB_PATH, BDB_INCLUDE_PATH,
16 # BDB_LIB_PATH, OPENSSL_INCLUDE_PATH and OPENSSL_LIB_PATH respectively
22 # use: qmake "RELEASE=1"
23 contains(RELEASE
, 1) {
24 # Mac: compile for maximum compatibility (10.5, 32-bit)
25 macx
:QMAKE_CXXFLAGS
+= -mmacosx
-version
-min
=10.5 -arch i386
-isysroot
/Developer
/SDKs
/MacOSX10
.5
.sdk
33 # use: qmake "USE_QRCODE=1"
34 # libqrencode (http://fukuchi.org/works/qrencode/index.en.html) must be installed for support
35 contains(USE_QRCODE
, 1) {
36 message(Building with QRCode support
)
41 # use: qmake "USE_UPNP=1" ( enabled by default; default)
42 # or: qmake "USE_UPNP=0" (disabled by default)
43 # or: qmake "USE_UPNP=-" (not supported)
44 # miniupnpc (http://miniupnp.free.fr/files/) must be installed for support
45 contains(USE_UPNP
, -) {
46 message(Building without UPNP support
)
48 message(Building with UPNP support
)
52 DEFINES
+= USE_UPNP
=$$USE_UPNP STATICLIB
53 INCLUDEPATH
+= $$MINIUPNPC_INCLUDE_PATH
54 LIBS
+= $$
join(MINIUPNPC_LIB_PATH
,,-L
,) -lminiupnpc
55 win32
:LIBS
+= -liphlpapi
58 # use: qmake "USE_DBUS=1"
59 contains(USE_DBUS
, 1) {
60 message(Building with
DBUS (Freedesktop notifications
) support
)
65 # use: qmake "FIRST_CLASS_MESSAGING=1"
66 contains(FIRST_CLASS_MESSAGING
, 1) {
67 message(Building with first
-class messaging
)
68 DEFINES
+= FIRST_CLASS_MESSAGING
71 contains(BITCOIN_NEED_QT_PLUGINS
, 1) {
72 DEFINES
+= BITCOIN_NEED_QT_PLUGINS
73 QTPLUGIN
+= qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets
77 # for extra security against potential buffer overflows
78 QMAKE_CXXFLAGS
+= -fstack
-protector
79 QMAKE_LFLAGS
+= -fstack
-protector
80 # do not enable this on windows, as it will result in a non-working executable!
83 # regenerate src/build.h
84 !windows
|contains(USE_BUILD_INFO
, 1) {
85 genbuild
.depends
= FORCE
86 genbuild
.commands
= cd $$PWD
; /bin
/sh share
/genbuild
.sh $$OUT_PWD
/build
/build
.h
87 genbuild
.target
= $$OUT_PWD
/build
/build
.h
88 PRE_TARGETDEPS
+= $$OUT_PWD
/build
/build
.h
89 QMAKE_EXTRA_TARGETS
+= genbuild
90 DEFINES
+= HAVE_BUILD_INFO
93 QMAKE_CXXFLAGS_WARN_ON
= -fdiagnostics
-show
-option
-Wall
-Wextra
-Wformat
-Wformat
-security
-Wno
-unused
-parameter
96 DEPENDPATH
+= src src
/json src
/qt
97 HEADERS
+= src
/qt
/bitcoingui
.h \
98 src
/qt
/transactiontablemodel
.h \
99 src
/qt
/addresstablemodel
.h \
100 src
/qt
/optionsdialog
.h \
101 src
/qt
/sendcoinsdialog
.h \
102 src
/qt
/addressbookpage
.h \
103 src
/qt
/signverifymessagedialog
.h \
104 src
/qt
/aboutdialog
.h \
105 src
/qt
/editaddressdialog
.h \
106 src
/qt
/bitcoinaddressvalidator
.h \
126 src
/json
/json_spirit_writer_template
.h \
127 src
/json
/json_spirit_writer
.h \
128 src
/json
/json_spirit_value
.h \
129 src
/json
/json_spirit_utils
.h \
130 src
/json
/json_spirit_stream_reader
.h \
131 src
/json
/json_spirit_reader_template
.h \
132 src
/json
/json_spirit_reader
.h \
133 src
/json
/json_spirit_error_position
.h \
134 src
/json
/json_spirit
.h \
135 src
/qt
/clientmodel
.h \
137 src
/qt
/transactionrecord
.h \
138 src
/qt
/guiconstants
.h \
139 src
/qt
/optionsmodel
.h \
140 src
/qt
/monitoreddatamapper
.h \
141 src
/qt
/transactiondesc
.h \
142 src
/qt
/transactiondescdialog
.h \
143 src
/qt
/bitcoinamountfield
.h \
146 src
/qt
/transactionfilterproxy
.h \
147 src
/qt
/transactionview
.h \
148 src
/qt
/walletmodel
.h \
150 src
/qt
/overviewpage
.h \
151 src
/qt
/csvmodelwriter
.h \
153 src
/qt
/sendcoinsentry
.h \
154 src
/qt
/qvalidatedlineedit
.h \
155 src
/qt
/bitcoinunits
.h \
156 src
/qt
/qvaluecombobox
.h \
157 src
/qt
/askpassphrasedialog
.h \
159 src
/qt
/notificator
.h \
160 src
/qt
/qtipcserver
.h \
165 SOURCES
+= src
/qt
/bitcoin
.cpp src
/qt
/bitcoingui
.cpp \
166 src
/qt
/transactiontablemodel
.cpp \
167 src
/qt
/addresstablemodel
.cpp \
168 src
/qt
/optionsdialog
.cpp \
169 src
/qt
/sendcoinsdialog
.cpp \
170 src
/qt
/addressbookpage
.cpp \
171 src
/qt
/signverifymessagedialog
.cpp \
172 src
/qt
/aboutdialog
.cpp \
173 src
/qt
/editaddressdialog
.cpp \
174 src
/qt
/bitcoinaddressvalidator
.cpp \
185 src
/checkpoints
.cpp \
189 src
/json
/json_spirit_writer
.cpp \
190 src
/json
/json_spirit_value
.cpp \
191 src
/json
/json_spirit_reader
.cpp \
192 src
/qt
/clientmodel
.cpp \
194 src
/qt
/transactionrecord
.cpp \
195 src
/qt
/optionsmodel
.cpp \
196 src
/qt
/monitoreddatamapper
.cpp \
197 src
/qt
/transactiondesc
.cpp \
198 src
/qt
/transactiondescdialog
.cpp \
199 src
/qt
/bitcoinstrings
.cpp \
200 src
/qt
/bitcoinamountfield
.cpp \
203 src
/qt
/transactionfilterproxy
.cpp \
204 src
/qt
/transactionview
.cpp \
205 src
/qt
/walletmodel
.cpp \
209 src
/rpcrawtransaction
.cpp \
210 src
/qt
/overviewpage
.cpp \
211 src
/qt
/csvmodelwriter
.cpp \
213 src
/qt
/sendcoinsentry
.cpp \
214 src
/qt
/qvalidatedlineedit
.cpp \
215 src
/qt
/bitcoinunits
.cpp \
216 src
/qt
/qvaluecombobox
.cpp \
217 src
/qt
/askpassphrasedialog
.cpp \
219 src
/qt
/notificator
.cpp \
220 src
/qt
/qtipcserver
.cpp \
221 src
/qt
/rpcconsole
.cpp \
228 src
/qt
/forms
/sendcoinsdialog
.ui \
229 src
/qt
/forms
/addressbookpage
.ui \
230 src
/qt
/forms
/signverifymessagedialog
.ui \
231 src
/qt
/forms
/aboutdialog
.ui \
232 src
/qt
/forms
/editaddressdialog
.ui \
233 src
/qt
/forms
/transactiondescdialog
.ui \
234 src
/qt
/forms
/overviewpage
.ui \
235 src
/qt
/forms
/sendcoinsentry
.ui \
236 src
/qt
/forms
/askpassphrasedialog
.ui \
237 src
/qt
/forms
/rpcconsole
.ui \
238 src
/qt
/forms
/optionsdialog
.ui
240 contains(USE_QRCODE
, 1) {
241 HEADERS
+= src
/qt
/qrcodedialog
.h
242 SOURCES
+= src
/qt
/qrcodedialog
.cpp
243 FORMS
+= src
/qt
/forms
/qrcodedialog
.ui
246 contains(BITCOIN_QT_TEST
, 1) {
247 SOURCES
+= src
/qt
/test
/test_main
.cpp \
248 src
/qt
/test
/uritests
.cpp
249 HEADERS
+= src
/qt
/test
/uritests
.h
250 DEPENDPATH
+= src
/qt
/test
252 TARGET
= bitcoin
-qt_test
253 DEFINES
+= BITCOIN_QT_TEST
258 # for lrelease/lupdate
259 # also add new translations to src/qt/bitcoin.qrc under translations/
260 TRANSLATIONS
= $$
files(src
/qt
/locale
/bitcoin_
*.ts
)
262 isEmpty(QMAKE_LRELEASE
) {
263 win32
:QMAKE_LRELEASE
= $$
[QT_INSTALL_BINS
]\\lrelease
.exe
264 else
:QMAKE_LRELEASE
= $$
[QT_INSTALL_BINS
]/lrelease
266 isEmpty(QM_DIR
):QM_DIR
= $$PWD
/src
/qt
/locale
267 # automatically build translations, so they can be included in resource file
268 TSQM
.name
= lrelease $
{QMAKE_FILE_IN
}
269 TSQM
.input
= TRANSLATIONS
270 TSQM
.output
= $$QM_DIR
/$
{QMAKE_FILE_BASE
}.qm
271 TSQM
.commands
= $$QMAKE_LRELEASE $
{QMAKE_FILE_IN
} -qm $
{QMAKE_FILE_OUT
}
272 TSQM
.CONFIG
= no_link
273 QMAKE_EXTRA_COMPILERS
+= TSQM
275 # "Other files" to show in Qt Creator
277 doc
/*.rst doc/*.txt doc/README README.md res/bitcoin-qt.rc
279 # platform specific defaults, if not overridden on command line
280 isEmpty(BOOST_LIB_SUFFIX) {
281 macx:BOOST_LIB_SUFFIX = -mt
282 windows:BOOST_LIB_SUFFIX = -mgw44-mt-s-1_49
285 isEmpty(BOOST_THREAD_LIB_SUFFIX) {
286 BOOST_THREAD_LIB_SUFFIX = $$BOOST_LIB_SUFFIX
289 isEmpty(BDB_LIB_PATH) {
290 macx:BDB_LIB_PATH = /opt/local/lib/db48
293 isEmpty(BDB_LIB_SUFFIX) {
294 macx:BDB_LIB_SUFFIX = -4.8
297 isEmpty(BDB_INCLUDE_PATH) {
298 macx:BDB_INCLUDE_PATH = /opt/local/include/db48
301 isEmpty(BOOST_LIB_PATH) {
302 macx:BOOST_LIB_PATH = /opt/local/lib
305 isEmpty(BOOST_INCLUDE_PATH) {
306 macx:BOOST_INCLUDE_PATH = /opt/local/include
309 windows:LIBS += -lws2_32 -lshlwapi -lmswsock
310 windows:DEFINES += WIN32
311 windows:RC_FILE = src/qt/res/bitcoin-qt.rc
313 windows:!contains(MINGW_THREAD_BUGFIX, 0) {
314 # At least qmake's win32-g++-cross profile is missing the -lmingwthrd
315 # thread-safety flag. GCC has -mthreads to enable this, but it doesn't
316 # work with static linking. -lmingwthrd must come BEFORE -lmingw, so
317 # it is prepended to QMAKE_LIBS_QT_ENTRY.
318 # It can be turned off with MINGW_THREAD_BUGFIX=0, just in case it causes
319 # any problems on some untested qmake profile now or in the future.
321 QMAKE_LIBS_QT_ENTRY = -lmingwthrd $$QMAKE_LIBS_QT_ENTRY
329 macx:HEADERS += src/qt/macdockiconhandler.h
330 macx:OBJECTIVE_SOURCES += src/qt/macdockiconhandler.mm
331 macx:LIBS += -framework Foundation -framework ApplicationServices -framework AppKit
332 macx:DEFINES += MAC_OSX MSG_NOSIGNAL=0
333 macx:ICON = src/qt/res/icons/bitcoin.icns
334 macx:TARGET = "Bitcoin-Qt"
336 # Set libraries and includes at end, to use platform-defined defaults if not overridden
337 INCLUDEPATH += $$BOOST_INCLUDE_PATH $$BDB_INCLUDE_PATH $$OPENSSL_INCLUDE_PATH $$QRENCODE_INCLUDE_PATH
338 LIBS += $$join(BOOST_LIB_PATH,,-L,) $$join(BDB_LIB_PATH,,-L,) $$join(OPENSSL_LIB_PATH,,-L,) $$join(QRENCODE_LIB_PATH,,-L,)
339 LIBS += -lssl -lcrypto -ldb_cxx$$BDB_LIB_SUFFIX
340 # -lgdi32 has to happen after -lcrypto (see #681)
341 windows:LIBS += -lole32 -luuid -lgdi32
342 LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_THREAD_LIB_SUFFIX
344 contains(RELEASE, 1) {
346 # Linux: turn dynamic linking back on for c/c++ runtime libraries
347 LIBS += -Wl,-Bdynamic
351 system($$QMAKE_LRELEASE -silent $$_PRO_FILE_)