monero-gui/monero-wallet-gui.pro
Riccardo Spagni e826f7c1ec
Merge pull request
4c1bf7d Add translation files to project file (Guillaume LE VAILLANT)
8d35711 Remove duplicate translation file (Guillaume LE VAILLANT)
1c79aaf Update french translation (Guillaume LE VAILLANT)
2017-02-27 22:30:51 +02:00

381 lines
10 KiB
Prolog

TEMPLATE = app
QT += qml quick widgets multimedia
WALLET_ROOT=$$PWD/monero
CONFIG += c++11
# cleaning "auto-generated" bitmonero directory on "make distclean"
QMAKE_DISTCLEAN += -r $$WALLET_ROOT
INCLUDEPATH += $$WALLET_ROOT/include \
$$PWD/src/libwalletqt \
$$PWD/src/QR-Code-generator \
$$PWD/src/QR-Code-scanner \
$$PWD/src \
$$WALLET_ROOT/src
HEADERS += \
filter.h \
clipboardAdapter.h \
oscursor.h \
src/libwalletqt/WalletManager.h \
src/libwalletqt/Wallet.h \
src/libwalletqt/PendingTransaction.h \
src/libwalletqt/TransactionHistory.h \
src/libwalletqt/TransactionInfo.h \
src/libwalletqt/QRCodeImageProvider.h \
src/libwalletqt/Transfer.h \
oshelper.h \
TranslationManager.h \
src/model/TransactionHistoryModel.h \
src/model/TransactionHistorySortFilterModel.h \
src/QR-Code-generator/BitBuffer.hpp \
src/QR-Code-generator/QrCode.hpp \
src/QR-Code-generator/QrSegment.hpp \
src/model/AddressBookModel.h \
src/libwalletqt/AddressBook.h \
src/zxcvbn-c/zxcvbn.h \
src/libwalletqt/UnsignedTransaction.h \
src/QR-Code-scanner/QrCodeScanner.h
SOURCES += main.cpp \
filter.cpp \
clipboardAdapter.cpp \
oscursor.cpp \
src/libwalletqt/WalletManager.cpp \
src/libwalletqt/Wallet.cpp \
src/libwalletqt/PendingTransaction.cpp \
src/libwalletqt/TransactionHistory.cpp \
src/libwalletqt/TransactionInfo.cpp \
src/libwalletqt/QRCodeImageProvider.cpp \
oshelper.cpp \
TranslationManager.cpp \
src/model/TransactionHistoryModel.cpp \
src/model/TransactionHistorySortFilterModel.cpp \
src/QR-Code-generator/BitBuffer.cpp \
src/QR-Code-generator/QrCode.cpp \
src/QR-Code-generator/QrSegment.cpp \
src/model/AddressBookModel.cpp \
src/libwalletqt/AddressBook.cpp \
src/zxcvbn-c/zxcvbn.c \
src/libwalletqt/UnsignedTransaction.cpp \
src/QR-Code-scanner/QrCodeScanner.cpp
!ios {
HEADERS += src/daemon/DaemonManager.h
SOURCES += src/daemon/DaemonManager.cpp
}
lupdate_only {
SOURCES = *.qml \
components/*.qml \
pages/*.qml \
wizard/*.qml \
wizard/*js
}
ios:armv7 {
message("target is armv7")
LIBS += \
-L$$PWD/ofxiOSBoost/build/libs/boost/lib/armv7 \
}
ios:arm64 {
message("target is arm64")
LIBS += \
-L$$PWD/ofxiOSBoost/build/libs/boost/lib/arm64 \
}
!ios {
LIBS += -L$$WALLET_ROOT/lib \
-lwallet_merged \
-lepee \
-lunbound
}
ios {
message("Host is IOS")
QMAKE_LFLAGS += -v
QMAKE_IOS_DEVICE_ARCHS = arm64
CONFIG += arm64
LIBS += -L$$WALLET_ROOT/lib-ios \
-lwallet_merged \
-lepee \
-lunbound
LIBS+= \
-L$$PWD/OpenSSL-for-iPhone/lib \
-lboost_serialization \
-lboost_thread \
-lboost_system \
-lboost_date_time \
-lboost_filesystem \
-lboost_regex \
-lboost_chrono \
-lboost_program_options \
-lssl \
-lcrypto \
-ldl
}
CONFIG(WITH_SCANNER) {
if( greaterThan(QT_MINOR_VERSION, 5) ) {
message("using camera scanner")
DEFINES += "WITH_SCANNER"
HEADERS += src/QR-Code-scanner/QrScanThread.h
SOURCES += src/QR-Code-scanner/QrScanThread.cpp
android {
INCLUDEPATH += $$PWD/../ZBar/include
LIBS += -lzbarjni -liconv
} else {
LIBS += -lzbar
}
} else {
message("Skipping camera scanner because of Incompatible Qt Version !")
}
}
# currently we only support x86 build as qt.io only provides prebuilt qt for x86 mingw
win32 {
# Win64 Host settings
contains(QMAKE_HOST.arch, x86_64) {
message("Host is 64bit")
MSYS_PATH=c:/msys64/mingw32
# boost root path
BOOST_PATH=c:/msys64/mingw64/boost
# WIN32 Host settings
} else {
message("Host is 32bit")
MSYS_PATH=c:/msys32/mingw32
# boost root path
BOOST_PATH=c:/msys32/mingw32/boost
}
LIBS+=-L$$MSYS_PATH/lib
LIBS+=-L$$BOOST_PATH/lib
LIBS+= \
-Wl,-Bstatic \
-lboost_serialization-mt-s \
-lboost_thread-mt-s \
-lboost_system-mt-s \
-lboost_date_time-mt-s \
-lboost_filesystem-mt-s \
-lboost_regex-mt-s \
-lboost_chrono-mt-s \
-lboost_program_options-mt-s \
-lssl \
-lcrypto \
-Wl,-Bdynamic \
-lws2_32 \
-lwsock32 \
-lIphlpapi \
-lgdi32
!contains(QMAKE_TARGET.arch, x86_64) {
message("Target is 32bit")
## Windows x86 (32bit) specific build here
## there's 2Mb stack in libwallet allocated internally, so we set stack=4Mb
## this fixes app crash for x86 Windows build
QMAKE_LFLAGS += -Wl,--stack,4194304
} else {
message("Target is 64bit")
}
}
linux {
CONFIG(static) {
message("using static libraries")
LIBS+= -Wl,-Bstatic
QMAKE_LFLAGS += -static-libgcc -static-libstdc++
contains(QT_ARCH, x86_64) {
LIBS+= -lunbound
}
} else {
# On some distro's we need to add dynload
LIBS+= -ldl
}
LIBS+= \
-lboost_serialization \
-lboost_thread \
-lboost_system \
-lboost_date_time \
-lboost_filesystem \
-lboost_regex \
-lboost_chrono \
-lboost_program_options \
-lssl \
-lcrypto
if(!android) {
LIBS+= \
-Wl,-Bdynamic \
-lGL
}
# currently monero has an issue with "static" build and linunwind-dev,
# so we link libunwind-dev only for non-Ubuntu distros
CONFIG(libunwind_off) {
message(Building without libunwind)
} else {
message(Building with libunwind)
LIBS += -Wl,-Bdynamic -lunwind
}
}
macx {
# mixing static and shared libs are not supported on mac
# CONFIG(static) {
# message("using static libraries")
# LIBS+= -Wl,-Bstatic
# }
LIBS+= \
-L/usr/local/lib \
-L/usr/local/opt/openssl/lib \
-L/usr/local/opt/boost/lib \
-lboost_serialization \
-lboost_thread-mt \
-lboost_system \
-lboost_date_time \
-lboost_filesystem \
-lboost_regex \
-lboost_chrono \
-lboost_program_options \
-lssl \
-lcrypto \
-ldl
}
# translation stuff
TRANSLATIONS = \ # English is default language, no explicit translation file
$$PWD/translations/monero-core_ar.ts \ # Arabic
$$PWD/translations/monero-core_br.ts \ # Portuguese (Brazil)
$$PWD/translations/monero-core_de.ts \ # German
$$PWD/translations/monero-core_eo.ts \ # Esperanto
$$PWD/translations/monero-core_es.ts \ # Spanish
$$PWD/translations/monero-core_fi.ts \ # Finnish
$$PWD/translations/monero-core_fr.ts \ # French
$$PWD/translations/monero-core_hr.ts \ # Croatian
$$PWD/translations/monero-core_id.ts \ # Indonesian
$$PWD/translations/monero-core_in.ts \ # Hindi
$$PWD/translations/monero-core_it.ts \ # Italian
$$PWD/translations/monero-core_ja.ts \ # Japanese
$$PWD/translations/monero-core_nl.ts \ # Dutch
$$PWD/translations/monero-core_pl.ts \ # Polish
$$PWD/translations/monero-core_ru.ts \ # Russian
$$PWD/translations/monero-core_zh.ts \ # Chinese (Taiwan)
CONFIG(release, debug|release) {
DESTDIR = release/bin
LANGUPD_OPTIONS = -locations relative -no-ui-lines
LANGREL_OPTIONS = -compress -nounfinished -removeidentical
} else {
DESTDIR = debug/bin
LANGUPD_OPTIONS =
# LANGREL_OPTIONS = -markuntranslated "MISS_TR "
}
TARGET_FULL_PATH = $$OUT_PWD/$$DESTDIR
TRANSLATION_TARGET_DIR = $$TARGET_FULL_PATH/translations
macx {
TARGET_FULL_PATH = $$sprintf("%1/%2/%3.app", $$OUT_PWD, $$DESTDIR, $$TARGET)
TRANSLATION_TARGET_DIR = $$TARGET_FULL_PATH/Contents/Resources/translations
}
!ios {
isEmpty(QMAKE_LUPDATE) {
win32:LANGUPD = $$[QT_INSTALL_BINS]\lupdate.exe
else:LANGUPD = $$[QT_INSTALL_BINS]/lupdate
}
isEmpty(QMAKE_LRELEASE) {
win32:LANGREL = $$[QT_INSTALL_BINS]\lrelease.exe
else:LANGREL = $$[QT_INSTALL_BINS]/lrelease
}
langupd.command = \
$$LANGUPD $$LANGUPD_OPTIONS $$shell_path($$_PRO_FILE) -ts $$_PRO_FILE_PWD/$$TRANSLATIONS
langrel.depends = langupd
langrel.input = TRANSLATIONS
langrel.output = $$TRANSLATION_TARGET_DIR/${QMAKE_FILE_BASE}.qm
langrel.commands = \
$$LANGREL $$LANGREL_OPTIONS ${QMAKE_FILE_IN} -qm $$TRANSLATION_TARGET_DIR/${QMAKE_FILE_BASE}.qm
langrel.CONFIG += no_link
QMAKE_EXTRA_TARGETS += langupd deploy deploy_win
QMAKE_EXTRA_COMPILERS += langrel
}
# Update: no issues with the "slow link process" anymore,
# for development, just build debug version of libwallet_merged lib
# by invoking 'get_libwallet_api.sh Debug'
# so we update translations everytime even for debug build
PRE_TARGETDEPS += langupd compiler_langrel_make_all
RESOURCES += qml.qrc
# Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH =
# Default rules for deployment.
include(deployment.pri)
macx {
deploy.commands += macdeployqt $$sprintf("%1/%2/%3.app", $$OUT_PWD, $$DESTDIR, $$TARGET) -qmldir=$$PWD
}
win32 {
deploy.commands += windeployqt $$sprintf("%1/%2/%3.exe", $$OUT_PWD, $$DESTDIR, $$TARGET) -release -qmldir=$$PWD
# Win64 msys2 deploy settings
contains(QMAKE_HOST.arch, x86_64) {
deploy.commands += $$escape_expand(\n\t) $$PWD/windeploy_helper.sh $$DESTDIR
}
}
linux:!android {
deploy.commands += $$escape_expand(\n\t) $$PWD/linuxdeploy_helper.sh $$DESTDIR $$TARGET
}
android{
deploy.commands += make install INSTALL_ROOT=$$DESTDIR && androiddeployqt --input android-libmonero-wallet-gui.so-deployment-settings.json --output $$DESTDIR --deployment bundled --android-platform android-21 --jdk /usr/lib/jvm/java-8-openjdk-amd64 -qmldir=$$PWD
}
OTHER_FILES += \
.gitignore \
$$TRANSLATIONS
DISTFILES += \
notes.txt \
monero/src/wallet/CMakeLists.txt
# windows application icon
RC_FILE = monero-core.rc
# mac application icon
ICON = $$PWD/images/appicon.icns