Advertisement
Guest User

no qmake bad qmake

a guest
Jul 13th, 2014
370
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 11.94 KB | None | 0 0
  1. TEMPLATE = app
  2. TARGET = eMark-qt
  3. VERSION = 0.7.2
  4. INCLUDEPATH += src src/json src/qt
  5. DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE BOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN __NO_SYSTEM_INCLUDES
  6. CONFIG += no_include_pwd
  7.  
  8. # UNCOMMENT THIS SECTION TO BUILD ON WINDOWS
  9. #windows:LIBS += -lshlwapi
  10. #LIBS += $$join(BOOST_LIB_PATH,,-L,) $$join(BDB_LIB_PATH,,-L,) $$join(OPENSSL_LIB_PATH,,-L,) $$join(QRENCODE_LIB_PATH,,-L,)
  11. #LIBS += -lssl -lcrypto -ldb_cxx$$BDB_LIB_SUFFIX
  12. #windows:LIBS += -lws2_32 -lole32 -loleaut32 -luuid -lgdi32
  13. #LIBS += -lboost_system-mgw46-mt-sd-1_53 -lboost_filesystem-mgw46-mt-sd-1_53 -lboost_program_options-mgw46-mt-sd-1_53 -lboost_thread-mgw46-mt-sd-1_53
  14. #BOOST_LIB_SUFFIX=-mgw46-mt-sd-1_53
  15. #BOOST_INCLUDE_PATH=C:/deps/boost
  16. #BOOST_LIB_PATH=C:/deps/boost/stage/lib
  17. #BDB_INCLUDE_PATH=c:/deps/db/build_unix
  18. #BDB_LIB_PATH=c:/deps/db/build_unix
  19. #OPENSSL_INCLUDE_PATH=c:/deps/ssl/include
  20. #OPENSSL_LIB_PATH=c:/deps/ssl
  21. #MINIUPNPC_LIB_PATH=c:/deps/miniupnpc
  22. #MINIUPNPC_INCLUDE_PATH=c:/deps
  23.  
  24. OBJECTS_DIR = build
  25. MOC_DIR = build
  26. UI_DIR = build
  27.  
  28. # use: qmake "RELEASE=1"
  29. contains(RELEASE, 1) {
  30.     # Mac: compile for maximum compatibility (10.5, 32-bit)
  31.     macx:QMAKE_CXXFLAGS += -mmacosx-version-min=10.5 -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk
  32.  
  33.     !windows:!macx {
  34.         # Linux: static link
  35.         LIBS += -Wl,-Bstatic
  36.     }
  37. }
  38.  
  39. !win32 {
  40. # for extra security against potential buffer overflows: enable GCCs Stack Smashing Protection
  41. QMAKE_CXXFLAGS *= -fstack-protector-all --param ssp-buffer-size=1
  42. QMAKE_LFLAGS *= -fstack-protector-all --param ssp-buffer-size=1
  43. # We need to exclude this for Windows cross compile with MinGW 4.2.x, as it will result in a non-working executable!
  44. # This can be enabled for Windows, when we switch to MinGW >= 4.4.x.
  45. }
  46. # for extra security on Windows: enable ASLR and DEP via GCC linker flags
  47. win32:QMAKE_LFLAGS *= -Wl,--dynamicbase -Wl,--nxcompat
  48.  
  49. # use: qmake "USE_QRCODE=1"
  50. # libqrencode (http://fukuchi.org/works/qrencode/index.en.html) must be installed for support
  51. contains(USE_QRCODE, 1) {
  52.     message(Building with QRCode support)
  53.     DEFINES += USE_QRCODE
  54.     LIBS += -lqrencode
  55. }
  56.  
  57. # use: qmake "USE_UPNP=1" ( enabled by default; default)
  58. #  or: qmake "USE_UPNP=0" (disabled by default)
  59. #  or: qmake "USE_UPNP=-" (not supported)
  60. # miniupnpc (http://miniupnp.free.fr/files/) must be installed for support
  61. contains(USE_UPNP, -) {
  62.     message(Building without UPNP support)
  63. } else {
  64.     message(Building with UPNP support)
  65.     count(USE_UPNP, 0) {
  66.         USE_UPNP=1
  67.     }
  68.     DEFINES += USE_UPNP=$$USE_UPNP STATICLIB
  69.     INCLUDEPATH += $$MINIUPNPC_INCLUDE_PATH
  70.     LIBS += $$join(MINIUPNPC_LIB_PATH,,-L,) -lminiupnpc
  71.     win32:LIBS += -liphlpapi
  72. }
  73.  
  74.  
  75. # use: qmake "USE_DBUS=1"
  76. contains(USE_DBUS, 1) {
  77.     message(Building with DBUS (Freedesktop notifications) support)
  78.     DEFINES += USE_DBUS
  79.     QT += dbus
  80. }
  81.  
  82. # use: qmake "USE_IPV6=1" ( enabled by default; default)
  83. #  or: qmake "USE_IPV6=0" (disabled by default)
  84. #  or: qmake "USE_IPV6=-" (not supported)
  85. contains(USE_IPV6, -) {
  86.     message(Building without IPv6 support)
  87. } else {
  88.     count(USE_IPV6, 0) {
  89.         USE_IPV6=1
  90.     }
  91.     DEFINES += USE_IPV6=$$USE_IPV6
  92. }
  93.  
  94. contains(BOUNTYCOIN_NEED_QT_PLUGINS, 1) {
  95.     DEFINES += BOUNTYCOIN_NEED_QT_PLUGINS
  96.     QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets
  97. }
  98.  
  99.  
  100. # regenerate src/build.h
  101. !windows|contains(USE_BUILD_INFO, 1) {
  102.     genbuild.depends = FORCE
  103.     genbuild.commands = cd $$PWD; /bin/sh share/genbuild.sh $$OUT_PWD/build/build.h
  104.     genbuild.target = $$OUT_PWD/build/build.h
  105.     PRE_TARGETDEPS += $$OUT_PWD/build/build.h
  106.     QMAKE_EXTRA_TARGETS += genbuild
  107.     DEFINES += HAVE_BUILD_INFO
  108. }
  109.  
  110. QMAKE_CXXFLAGS += -msse2
  111. QMAKE_CFLAGS += -msse2
  112. QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -Wstack-protector
  113.  
  114. # Input
  115. DEPENDPATH += src src/json src/qt
  116. HEADERS += src/qt/eMarkgui.h \
  117.     src/qt/transactiontablemodel.h \
  118.     src/qt/addresstablemodel.h \
  119.     src/qt/optionsdialog.h \
  120.     src/qt/sendcoinsdialog.h \
  121.     src/qt/addressbookpage.h \
  122.     src/qt/signverifymessagedialog.h \
  123.     src/qt/aboutdialog.h \
  124.     src/qt/editaddressdialog.h \
  125.     src/qt/eMarkaddressvalidator.h \
  126.     src/alert.h \
  127.     src/addrman.h \
  128.     src/base58.h \
  129.     src/bignum.h \
  130.     src/checkpoints.h \
  131.     src/compat.h \
  132.     src/sync.h \
  133.     src/util.h \
  134.     src/uint256.h \
  135.     src/kernel.h \
  136.     src/serialize.h \
  137.     src/strlcpy.h \
  138.     src/main.h \
  139.     src/net.h \
  140.     src/key.h \
  141.     src/db.h \
  142.     src/walletdb.h \
  143.     src/script.h \
  144.     src/init.h \
  145.     src/irc.h \
  146.     src/mruset.h \
  147.     src/json/json_spirit_writer_template.h \
  148.     src/json/json_spirit_writer.h \
  149.     src/json/json_spirit_value.h \
  150.     src/json/json_spirit_utils.h \
  151.     src/json/json_spirit_stream_reader.h \
  152.     src/json/json_spirit_reader_template.h \
  153.     src/json/json_spirit_reader.h \
  154.     src/json/json_spirit_error_position.h \
  155.     src/json/json_spirit.h \
  156.     src/qt/clientmodel.h \
  157.     src/qt/guiutil.h \
  158.     src/qt/transactionrecord.h \
  159.     src/qt/guiconstants.h \
  160.     src/qt/optionsmodel.h \
  161.     src/qt/monitoreddatamapper.h \
  162.     src/qt/transactiondesc.h \
  163.     src/qt/transactiondescdialog.h \
  164.     src/qt/eMarkamountfield.h \
  165.     src/wallet.h \
  166.     src/keystore.h \
  167.     src/qt/transactionfilterproxy.h \
  168.     src/qt/transactionview.h \
  169.     src/qt/walletmodel.h \
  170.     src/bitcoinrpc.h \
  171.     src/qt/overviewpage.h \
  172.     src/qt/csvmodelwriter.h \
  173.     src/crypter.h \
  174.     src/qt/sendcoinsentry.h \
  175.     src/qt/qvalidatedlineedit.h \
  176.     src/qt/eMarkunits.h \
  177.     src/qt/qvaluecombobox.h \
  178.     src/qt/askpassphrasedialog.h \
  179.     src/protocol.h \
  180.     src/qt/notificator.h \
  181.     src/qt/qtipcserver.h \
  182.     src/allocators.h \
  183.     src/ui_interface.h \
  184.     src/qt/rpcconsole.h \
  185.     src/version.h \
  186.     src/netbase.h \
  187.     src/clientversion.h
  188.  
  189. SOURCES += src/qt/eMark.cpp src/qt/eMarkgui.cpp \
  190.     src/qt/transactiontablemodel.cpp \
  191.     src/qt/addresstablemodel.cpp \
  192.     src/qt/optionsdialog.cpp \
  193.     src/qt/sendcoinsdialog.cpp \
  194.     src/qt/addressbookpage.cpp \
  195.     src/qt/signverifymessagedialog.cpp \
  196.     src/qt/aboutdialog.cpp \
  197.     src/qt/editaddressdialog.cpp \
  198.     src/qt/eMarkaddressvalidator.cpp \
  199.     src/alert.cpp \
  200.     src/version.cpp \
  201.     src/sync.cpp \
  202.     src/util.cpp \
  203.     src/netbase.cpp \
  204.     src/key.cpp \
  205.     src/script.cpp \
  206.     src/main.cpp \
  207.     src/init.cpp \
  208.     src/net.cpp \
  209.     src/irc.cpp \
  210.     src/checkpoints.cpp \
  211.     src/addrman.cpp \
  212.     src/db.cpp \
  213.     src/walletdb.cpp \
  214.     src/qt/clientmodel.cpp \
  215.     src/qt/guiutil.cpp \
  216.     src/qt/transactionrecord.cpp \
  217.     src/qt/optionsmodel.cpp \
  218.     src/qt/monitoreddatamapper.cpp \
  219.     src/qt/transactiondesc.cpp \
  220.     src/qt/transactiondescdialog.cpp \
  221.     src/qt/eMarkstrings.cpp \
  222.     src/qt/eMarkamountfield.cpp \
  223.     src/wallet.cpp \
  224.     src/keystore.cpp \
  225.     src/qt/transactionfilterproxy.cpp \
  226.     src/qt/transactionview.cpp \
  227.     src/qt/walletmodel.cpp \
  228.     src/bitcoinrpc.cpp \
  229.     src/rpcdump.cpp \
  230.     src/rpcnet.cpp \
  231.     src/rpcmining.cpp \
  232.     src/rpcwallet.cpp \
  233.     src/rpcblockchain.cpp \
  234.     src/rpcrawtransaction.cpp \
  235.     src/qt/overviewpage.cpp \
  236.     src/qt/csvmodelwriter.cpp \
  237.     src/crypter.cpp \
  238.     src/qt/sendcoinsentry.cpp \
  239.     src/qt/qvalidatedlineedit.cpp \
  240.     src/qt/eMarkunits.cpp \
  241.     src/qt/qvaluecombobox.cpp \
  242.     src/qt/askpassphrasedialog.cpp \
  243.     src/protocol.cpp \
  244.     src/qt/notificator.cpp \
  245.     src/qt/qtipcserver.cpp \
  246.     src/qt/rpcconsole.cpp \
  247.     src/noui.cpp \
  248.     src/kernel.cpp
  249.  
  250. RESOURCES += \
  251.     src/qt/eMark.qrc
  252.  
  253. FORMS += \
  254.     src/qt/forms/sendcoinsdialog.ui \
  255.     src/qt/forms/addressbookpage.ui \
  256.     src/qt/forms/signverifymessagedialog.ui \
  257.     src/qt/forms/aboutdialog.ui \
  258.     src/qt/forms/editaddressdialog.ui \
  259.     src/qt/forms/transactiondescdialog.ui \
  260.     src/qt/forms/overviewpage.ui \
  261.     src/qt/forms/sendcoinsentry.ui \
  262.     src/qt/forms/askpassphrasedialog.ui \
  263.     src/qt/forms/rpcconsole.ui \
  264.     src/qt/forms/optionsdialog.ui
  265.  
  266. contains(USE_QRCODE, 1) {
  267. HEADERS += src/qt/qrcodedialog.h
  268. SOURCES += src/qt/qrcodedialog.cpp
  269. FORMS += src/qt/forms/qrcodedialog.ui
  270. }
  271.  
  272. contains(BOUNTYCOIN_QT_TEST, 1) {
  273. SOURCES += src/qt/test/test_main.cpp \
  274.     src/qt/test/uritests.cpp
  275. HEADERS += src/qt/test/uritests.h
  276. DEPENDPATH += src/qt/test
  277. QT += testlib
  278. TARGET = eMark-qt_test
  279. DEFINES += BOUNTYCOIN_QT_TEST
  280. }
  281.  
  282. CODECFORTR = UTF-8
  283.  
  284. # for lrelease/lupdate
  285. # also add new translations to src/qt/eMark.qrc under translations/
  286. TRANSLATIONS = $$files(src/qt/locale/eMark_*.ts)
  287.  
  288. isEmpty(QMAKE_LRELEASE) {
  289.     win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe
  290.     else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
  291. }
  292. isEmpty(QM_DIR):QM_DIR = $$PWD/src/qt/locale
  293. # automatically build translations, so they can be included in resource file
  294. TSQM.name = lrelease ${QMAKE_FILE_IN}
  295. TSQM.input = TRANSLATIONS
  296. TSQM.output = $$QM_DIR/${QMAKE_FILE_BASE}.qm
  297. TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT}
  298. TSQM.CONFIG = no_link
  299. QMAKE_EXTRA_COMPILERS += TSQM
  300.  
  301. # "Other files" to show in Qt Creator
  302. OTHER_FILES += \
  303.     doc/*.rst doc/*.txt doc/README README.md res/eMark-qt.rc src/test/*.cpp src/test/*.h src/qt/test/*.cpp src/qt/test/*.h
  304.  
  305. # platform specific defaults, if not overridden on command line
  306. isEmpty(BOOST_LIB_SUFFIX) {
  307.     macx:BOOST_LIB_SUFFIX = -mt
  308.     windows:BOOST_LIB_SUFFIX = -mgw44-mt-s-1_50
  309. }
  310.  
  311. isEmpty(BOOST_THREAD_LIB_SUFFIX) {
  312.     BOOST_THREAD_LIB_SUFFIX = $$BOOST_LIB_SUFFIX
  313. }
  314.  
  315. isEmpty(BDB_LIB_PATH) {
  316.     macx:BDB_LIB_PATH = /opt/local/lib/db48
  317. }
  318.  
  319. isEmpty(BDB_LIB_SUFFIX) {
  320.     macx:BDB_LIB_SUFFIX = -4.8
  321. }
  322.  
  323. isEmpty(BDB_INCLUDE_PATH) {
  324.     macx:BDB_INCLUDE_PATH = /opt/local/include/db48
  325. }
  326.  
  327. isEmpty(BOOST_LIB_PATH) {
  328.     macx:BOOST_LIB_PATH = /opt/local/lib
  329. }
  330.  
  331. isEmpty(BOOST_INCLUDE_PATH) {
  332.     macx:BOOST_INCLUDE_PATH = /opt/local/include
  333. }
  334.  
  335. windows:DEFINES += WIN32
  336. windows:RC_FILE = src/qt/res/eMark-qt.rc
  337.  
  338. windows:!contains(MINGW_THREAD_BUGFIX, 0) {
  339.     # At least qmake's win32-g++-cross profile is missing the -lmingwthrd
  340.     # thread-safety flag. GCC has -mthreads to enable this, but it doesn't
  341.     # work with static linking. -lmingwthrd must come BEFORE -lmingw, so
  342.     # it is prepended to QMAKE_LIBS_QT_ENTRY.
  343.     # It can be turned off with MINGW_THREAD_BUGFIX=0, just in case it causes
  344.     # any problems on some untested qmake profile now or in the future.
  345.     DEFINES += _MT
  346.     QMAKE_LIBS_QT_ENTRY = -lmingwthrd $$QMAKE_LIBS_QT_ENTRY
  347. }
  348.  
  349. !windows:!macx {
  350.     DEFINES += LINUX
  351.     LIBS += -lrt
  352. }
  353.  
  354. macx:HEADERS += src/qt/macdockiconhandler.h
  355. macx:OBJECTIVE_SOURCES += src/qt/macdockiconhandler.mm
  356. macx:LIBS += -framework Foundation -framework ApplicationServices -framework AppKit
  357. macx:DEFINES += MAC_OSX MSG_NOSIGNAL=0
  358. macx:ICON = src/qt/res/icons/eMark.icns
  359. macx:TARGET = "eMark-Qt"
  360. macx:QMAKE_CFLAGS_THREAD += -pthread
  361. macx:QMAKE_LFLAGS_THREAD += -pthread
  362. macx:QMAKE_CXXFLAGS_THREAD += -pthread
  363.  
  364. # Set libraries and includes at end, to use platform-defined defaults if not overridden
  365. INCLUDEPATH += $$BOOST_INCLUDE_PATH $$BDB_INCLUDE_PATH $$OPENSSL_INCLUDE_PATH $$QRENCODE_INCLUDE_PATH
  366. LIBS += $$join(BOOST_LIB_PATH,,-L,) $$join(BDB_LIB_PATH,,-L,) $$join(OPENSSL_LIB_PATH,,-L,) $$join(QRENCODE_LIB_PATH,,-L,)
  367. LIBS += -lssl -lcrypto -ldb_cxx$$BDB_LIB_SUFFIX
  368. # -lgdi32 has to happen after -lcrypto (see  #681)
  369. windows:LIBS += -lws2_32 -lshlwapi -lmswsock -lole32 -loleaut32 -luuid -lgdi32
  370.  
  371. LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_THREAD_LIB_SUFFIX
  372. windows:LIBS += -lboost_chrono$$BOOST_LIB_SUFFIX
  373.  
  374. contains(RELEASE, 1) {
  375.     !windows:!macx {
  376.         # Linux: turn dynamic linking back on for c/c++ runtime libraries
  377.         LIBS += -Wl,-Bdynamic
  378.     }
  379. }
  380.  
  381. system($$QMAKE_LRELEASE -silent $$_PRO_FILE_)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement