subsurface/Subsurface-mobile.pro
Berthold Stoeger 5b3cb5898f desktop: fold ApplicationState into MainWindow
The application state is a desktop-only thing. The mobile UI
also has its application state, but that is something completely
different.

The last remaining user of the application state was to flag
whether the planner is active. Since this has all been
unglobalized, the ApplicationState structure can be moved
from core to the desktop UI. And there it can be made local
to the MainWindow class.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2021-02-17 07:26:55 -08:00

436 lines
12 KiB
Prolog

TEMPLATE = app
QT += qml quick quickcontrols2 widgets positioning concurrent svg bluetooth
DEFINES += SUBSURFACE_MOBILE BT_SUPPORT BLE_SUPPORT
CONFIG += c++17
CONFIG += qtquickcompiler
SOURCES += subsurface-mobile-main.cpp \
subsurface-helper.cpp \
map-widget/qmlmapwidgethelper.cpp \
commands/command_base.cpp \
commands/command.cpp \
commands/command_device.cpp \
commands/command_divelist.cpp \
commands/command_divesite.cpp \
commands/command_edit.cpp \
commands/command_edit_trip.cpp \
commands/command_event.cpp \
commands/command_filter.cpp \
commands/command_pictures.cpp \
core/cloudstorage.cpp \
core/configuredivecomputerthreads.cpp \
core/devicedetails.cpp \
core/gpslocation.cpp \
core/downloadfromdcthread.cpp \
core/qtserialbluetooth.cpp \
core/plannernotes.c \
core/uemis-downloader.c \
core/qthelper.cpp \
core/checkcloudconnection.cpp \
core/color.cpp \
core/configuredivecomputer.cpp \
core/divelogexportlogic.cpp \
core/divesitehelpers.cpp \
core/errorhelper.c \
core/exif.cpp \
core/format.cpp \
core/gettextfromc.cpp \
core/metrics.cpp \
core/qt-init.cpp \
core/subsurfacesysinfo.cpp \
core/windowtitleupdate.cpp \
core/file.c \
core/fulltext.cpp \
core/subsurfacestartup.c \
core/pref.c \
core/profile.c \
core/device.cpp \
core/dive.c \
core/divecomputer.c \
core/divefilter.cpp \
core/event.c \
core/filterconstraint.cpp \
core/filterpreset.cpp \
core/divelist.c \
core/gas-model.c \
core/gaspressures.c \
core/git-access.c \
core/liquivision.c \
core/load-git.c \
core/parse-xml.c \
core/parse.c \
core/picture.c \
core/pictureobj.cpp \
core/sample.c \
core/import-suunto.c \
core/import-shearwater.c \
core/import-seac.c \
core/import-cobalt.c \
core/import-divinglog.c \
core/import-csv.c \
core/save-html.c \
core/statistics.c \
core/worldmap-save.c \
core/libdivecomputer.c \
core/version.c \
core/save-git.c \
core/datatrak.c \
core/ostctools.c \
core/planner.c \
core/save-xml.c \
core/cochran.c \
core/deco.c \
core/divesite.c \
core/equipment.c \
core/gas.c \
core/membuffer.c \
core/selection.cpp \
core/sha1.c \
core/string-format.cpp \
core/strtod.c \
core/tag.c \
core/taxonomy.c \
core/time.c \
core/trip.c \
core/units.c \
core/uemis.c \
core/btdiscovery.cpp \
core/connectionlistmodel.cpp \
core/qt-ble.cpp \
core/uploadDiveShare.cpp \
core/uploadDiveLogsDE.cpp \
core/save-profiledata.c \
core/xmlparams.cpp \
core/settings/qPref.cpp \
core/settings/qPrefCloudStorage.cpp \
core/settings/qPrefDisplay.cpp \
core/settings/qPrefDiveComputer.cpp \
core/settings/qPrefDivePlanner.cpp \
core/settings/qPrefGeneral.cpp \
core/settings/qPrefGeocoding.cpp \
core/settings/qPrefLanguage.cpp \
core/settings/qPrefLocationService.cpp \
core/settings/qPrefPartialPressureGas.cpp \
core/settings/qPrefPrivate.cpp \
core/settings/qPrefProxy.cpp \
core/settings/qPrefTechnicalDetails.cpp \
core/settings/qPrefUnit.cpp \
core/settings/qPrefEquipment.cpp \
core/settings/qPrefLog.cpp \
core/settings/qPrefMedia.cpp \
core/settings/qPrefUpdateManager.cpp \
core/subsurface-qt/divelistnotifier.cpp \
backend-shared/exportfuncs.cpp \
backend-shared/plannershared.cpp \
backend-shared/roundrectitem.cpp \
stats/statsvariables.cpp \
stats/statsview.cpp \
stats/barseries.cpp \
stats/boxseries.cpp \
stats/chartitem.cpp \
stats/chartlistmodel.cpp \
stats/histogrammarker.cpp \
stats/informationbox.cpp \
stats/legend.cpp \
stats/pieseries.cpp \
stats/quartilemarker.cpp \
stats/regressionitem.cpp \
stats/scatterseries.cpp \
stats/statsaxis.cpp \
stats/statscolors.cpp \
stats/statsgrid.cpp \
stats/statshelper.cpp \
stats/statsselection.cpp \
stats/statsseries.cpp \
stats/statsstate.cpp \
mobile-widgets/qmlinterface.cpp \
mobile-widgets/qmlmanager.cpp \
mobile-widgets/statsmanager.cpp \
mobile-widgets/themeinterface.cpp \
qt-models/divesummarymodel.cpp \
qt-models/diveplotdatamodel.cpp \
qt-models/gpslistmodel.cpp \
qt-models/completionmodels.cpp \
qt-models/divelocationmodel.cpp \
qt-models/maplocationmodel.cpp \
qt-models/diveimportedmodel.cpp \
qt-models/messagehandlermodel.cpp \
qt-models/diveplannermodel.cpp \
qt-models/divetripmodel.cpp \
qt-models/mobilelistmodel.cpp \
qt-models/cylindermodel.cpp \
qt-models/cleanertablemodel.cpp \
qt-models/tankinfomodel.cpp \
qt-models/models.cpp \
qt-models/weightsysteminfomodel.cpp \
qt-models/filterconstraintmodel.cpp \
qt-models/filterpresetmodel.cpp \
profile-widget/qmlprofile.cpp \
profile-widget/divecartesianaxis.cpp \
profile-widget/diveeventitem.cpp \
profile-widget/diveprofileitem.cpp \
profile-widget/profilewidget2.cpp \
profile-widget/ruleritem.cpp \
profile-widget/animationfunctions.cpp \
profile-widget/divepixmapitem.cpp \
profile-widget/divetooltipitem.cpp \
profile-widget/tankitem.cpp \
profile-widget/divehandler.cpp \
profile-widget/divelineitem.cpp \
profile-widget/diverectitem.cpp \
profile-widget/divetextitem.cpp
HEADERS += \
commands/command_base.h \
commands/command.h \
commands/command_device.h \
commands/command_divelist.h \
commands/command_divesite.h \
commands/command_edit.h \
commands/command_edit_trip.h \
commands/command_event.h \
commands/command_filter.h \
commands/command_pictures.h \
core/interpolate.h \
core/libdivecomputer.h \
core/cloudstorage.h \
core/configuredivecomputerthreads.h \
core/device.h \
core/devicedetails.h \
core/dive.h \
core/divecomputer.h \
core/event.h \
core/extradata.h \
core/git-access.h \
core/gpslocation.h \
core/pref.h \
core/profile.h \
core/qthelper.h \
core/save-html.h \
core/statistics.h \
core/units.h \
core/version.h \
core/picture.h \
core/pictureobj.h \
core/planner.h \
core/divesite.h \
core/checkcloudconnection.h \
core/cochran.h \
core/color.h \
core/configuredivecomputer.h \
core/datatrak.h \
core/deco.h \
core/display.h \
core/divefilter.h \
core/filterconstraint.h \
core/filterpreset.h \
core/divelist.h \
core/divelogexportlogic.h \
core/divesitehelpers.h \
core/exif.h \
core/file.h \
core/fulltext.h \
core/gaspressures.h \
core/gettext.h \
core/gettextfromc.h \
core/membuffer.h \
core/metrics.h \
core/qt-gui.h \
core/sample.h \
core/selection.h \
core/sha1.h \
core/strndup.h \
core/string-format.h \
core/subsurfacestartup.h \
core/subsurfacesysinfo.h \
core/taxonomy.h \
core/uemis.h \
core/webservice.h \
core/windowtitleupdate.h \
core/worldmap-options.h \
core/worldmap-save.h \
core/downloadfromdcthread.h \
core/btdiscovery.h \
core/connectionlistmodel.h \
core/qt-ble.h \
core/save-profiledata.h \
core/uploadDiveShare.h \
core/uploadDiveLogsDE.h \
core/xmlparams.h \
core/settings/qPref.h \
core/settings/qPrefCloudStorage.h \
core/settings/qPrefDisplay.h \
core/settings/qPrefDiveComputer.h \
core/settings/qPrefDivePlanner.h \
core/settings/qPrefGeneral.h \
core/settings/qPrefGeocoding.h \
core/settings/qPrefLanguage.h \
core/settings/qPrefLocationService.h \
core/settings/qPrefPartialPressureGas.h \
core/settings/qPrefPrivate.h \
core/settings/qPrefProxy.h \
core/settings/qPrefTechnicalDetails.h \
core/settings/qPrefUnit.h \
core/settings/qPrefEquipment.h \
core/settings/qPrefLog.h \
core/settings/qPrefMedia.h \
core/settings/qPrefUpdateManager.h \
core/subsurface-qt/divelistnotifier.h \
backend-shared/exportfuncs.h \
backend-shared/plannershared.h \
backend-shared/roundrectitem.h \
stats/barseries.h \
stats/boxseries.h \
stats/chartitem.h \
stats/chartlistmodel.h \
stats/histogrammarker.h \
stats/informationbox.h \
stats/legend.h \
stats/pieseries.h \
stats/quartilemarker.h \
stats/regressionitem.h \
stats/scatterseries.h \
stats/statsaxis.h \
stats/statscolors.h \
stats/statsgrid.h \
stats/statshelper.h \
stats/statsselection.h \
stats/statsseries.h \
stats/statsstate.h \
stats/statstranslations.h \
stats/statsvariables.h \
stats/statsview.h \
stats/zvalues.h \
mobile-widgets/qmlinterface.h \
mobile-widgets/qmlmanager.h \
mobile-widgets/statsmanager.h \
mobile-widgets/themeinterface.h \
map-widget/qmlmapwidgethelper.h \
qt-models/divesummarymodel.h \
qt-models/diveplotdatamodel.h \
qt-models/gpslistmodel.h \
qt-models/divelocationmodel.h \
qt-models/completionmodels.h \
qt-models/weightsysteminfomodel.h \
qt-models/maplocationmodel.h \
qt-models/diveimportedmodel.h \
qt-models/messagehandlermodel.h \
qt-models/diveplannermodel.h \
qt-models/divetripmodel.h \
qt-models/mobilelistmodel.h \
qt-models/cylindermodel.h \
qt-models/cleanertablemodel.h \
qt-models/tankinfomodel.h \
qt-models/models.h \
qt-models/weightsysteminfomodel.h \
qt-models/filterconstraintmodel.h \
qt-models/filterpresetmodel.h \
profile-widget/qmlprofile.h \
profile-widget/diveprofileitem.h \
profile-widget/profilewidget2.h \
profile-widget/ruleritem.h \
profile-widget/diveeventitem.h \
profile-widget/divetooltipitem.h \
profile-widget/tankitem.h \
profile-widget/animationfunctions.h \
profile-widget/divecartesianaxis.h \
profile-widget/divehandler.h \
profile-widget/divelineitem.h \
profile-widget/divepixmapitem.h \
profile-widget/diverectitem.h \
profile-widget/divetextitem.h
RESOURCES += mobile-widgets/qml/mobile-resources.qrc \
mobile-widgets/3rdparty/icons.qrc \
map-widget/qml/map-widget.qrc \
stats/statsicons.qrc
android {
SOURCES += core/android.cpp \
core/serial_usb_android.cpp
# ironically, we appear to need to include the Kirigami shaders here
# as they aren't found when we assume that they are part of the
# libkirigami library
RESOURCES += packaging/android/translations.qrc \
android-mobile/font.qrc \
mobile-widgets/3rdparty/kirigami/src/scenegraph/shaders/shaders.qrc
QT += androidextras
ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android-mobile
ANDROID_VERSION_CODE = $$BUILD_NR
ANDROID_VERSION_NAME = $$BUILD_VERSION_NAME
DISTFILES += \
android-build/AndroidManifest.xml \
android-build/build.gradle \
android-build/res/values/libs.xml
# at link time our CWD is parallel to the install-root
LIBS += ../install-root-$${QT_ARCH}/lib/libdivecomputer.a \
../install-root-$${QT_ARCH}/lib/qml/org/kde/kirigami.2/libkirigamiplugin.a \
../install-root-$${QT_ARCH}/lib/libgit2.a \
../install-root-$${QT_ARCH}/lib/libzip.a \
../install-root-$${QT_ARCH}/lib/libxslt.a \
../install-root-$${QT_ARCH}/lib/libxml2.a \
../install-root-$${QT_ARCH}/lib/libsqlite3.a \
../install-root-$${QT_ARCH}/lib/libssl_1_1.so \
../install-root-$${QT_ARCH}/lib/libcrypto_1_1.so \
../googlemaps-build/libplugins_geoservices_qtgeoservices_googlemaps_$${QT_ARCH}.so
# ensure that the openssl libraries are bundled into the app
# for some reason doing so with dollar dollar { QT_ARCH } (like what works
# above for the link time case) doesn not work for the EXTRA_LIBS case.
# so stupidly do it explicitly
ANDROID_EXTRA_LIBS += \
../install-root-arm64-v8a/lib/libcrypto_1_1.so \
../install-root-arm64-v8a/lib/libssl_1_1.so \
../install-root-armeabi-v7a/lib/libcrypto_1_1.so \
../install-root-armeabi-v7a/lib/libssl_1_1.so
INCLUDEPATH += ../install-root-$${QT_ARCH}/include/ \
../install-root/lib/libzip/include \
../install-root-$${QT_ARCH}/include/libxstl \
../install-root-$${QT_ARCH}/include/libxml2 \
../install-root-$${QT_ARCH}/include/libexstl \
../install-root-$${QT_ARCH}/include/openssl \
. \
core \
mobile-widgets/3rdparty/kirigami/src
}
ios {
SOURCES += core/ios.cpp
RESOURCES += packaging/ios/translations.qrc
QMAKE_IOS_DEPLOYMENT_TARGET = 10.0
QMAKE_TARGET_BUNDLE_PREFIX = org.subsurface-divelog
QMAKE_BUNDLE = subsurface-mobile
QMAKE_INFO_PLIST = packaging/ios/Info.plist
QMAKE_ASSET_CATALOGS += packaging/ios/storeIcon.xcassets
app_launch_images.files = packaging/ios/SubsurfaceMobileLaunch.xib $$files(packaging/ios/SubsurfaceMobileLaunchImage*.png)
images.files = icons/subsurface-mobile-icon.png
QMAKE_BUNDLE_DATA += app_launch_images images
LIBS += ../install-root/ios/lib/libdivecomputer.a \
../install-root/ios/lib/libgit2.a \
../install-root/ios/lib/libzip.a \
../install-root/ios/lib/libxslt.a \
../install-root/ios/lib/qml/org/kde/kirigami.2/libkirigamiplugin.a \
../googlemaps-build/libqtgeoservices_googlemaps.a \
-liconv \
-lsqlite3 \
-lxml2
INCLUDEPATH += ../install-root/ios/include/ \
../install-root/lib/libzip/include \
../install-root/ios/include/libxstl \
../install-root/ios/include/libexstl \
../install-root/ios/include/openssl \
. \
./core \
./mobile-widgets/3rdparty/kirigami/src/libkirigami \
/usr/include/libxml2
}