Labrador/Desktop_Interface/Labrador.pro

357 lines
12 KiB
Prolog

#-------------------------------------------------
#
# Project created by QtCreator 2016-03-30T13:27:52
#
#-------------------------------------------------
############################################################################
######CLEAN->RUN QMAKE->BUILD after changing anything on this page!!!######
##########################################################################
QT += core gui
CONFIG += c++14
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
TARGET = Labrador
TEMPLATE = app
QCP_VER = 1
DEFINES += "QCP_VER=$${QCP_VER}"
equals(QCP_VER,"2"){
DEFINES += QCUSTOMPLOT_USE_OPENGL
LIBS += -lOpenGL32
message("Using QCP2 with OpenGL support")
}
include(ui_elements.pri)
MOC_DIR = $$PWD/moc
SOURCES += main.cpp\
mainwindow.cpp \
functiongencontrol.cpp \
isodriver.cpp \
isobuffer.cpp \
desktop_settings.cpp \
scoperangeenterdialog.cpp \
genericusbdriver.cpp \
isobufferbuffer.cpp \
uartstyledecoder.cpp \
daqform.cpp \
daqloadprompt.cpp \
isobuffer_file.cpp \
i2cdecoder.cpp \
asyncdft.cpp
HEADERS += mainwindow.h \
functiongencontrol.h \
xmega.h \
isodriver.h \
isobuffer.h \
desktop_settings.h \
scoperangeenterdialog.h \
genericusbdriver.h \
isobufferbuffer.h \
q_debugstream.h \
unified_debug_structure.h \
uartstyledecoder.h \
daqform.h \
daqloadprompt.h \
isobuffer_file.h \
i2cdecoder.h \
asyncdft.h
android:{
FORMS += ui_files_mobile/mainwindow.ui \
ui_files_mobile/scoperangeenterdialog.ui \
ui_files_desktop/daqform.ui \
ui_files_desktop/daqloadprompt.ui
}
!android:{
FORMS += ui_files_desktop/mainwindow.ui \
ui_files_desktop/scoperangeenterdialog.ui \
ui_files_desktop/daqform.ui \
ui_files_desktop/daqloadprompt.ui
}
RESOURCES += \
resources.qrc
DESTDIR = bin
RC_ICONS = appicon.ico
INCLUDEPATH += $$PWD/ui_elements
DEPENDPATH += $$PWD/ui_elements
###########################################################
################ WINDOWS BUILD ONLY ################
#########################################################
win32{
INCLUDEPATH += $$PWD/build_win
SOURCES += winusbdriver.cpp
HEADERS += winusbdriver.h
#libusbk include
contains(QT_ARCH, i386) {
message("Building for Windows (x86)")
CONFIG(release, debug|release): LIBS += -L$$PWD/build_win/libusbk/bin/lib/x86/ -llibusbK
else:CONFIG(debug, debug|release): LIBS += -L$$PWD/build_win/libusbk/bin/lib/x86/ -llibusbK
DEFINES += "WINDOWS_32_BIT"
INCLUDEPATH += $$PWD/build_win/fftw/x86
LIBS += -L$$PWD/build_win/fftw/x86 -llibfftw3-3
} else {
message("Building for Windows (x64)")
CONFIG(release, debug|release): LIBS += -L$$PWD/build_win/libusbk/bin/lib/amd64/ -llibusbK
else:CONFIG(debug, debug|release): LIBS += -L$$PWD/build_win/libusbk/bin/lib/amd64/ -llibusbK
INCLUDEPATH += $$PWD/build_win/fftw/x64
LIBS += -L$$PWD/build_win/fftw/x64 -llibfftw3-3
DEFINES += "WINDOWS_64_BIT"
}
INCLUDEPATH += $$PWD/build_win/libusbk/includes
DEPENDPATH += $$PWD/build/win/libusbk/includes
DEFINES += PLATFORM_WINDOWS
}
#############################################################
################ GNU/LINUX BUILD ONLY ################
###########################################################
unix:!android:!macx{
INCLUDEPATH += $$PWD/build_linux
CONFIG += link_pkgconfig
PKGCONFIG += libusb-1.0 ##make sure you have the libusb-1.0-0-dev package!
PKGCONFIG += fftw3 ##make sure you have the libfftw3-dev package!
contains(QT_ARCH, arm) {
message("Building for Raspberry Pi")
#libdfuprog include
unix:!android:!macx:LIBS += -L$$PWD/build_linux/libdfuprog/lib/arm -ldfuprog-0.9
unix:!android:!macx:INCLUDEPATH += $$PWD/build_linux/libdfuprog/include
unix:!android:!macx:DEPENDPATH += $$PWD/build_linux/libdfuprog/include
QMAKE_CFLAGS += -fsigned-char
QMAKE_CXXFLAGS += -fsigned-char
DEFINES += "PLATFORM_RASPBERRY_PI"
#All ARM-Linux GCC treats char as unsigned by default???
lib_deploy.files = $$PWD/build_linux/libdfuprog/lib/arm/libdfuprog-0.9.so
lib_deploy.path = /usr/lib
} else {
contains(QT_ARCH, i386) {
message("Building for Linux (x86)")
#libdfuprog include
unix:!android:!macx:LIBS += -L$$PWD/build_linux/libdfuprog/lib/x86 -ldfuprog-0.9
unix:!android:!macx:INCLUDEPATH += $$PWD/build_linux/libdfuprog/include
unix:!android:!macx:DEPENDPATH += $$PWD/build_linux/libdfuprog/include
lib_deploy.files = $$PWD/build_linux/libdfuprog/lib/x86/libdfuprog-0.9.so
lib_deploy.path = /usr/lib
} else {
message("Building for Linux (x64)")
#libdfuprog include
unix:!android:!macx:LIBS += -L$$PWD/build_linux/libdfuprog/lib/x64 -ldfuprog-0.9
unix:!android:!macx:INCLUDEPATH += $$PWD/build_linux/libdfuprog/include
unix:!android:!macx:DEPENDPATH += $$PWD/build_linux/libdfuprog/include
lib_deploy.files = $$PWD/build_linux/libdfuprog/lib/x64/libdfuprog-0.9.so
lib_deploy.path = /usr/lib
}
}
other.files += bin/firmware
other.files += bin/waveforms
other.path = /usr/bin/EspoTek-Labrador
target.path = /usr/bin/EspoTek-Labrador
udev.path = /etc/udev/rules.d
udev.files = rules.d/69-labrador.rules
icon48.files += resources/icon48/espotek-labrador.png
icon48.path = /usr/share/icons/hicolor/48x48/apps/
icon256.files += resources/icon256/espotek-labrador.png
icon256.path = /usr/share/icons/hicolor/256x256/apps/
equals(APPIMAGE, 1){
desktop.files += resources/appimage/espotek-labrador.desktop
}
!equals(APPIMAGE, 1){
desktop.files += resources/espotek-labrador.desktop
}
desktop.path = /usr/share/applications
symlink.path = /usr/bin
symlink.extra = ln -sf ${INSTALL_ROOT}/usr/bin/EspoTek-Labrador/Labrador /usr/bin/labrador
udevextra.path = /etc/udev/rules.d
!equals(DEB, 1){
udevextra.extra = udevadm control --reload-rules && udevadm trigger
}
equals(APPIMAGE, 1){
other.path = /usr/bin
target.path = /usr/bin
}
INSTALLS += target
INSTALLS += lib_deploy
INSTALLS += other
INSTALLS += udev
INSTALLS += icon48
INSTALLS += icon256
INSTALLS += desktop
!equals(APPIMAGE, 1){
INSTALLS += symlink
INSTALLS += udevextra
}
}
#############################################################
################ MAC OSX BUILD ONLY ##################
###########################################################
macx:INCLUDEPATH += $$PWD/build_mac
#libusb dylib include
macx:LIBS += -L$$PWD/build_mac/libusb/lib -lusb-1.0
macx:INCLUDEPATH += $$PWD/build_mac/libusb/include/libusb-1.0
macx:DEPENDPATH += $$PWD/build_mac/libusb/include/libusb-1.0
#libdfuprog dylib include
macx:LIBS += -L$$PWD/build_mac/libdfuprog/lib -ldfuprog-0.9
macx:INCLUDEPATH += $$PWD/build_mac/libdfuprog/include
macx:DEPENDPATH += $$PWD/build_mac/libdfuprog/include
macx:QMAKE_LFLAGS += "-undefined dynamic_lookup"
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.10
#############################################################
######## SHARED UNIX-LIKE BUILDS (MAC + LINUX) #########
###########################################################
unix:SOURCES += unixusbdriver.cpp
unix:HEADERS += unixusbdriver.h
#############################################################
######## SHARED ANDROID/LINUX GCC FLAGS #########
###########################################################
unix:!macx: QMAKE_CXXFLAGS_RELEASE -= -O0
unix:!macx: QMAKE_CXXFLAGS_RELEASE -= -O1
unix:!macx: QMAKE_CXXFLAGS_RELEASE -= -O2
unix:!macx: QMAKE_CXXFLAGS_RELEASE -= -O3
android: QMAKE_CXXFLAGS_RELEASE -= -O0
android: QMAKE_CXXFLAGS_RELEASE -= -O1
android: QMAKE_CXXFLAGS_RELEASE -= -O2
android: QMAKE_CXXFLAGS_RELEASE -= -O3
android: QMAKE_CXXFLAGS_RELEASE -= -Os
android: QMAKE_CFLAGS_RELEASE -= -O0
android: QMAKE_CFLAGS_RELEASE -= -O1
android: QMAKE_CFLAGS_RELEASE -= -O2
android: QMAKE_CFLAGS_RELEASE -= -O3
android: QMAKE_CFLAGS_RELEASE -= -Os
#############################################################
################# ANDROID BUILD ONLY #################
###########################################################
android:{
QMAKE_CFLAGS += -fsigned-char
QMAKE_CXXFLAGS += -fsigned-char
#Android treats char as unsigned by default (why???)
# Building .so files fails with -Wl,--no-undefined
QMAKE_LFLAGS_APP -= -Wl,--no-undefined
QMAKE_LFLAGS_SHLIB -= -Wl,--no-undefined
QMAKE_LFLAGS_PLUGIN -= -Wl,--no-undefined
QMAKE_LFLAGS_NOUNDEF -= -Wl,--no-undefined
QT += androidextras
CONFIG += mobility
MOBILITY =
INCLUDEPATH += $$PWD/build_android
SOURCES += androidusbdriver.cpp
HEADERS += androidusbdriver.h
INCLUDEPATH += $$PWD/build_android/libusb-242
DEPENDPATH += $$PWD/build_android/libusb-242
ANDROID_PACKAGE_SOURCE_DIR = $$PWD/build_android/package_source
assets_deploy.files=$$files($$PWD/build_android/package_source/assets/*)
assets_deploy.path=/assets
INSTALLS += asssets_deploy
#libdfuprog include
LIBS += -L$$PWD/build_android/libdfuprog/lib -ldfuprog-0.9
INCLUDEPATH += $$PWD/build_android/libdfuprog/include
DEPENDPATH += $$PWD/build_android/libdfuprog/include
ANDROID_EXTRA_LIBS += $${PWD}/build_android/libdfuprog/lib/libdfuprog-0.9.so
#liblog include
LIBS += -L$$PWD/build_android/liblog/lib -llog
ANDROID_EXTRA_LIBS += $${PWD}/build_android/liblog/lib/liblog.so
DISTFILES += \
build_android/package_source/AndroidManifest.xml \
build_android/package_source/gradle/wrapper/gradle-wrapper.jar \
build_android/package_source/gradlew \
build_android/package_source/res/values/libs.xml \
build_android/package_source/build.gradle \
build_android/package_source/gradle/wrapper/gradle-wrapper.properties \
build_android/package_source/gradlew.bat \
build_android/package_source/AndroidManifest.xml \
build_android/package_source/res/values/libs.xml \
build_android/package_source/build.gradle \
build_android/package_source/src/androidInterface.java
# Doing the following inside one equals() failed. qmake bug? https://forum.qt.io/topic/113836/dynamic-libs-on-android-with-qt5-14-2/4
for(abi, ANDROID_ABIS): message("qmake building for Android ($${abi}) platform")
for(abi, ANDROID_ABIS): LIBS += -L$${PWD}/build_android/libusb-242/android/$${abi} -lusb1.0
for(abi, ANDROID_ABIS): ANDROID_EXTRA_LIBS += $${PWD}/build_android/libusb-242/android/$${abi}/libusb1.0.so
}
DISTFILES += \
build_android/package_source/AndroidManifest.xml \
build_android/package_source/gradle/wrapper/gradle-wrapper.jar \
build_android/package_source/gradlew \
build_android/package_source/res/values/libs.xml \
build_android/package_source/build.gradle \
build_android/package_source/gradle/wrapper/gradle-wrapper.properties \
build_android/package_source/gradlew.bat \
build_android/package_source/AndroidManifest.xml \
build_android/package_source/gradle/wrapper/gradle-wrapper.jar \
build_android/package_source/gradlew \
build_android/package_source/res/values/libs.xml \
build_android/package_source/build.gradle \
build_android/package_source/gradle/wrapper/gradle-wrapper.properties \
build_android/package_source/gradlew.bat \
build_android/package_source/res/xml/device_filter.xml
# Vincenzo added these to get multithreading on Unix fftw
unix:!macx: LIBS += -fopenmp
macx: LIBS += -lomp
unix: LIBS += -lfftw3f_omp
unix: LIBS += -lfftw3_threads
macx: INCLUDEPATH += /usr/local/include
macx: LIBS+= -L/usr/local/lib