mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-02-15 00:49:55 +00:00
To be used as workouts and videosync with free Ergo Planet Videos EPM files contain video sync plus geolocation information in XML format Library of free rides: http://wiki.ergoplanet.de/myor/roadmovie-galerie The problem is altitude set to zero in those examples, likely because it is redundant when you resort to the EPP (Ergo Planet Program) for slope data, but the EPP is an unpublished binary format we don't support directly. So the workflow to use the those synchronized videos is: 1) Import the .epm file to GoldenCheetah as an activity 2) Use Fix Elevation and Fix GPS to add and smooth elevation and route data 3) Export the conditioned activity to GoldenCheetah JSON format 4) Import the .json file as Workout and VideoSync files, plus the .avi as media in GC Train mode using Scan Workouts and Media 5) Train using a Video Window with overlay widgets and simulated speed for better experience.
878 lines
38 KiB
Prolog
878 lines
38 KiB
Prolog
###############################################################################
|
|
# #
|
|
# *** SECTION ONE - CORE CONFIGURATION *** #
|
|
# #
|
|
# #
|
|
###############################################################################
|
|
|
|
!versionAtLeast(QT_VERSION, 5.13):error("Use at least Qt version 5.13")
|
|
|
|
###==========================
|
|
### IMPORT USER CONFIGURATION
|
|
###==========================
|
|
|
|
# You must configure your settings by copying from gcconfig.pri.in.
|
|
# The file contains instructions on settings to make
|
|
include(gcconfig.pri)
|
|
|
|
# You can also define your own local source to add to build
|
|
HEADERS += $${LOCALHEADERS}
|
|
SOURCES += $${LOCALSOURCES}
|
|
|
|
###=====================
|
|
### GOLDENCHEETAH TARGET
|
|
###=====================
|
|
|
|
DEPENDPATH += .
|
|
TEMPLATE = app
|
|
TARGET = GoldenCheetah
|
|
|
|
!isEmpty(APP_NAME) { TARGET = $${APP_NAME} }
|
|
CONFIG(debug, debug|release) { QMAKE_CXXFLAGS += -DGC_DEBUG }
|
|
|
|
|
|
###========================================================================
|
|
### QT5.14.2 officially supported which mandates c++11 support in toolchain
|
|
###========================================================================
|
|
|
|
# always
|
|
QT += xml sql network svg widgets concurrent serialport multimedia multimediawidgets \
|
|
webengine webenginecore webenginewidgets webchannel positioning
|
|
CONFIG += c++11
|
|
|
|
|
|
###=======================================================================
|
|
### Directory Structure - Split into subdirs to be more manageable
|
|
###=======================================================================
|
|
INCLUDEPATH += ./ANT ./Train ./FileIO ./Cloud ./Charts ./Metrics ./Gui ./Core ./Planning
|
|
QMAKE_CFLAGS_ISYSTEM =
|
|
|
|
|
|
###=======================================================================
|
|
### DISTRIBUTED SOURCE [Snaffled in sources to avoid further dependencies]
|
|
###=======================================================================
|
|
|
|
# qwt, qxt, libz, json, lmfit and qwtcurve
|
|
INCLUDEPATH += ../qwt/src ../qxt/src ../qtsolutions/json ../qtsolutions/qwtcurve ../lmfit ../levmar
|
|
DEFINES += QXT_STATIC
|
|
|
|
# to make sure we are toolchain neutral we NEVER refer to a lib
|
|
# via file extensions .lib or .a in src.pro unless the section is
|
|
# platform specific. Instead we use directives -Ldir and -llib
|
|
win32 {
|
|
#QWT is configured to build 2 libs (release/debug) on win32 (see qwtbuild.pri)
|
|
CONFIG(release, debug|release){
|
|
LIBS += -L$${PWD}/../qwt/lib -lqwt
|
|
}
|
|
CONFIG(debug, debug|release) {
|
|
LIBS += -L$${PWD}/../qwt/lib -lqwtd
|
|
}
|
|
|
|
} else {
|
|
#QWT is configured to build 1 lib for all other OS (see qwtbuild.pri)
|
|
LIBS += -L$${PWD}/../qwt/lib -lqwt
|
|
}
|
|
|
|
# compress and math libs must be defined in gcconfig.pri
|
|
# if they're not part of the QT include
|
|
INCLUDEPATH += $${LIBZ_INCLUDE}
|
|
LIBS += $${LIBZ_LIBS}
|
|
|
|
# GNU Scientific Library
|
|
INCLUDEPATH += $${GSL_INCLUDES}
|
|
LIBS += $${GSL_LIBS}
|
|
|
|
###===============================
|
|
### PLATFORM SPECIFIC DEPENDENCIES
|
|
###===============================
|
|
|
|
# Microsoft Visual Studion toolchain dependencies
|
|
win32-msvc* {
|
|
|
|
# we need windows kit 8.2 or higher with MSVC, offer default location
|
|
isEmpty(WINKIT_INSTALL) WINKIT_INSTALL= "C:/Program Files (x86)/Windows Kits/8.1/Lib/winv6.3/um/x64"
|
|
LIBS += -L$${WINKIT_INSTALL} -lGdi32 -lUser32
|
|
CONFIG += force_debug_info
|
|
|
|
|
|
} else {
|
|
|
|
# gnu toolchain wants math libs
|
|
LIBS += -lm
|
|
|
|
unix:!macx {
|
|
# Linux gcc 5 grumbles about unused static globals and leads
|
|
# to a gazillion warnings that are harmless so lets remove them
|
|
QMAKE_CXXFLAGS += -Wno-unused-variable
|
|
|
|
# Linux Flex compiler grumbles about unsigned comparisons
|
|
QMAKE_CXXFLAGS += -Wno-sign-compare
|
|
}
|
|
}
|
|
|
|
# windows icon and use QT zlib, not sure why different but keep for now
|
|
win32 {
|
|
|
|
RC_FILE = Resources/win32/windowsico.rc
|
|
INCLUDEPATH += Resources/win32 $${QT_INSTALL_PREFIX}/src/3rdparty/zlib
|
|
LIBS += -lws2_32
|
|
|
|
} else {
|
|
|
|
RC_FILE = Resources/images/gc.icns
|
|
}
|
|
|
|
macx {
|
|
# Mac native widget support
|
|
QT += macextras
|
|
|
|
# we have our own plist
|
|
QMAKE_INFO_PLIST = ./Resources/mac/Info.plist.app
|
|
|
|
# on mac we use native buttons and video, but have native fullscreen support
|
|
LIBS += -lobjc -framework IOKit -framework AppKit
|
|
|
|
# mac native controls for new mainwindow
|
|
OBJECTIVE_SOURCES += Gui/NewMainWindowMac.mm
|
|
|
|
# on mac we use QTKit or AV Foundation
|
|
contains(DEFINES, "GC_VIDEO_AV") {
|
|
|
|
# explicitly wants AV Foundation
|
|
LIBS += -framework AVFoundation
|
|
HEADERS += Gui/QtMacVideoWindow.h
|
|
OBJECTIVE_SOURCES += Gui/QtMacVideoWindow.mm
|
|
|
|
} else {
|
|
|
|
!contains(DEFINES, "GC_VIDEO_QUICKTIME") {
|
|
|
|
# GC_VIDEO_QT5 will enable Qt5 video support,
|
|
# GC_VIDEO_VLC will enable VLC video support,
|
|
# otherwise we have a blank videowindow, it will do nothing
|
|
HEADERS += Train/VideoWindow.h
|
|
SOURCES += Train/VideoWindow.cpp
|
|
|
|
} else {
|
|
|
|
# default is to use QuickTime for now
|
|
LIBS += -framework QTKit
|
|
HEADERS += Gui/QtMacVideoWindow.h
|
|
OBJECTIVE_SOURCES += Gui/QtMacVideoWindow.mm
|
|
|
|
}
|
|
}
|
|
|
|
} else {
|
|
|
|
# not on mac we need our own full screen support and segment control button
|
|
HEADERS += Gui/QTFullScreen.h
|
|
SOURCES += Gui/QTFullScreen.cpp
|
|
|
|
HEADERS += Train/VideoWindow.h
|
|
SOURCES += Train/VideoWindow.cpp
|
|
}
|
|
|
|
#### these are no longer non-mac only
|
|
HEADERS += ../qtsolutions/segmentcontrol/qtsegmentcontrol.h
|
|
SOURCES += ../qtsolutions/segmentcontrol/qtsegmentcontrol.cpp
|
|
|
|
|
|
|
|
###=================
|
|
### LANGUAGE SUPPORT
|
|
###=================
|
|
|
|
TRANSLATIONS = Resources/translations/gc_fr.ts \
|
|
Resources/translations/gc_ja.ts \
|
|
Resources/translations/gc_it.ts \
|
|
Resources/translations/gc_pt-br.ts \
|
|
Resources/translations/gc_de.ts \
|
|
Resources/translations/gc_cs.ts \
|
|
Resources/translations/gc_es.ts \
|
|
Resources/translations/gc_pt.ts \
|
|
Resources/translations/gc_ru.ts \
|
|
Resources/translations/gc_zh-cn.ts \
|
|
Resources/translations/gc_zh-tw.ts \
|
|
Resources/translations/gc_nl.ts \
|
|
Resources/translations/gc_sv.ts
|
|
|
|
# need lrelease to generate qm files
|
|
isEmpty(QMAKE_LRELEASE) {
|
|
win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe
|
|
else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
|
|
}
|
|
|
|
# how to run lrelease
|
|
isEmpty(TS_DIR):TS_DIR = $${PWD}/Resources/translations
|
|
TSQM.name = lrelease ${QMAKE_FILE_IN}
|
|
TSQM.input = TRANSLATIONS
|
|
TSQM.output = $$TS_DIR/${QMAKE_FILE_BASE}.qm
|
|
TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm $$TS_DIR/${QMAKE_FILE_BASE}.qm
|
|
TSQM.CONFIG = no_link target_predeps
|
|
QMAKE_EXTRA_COMPILERS += TSQM
|
|
|
|
###==========
|
|
### RESOURCES
|
|
###==========
|
|
|
|
RESOURCES = $${PWD}/Resources/application.qrc
|
|
|
|
|
|
|
|
###############################################################################
|
|
# #
|
|
# *** SECTION TWO - OPTIONAL LIBRARIES AND FEATURES *** #
|
|
# #
|
|
# #
|
|
###############################################################################
|
|
|
|
|
|
###=========================
|
|
### OPTIONAL => Embed Python
|
|
###=========================
|
|
|
|
notsupported = "INFO: Embedded Python requires version QT >= 5.8, no support for"
|
|
notsupported += $${QT_VERSION}
|
|
|
|
contains(DEFINES, "GC_WANT_PYTHON") {
|
|
|
|
greaterThan(QT_MAJOR_VERSION, 4) {
|
|
|
|
greaterThan(QT_MINOR_VERSION, 7) {
|
|
|
|
# add Python subdirectory to include path
|
|
INCLUDEPATH += ./Python
|
|
|
|
DEFINES += SIP_STATIC_MODULE
|
|
!isEmpty(PYTHONINCLUDES) QMAKE_CXXFLAGS += $${PYTHONINCLUDES}
|
|
LIBS += $${PYTHONLIBS}
|
|
|
|
## Python integration
|
|
HEADERS += Python/PythonEmbed.h Charts/PythonChart.h Python/PythonSyntax.h
|
|
SOURCES += Python/PythonEmbed.cpp Charts/PythonChart.cpp Python/PythonSyntax.cpp
|
|
|
|
## Python SIP generated module
|
|
SOURCES += Python/SIP/sipgoldencheetahBindings.cpp Python/SIP/sipgoldencheetahcmodule.cpp
|
|
SOURCES += Python/SIP/Bindings.cpp
|
|
|
|
## SIP type conversion
|
|
SOURCES += Python/SIP/sipgoldencheetahQString.cpp
|
|
SOURCES += Python/SIP/sipgoldencheetahQStringList.cpp
|
|
SOURCES += Python/SIP/sipgoldencheetahPythonDataSeries.cpp \
|
|
Python/SIP/sipgoldencheetahPythonXDataSeries.cpp
|
|
DEFINES += GC_HAVE_PYTHON
|
|
|
|
## Python data processors
|
|
HEADERS += FileIO/FixPyScriptsDialog.h FileIO/FixPySettings.h FileIO/FixPyRunner.h \
|
|
FileIO/FixPyScript.h FileIO/FixPyDataProcessor.h
|
|
|
|
SOURCES += FileIO/FixPyScriptsDialog.cpp FileIO/FixPySettings.cpp FileIO/FixPyRunner.cpp \
|
|
FileIO/FixPyDataProcessor.cpp
|
|
|
|
} else {
|
|
# QT5 but not 5.5 or higher
|
|
message($$notsupported)
|
|
}
|
|
|
|
} else {
|
|
|
|
# QT5 but not 5.5 or higher
|
|
message($$notsupported)
|
|
}
|
|
|
|
}
|
|
|
|
###====================
|
|
### OPTIONAL => Embed R
|
|
###====================
|
|
|
|
contains(DEFINES, "GC_WANT_R") {
|
|
|
|
# Only supports Linux and OSX until RInside and Rcpp support MSVC
|
|
# This is not likely to be very soon, they are heavily dependant on GCC
|
|
# see: http://dirk.eddelbuettel.com/blog/2011/03/25/#rinside_and_qt
|
|
isEmpty(R_HOME){ R_HOME = $$system(R RHOME) }
|
|
|
|
# add R subdirectory to include path
|
|
INCLUDEPATH += ./R
|
|
|
|
## include headers and libraries for R
|
|
win32 { QMAKE_CXXFLAGS += -I$$R_HOME/include
|
|
DEFINES += Win32 }
|
|
else { QMAKE_CXXFLAGS += $$system($$R_HOME/bin/R CMD config --cppflags) }
|
|
|
|
## R has lots of compatibility headers for S and legacy R code we don't want
|
|
DEFINES += STRICT_R_HEADERS
|
|
|
|
## R integration
|
|
HEADERS += R/REmbed.h R/RTool.h R/RGraphicsDevice.h R/RSyntax.h R/RLibrary.h
|
|
SOURCES += R/REmbed.cpp R/RTool.cpp R/RGraphicsDevice.cpp R/RSyntax.cpp R/RLibrary.cpp
|
|
|
|
## R based charts
|
|
HEADERS += Charts/RChart.h Charts/RCanvas.h
|
|
SOURCES += Charts/RChart.cpp Charts/RCanvas.cpp
|
|
|
|
## For hardware accelerated scene rendering
|
|
QT += opengl
|
|
}
|
|
|
|
###=======================================================
|
|
### OPTIONAL => D2XX FOR FTDI DRIVERS ON WINDOWS PLATFORMS
|
|
###=======================================================
|
|
|
|
!isEmpty(D2XX_INCLUDE) {
|
|
|
|
DEFINES += GC_HAVE_D2XX
|
|
INCLUDEPATH += $${D2XX_INCLUDE}
|
|
|
|
!isEmpty(D2XX_LIBS) { LIBS += $${D2XX_LIBS} }
|
|
unix { LIBS += -ldl }
|
|
|
|
HEADERS += FileIO/D2XX.h
|
|
SOURCES += FileIO/D2XX.cpp
|
|
}
|
|
|
|
|
|
###==================
|
|
### OPTIONAL => SRMIO
|
|
###==================
|
|
|
|
!isEmpty(SRMIO_INSTALL) {
|
|
|
|
# we will work out the rest if you tell use where it is installed
|
|
isEmpty(SRMIO_INCLUDE) { SRMIO_INCLUDE = $${SRMIO_INSTALL}/include }
|
|
isEmpty(SRMIO_LIBS) { SRMIO_LIBS = -L$${SRMIO_INSTALL}/lib -lsrmio }
|
|
|
|
DEFINES += GC_HAVE_SRMIO
|
|
INCLUDEPATH += $${SRMIO_INCLUDE}
|
|
LIBS += $${SRMIO_LIBS}
|
|
|
|
# add support for srm downloads
|
|
HEADERS += FileIO/SrmDevice.h
|
|
SOURCES += FileIO/SrmDevice.cpp
|
|
}
|
|
|
|
|
|
###=====================================
|
|
### OPTIONAL => GOOGLE KML IMPORT EXPORT
|
|
###=====================================
|
|
|
|
!isEmpty(KML_INSTALL) {
|
|
|
|
# we will work out the rest if you tell use where it is installed
|
|
isEmpty(KML_INCLUDE) { KML_INCLUDE = $${KML_INSTALL}/include }
|
|
isEmpty(KML_LIBS) { KML_LIBS = -L$${KML_INSTALL}/lib/ \
|
|
-lkmldom -lkmlconvenience -lkmlengine -lkmlbase
|
|
}
|
|
|
|
# on MS VS the linker wants /LTCG for libkmldom due to
|
|
# "MSIL .netmodule or module compiled with /GL found"
|
|
win32-msvc* { QMAKE_LFLAGS += /LTCG }
|
|
|
|
DEFINES += GC_HAVE_KML
|
|
INCLUDEPATH += $${KML_INCLUDE} $${BOOST_INCLUDE}
|
|
LIBS += $${KML_LIBS}
|
|
|
|
# add kml file i/o
|
|
SOURCES += FileIO/KmlRideFile.cpp
|
|
HEADERS += FileIO/KmlRideFile.h
|
|
}
|
|
|
|
|
|
###=================
|
|
### OPTIONAL => ICAL
|
|
###=================
|
|
|
|
!isEmpty(ICAL_INSTALL) {
|
|
|
|
# we will work out the rest if you tell use where it is installed
|
|
isEmpty(ICAL_INCLUDE) { ICAL_INCLUDE = $${ICAL_INSTALL}/include }
|
|
isEmpty(ICAL_LIBS) { ICAL_LIBS = -L$${ICAL_INSTALL}/lib -lical }
|
|
|
|
DEFINES += GC_HAVE_ICAL
|
|
INCLUDEPATH += $${ICAL_INCLUDE}
|
|
LIBS += $${ICAL_LIBS}
|
|
|
|
# add caldav and diary functions
|
|
HEADERS += Core/ICalendar.h Charts/DiaryWindow.h Cloud/CalDAV.h Cloud/CalDAVCloud.h
|
|
SOURCES += Core/ICalendar.cpp Charts/DiaryWindow.cpp Cloud/CalDAV.cpp Cloud/CalDAVCloud.cpp
|
|
}
|
|
|
|
|
|
###===================
|
|
### OPTIONAL => LIBUSB
|
|
###===================
|
|
|
|
!isEmpty(LIBUSB_INSTALL) {
|
|
|
|
# we will work out the rest if you tell use where it is installed
|
|
isEmpty(LIBUSB_INCLUDE) { LIBUSB_INCLUDE = $${LIBUSB_INSTALL}/include }
|
|
isEmpty(LIBUSB_LIBS) {
|
|
# needs fixing for msvc toolchain
|
|
_LIBUSB_GCC_LIBNAME = usb
|
|
isEqual(LIBUSB_USE_V_1, true) _LIBUSB_GCC_LIBNAME = usb-1.0
|
|
|
|
unix { LIBUSB_LIBS = -L$${LIBUSB_INSTALL}/lib -l$${_LIBUSB_GCC_LIBNAME} }
|
|
win32 { LIBUSB_LIBS = -L$${LIBUSB_INSTALL}/lib/gcc -l$${_LIBUSB_GCC_LIBNAME} }
|
|
}
|
|
|
|
DEFINES += GC_HAVE_LIBUSB
|
|
INCLUDEPATH += $${LIBUSB_INCLUDE}
|
|
LIBS += $${LIBUSB_LIBS}
|
|
|
|
# lots of dependents
|
|
SOURCES += Train/LibUsb.cpp Train/Fortius.cpp Train/FortiusController.cpp \
|
|
Train/Imagic.cpp Train/ImagicController.cpp
|
|
HEADERS += Train/LibUsb.h Train/Fortius.cpp Train/FortiusController.h \
|
|
Train/Imagic.h Train/ImagicController.h
|
|
|
|
!isEqual(LIBUSB_USE_V_1, true) {
|
|
SOURCES += Train/EzUsb.c
|
|
HEADERS += Train/EzUsb.h
|
|
}
|
|
|
|
isEqual(LIBUSB_USE_V_1, true) {
|
|
DEFINES += LIBUSB_V_1
|
|
SOURCES += Train/EzUsb-1.0.c
|
|
HEADERS += Train/EzUsb-1.0.h
|
|
}
|
|
}
|
|
|
|
|
|
###===================================================
|
|
### OPTIONAL => USBXPRESS [Windows only for ANT+ USB1]
|
|
###===================================================
|
|
|
|
# are we supporting USB1 devices on Windows?
|
|
!isEmpty(USBXPRESS_INSTALL) {
|
|
|
|
# we will work out the rest if you tell use where it is installed
|
|
isEmpty(USBXPRESS_INCLUDE) { USBXPRESS_INCLUDE = $${USBXPRESS_INSTALL} }
|
|
|
|
# this is windows only !
|
|
isEmpty(USBXPRESS_LIBS) { USBXPRESS_LIBS = $${USBXPRESS_INSTALL}/x86/SiUSBXp.lib }
|
|
|
|
DEFINES += GC_HAVE_USBXPRESS
|
|
INCLUDEPATH += $${USBXPRESS_INCLUDE}
|
|
LIBS += $${USBXPRESS_LIBS}
|
|
|
|
SOURCES += Train/USBXpress.cpp
|
|
HEADERS += Train/USBXpress.h
|
|
}
|
|
|
|
|
|
###=============================================================
|
|
### OPTIONAL => VLC [Windows, Unix and OSX]
|
|
###=============================================================
|
|
|
|
!isEmpty(VLC_INSTALL) {
|
|
|
|
# we will work out the rest if you tell use where it is installed
|
|
isEmpty(VLC_INCLUDE) { VLC_INCLUDE = $${VLC_INSTALL}/include }
|
|
isEmpty(VLC_LIBS) { VLC_LIBS = -L$${VLC_INSTALL}/lib -lvlc }
|
|
|
|
DEFINES += GC_HAVE_VLC
|
|
INCLUDEPATH += $${VLC_INCLUDE}
|
|
LIBS += $${VLC_LIBS}
|
|
}
|
|
|
|
|
|
###=======================
|
|
### OPTIONAL => SAMPLERATE
|
|
###=======================
|
|
|
|
!isEmpty(SAMPLERATE_INSTALL) {
|
|
|
|
# we will work out the rest if you tell use where it is installed
|
|
isEmpty(SAMPLERATE_INCLUDE) { SAMPLERATE_INCLUDE = $${SAMPLERATE_INSTALL}/include }
|
|
isEmpty(SAMPLERATE_LIBS) { SAMPLERATE_LIBS = -L$${SAMPLERATE_INSTALL}/lib -lsamplerate }
|
|
|
|
DEFINES += GC_HAVE_SAMPLERATE
|
|
INCLUDEPATH += $${SAMPLERATE_INCLUDE}
|
|
LIBS += $${SAMPLERATE_LIBS}
|
|
}
|
|
|
|
|
|
###==================================
|
|
### OPTIONAL => HTTP API WEB SERVICES
|
|
###==================================
|
|
|
|
!isEmpty (HTPATH) {
|
|
|
|
INCLUDEPATH += $$HTPATH
|
|
DEPENDPATH += $$HTPATH
|
|
|
|
DEFINES += GC_WANT_HTTP
|
|
|
|
HEADERS += Core/APIWebService.h
|
|
SOURCES += Core/APIWebService.cpp
|
|
|
|
HEADERS += $$HTPATH/httpglobal.h \
|
|
$$HTPATH/httplistener.h \
|
|
$$HTPATH/httpconnectionhandler.h \
|
|
$$HTPATH/httpconnectionhandlerpool.h \
|
|
$$HTPATH/httprequest.h \
|
|
$$HTPATH/httpresponse.h \
|
|
$$HTPATH/httpcookie.h \
|
|
$$HTPATH/httprequesthandler.h \
|
|
$$HTPATH/httpsession.h \
|
|
$$HTPATH/httpsessionstore.h \
|
|
$$HTPATH/staticfilecontroller.h
|
|
SOURCES += $$HTPATH/httpglobal.cpp \
|
|
$$HTPATH/httplistener.cpp \
|
|
$$HTPATH/httpconnectionhandler.cpp \
|
|
$$HTPATH/httpconnectionhandlerpool.cpp \
|
|
$$HTPATH/httprequest.cpp \
|
|
$$HTPATH/httpresponse.cpp \
|
|
$$HTPATH/httpcookie.cpp \
|
|
$$HTPATH/httprequesthandler.cpp \
|
|
$$HTPATH/httpsession.cpp \
|
|
$$HTPATH/httpsessionstore.cpp \
|
|
$$HTPATH/staticfilecontroller.cpp
|
|
}
|
|
|
|
|
|
###=====================================================
|
|
### OPTIONAL => CLOUD DB [Google App Engine Integration]
|
|
###=====================================================
|
|
|
|
##----------------------------------------------##
|
|
## CloudDB is only supported on QT5.5 or higher ##
|
|
##----------------------------------------------##
|
|
|
|
notsupported = "INFO: CloudDB requires version QT >= 5.5, no support for"
|
|
notsupported += $${QT_VERSION}
|
|
|
|
equals(CloudDB, active) {
|
|
|
|
greaterThan(QT_MAJOR_VERSION, 4) {
|
|
|
|
greaterThan(QT_MINOR_VERSION, 4) {
|
|
|
|
HEADERS += Cloud/CloudDBChart.h Cloud/CloudDBCommon.h \
|
|
Cloud/CloudDBCurator.h Cloud/CloudDBStatus.h \
|
|
Cloud/CloudDBVersion.h Cloud/CloudDBTelemetry.h \
|
|
Cloud/CloudDBUserMetric.h
|
|
SOURCES += Cloud/CloudDBChart.cpp Cloud/CloudDBCommon.cpp \
|
|
Cloud/CloudDBCurator.cpp Cloud/CloudDBStatus.cpp \
|
|
Cloud/CloudDBVersion.cpp Cloud/CloudDBTelemetry.cpp \
|
|
Cloud/CloudDBUserMetric.cpp
|
|
|
|
DEFINES += GC_HAS_CLOUD_DB
|
|
|
|
} else {
|
|
|
|
# QT5 but not 5.5 or higher
|
|
message($$notsupported)
|
|
}
|
|
|
|
} else {
|
|
|
|
# QT4 not supported
|
|
message($$notsupported)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
###############################################################################
|
|
# #
|
|
# *** SECTION THREE - GOLDENCHEETAH SOURCE FILES *** #
|
|
# #
|
|
# #
|
|
###############################################################################
|
|
|
|
|
|
|
|
###===========================================
|
|
### FEATURES ENABLED WHEN HAVE QT5 [or higher]
|
|
###===========================================
|
|
|
|
greaterThan(QT_MAJOR_VERSION, 4) {
|
|
|
|
# Features that only work with QT5 or higher
|
|
SOURCES += Cloud/Dropbox.cpp
|
|
HEADERS += Cloud/Dropbox.h
|
|
SOURCES += Cloud/GoogleDrive.cpp Cloud/KentUniversity.cpp
|
|
HEADERS += Cloud/GoogleDrive.h Cloud/KentUniversity.h
|
|
SOURCES += Cloud/OpenData.cpp
|
|
HEADERS += Cloud/OpenData.h
|
|
|
|
greaterThan(QT_MINOR_VERSION, 3) {
|
|
SOURCES += Cloud/SixCycle.cpp
|
|
HEADERS += Cloud/SixCycle.h
|
|
SOURCES += Cloud/PolarFlow.cpp
|
|
HEADERS += Cloud/PolarFlow.h
|
|
SOURCES += Cloud/SportTracks.cpp
|
|
HEADERS += Cloud/SportTracks.h
|
|
SOURCES += Cloud/TodaysPlan.cpp
|
|
HEADERS += Cloud/TodaysPlan.h
|
|
}
|
|
|
|
SOURCES += Train/MonarkController.cpp Train/MonarkConnection.cpp
|
|
HEADERS += Train/MonarkController.h Train/MonarkConnection.h
|
|
SOURCES += Train/Kettler.cpp Train/KettlerController.cpp Train/KettlerConnection.cpp
|
|
HEADERS += Train/Kettler.h Train/KettlerController.h Train/KettlerConnection.h
|
|
SOURCES += Train/KettlerRacer.cpp Train/KettlerRacerController.cpp Train/KettlerRacerConnection.cpp
|
|
HEADERS += Train/KettlerRacer.h Train/KettlerRacerController.h Train/KettlerRacerConnection.h
|
|
SOURCES += Train/Ergofit.cpp Train/ErgofitController.cpp Train/ErgofitConnection.cpp
|
|
HEADERS += Train/Ergofit.h Train/ErgofitController.h Train/ErgofitConnection.h
|
|
SOURCES += Train/DaumController.cpp Train/Daum.cpp
|
|
HEADERS += Train/DaumController.h Train/Daum.h
|
|
|
|
# bluetooth in QT5.5 or higher(5.4 was only a tech preview)
|
|
greaterThan(QT_MINOR_VERSION, 4) {
|
|
QT += bluetooth
|
|
HEADERS += Train/BT40Controller.h Train/BT40Device.h
|
|
SOURCES += Train/BT40Controller.cpp Train/BT40Device.cpp
|
|
HEADERS += Train/VMProConfigurator.h Train/VMProWidget.h
|
|
SOURCES += Train/VMProConfigurator.cpp Train/VMProWidget.cpp
|
|
}
|
|
|
|
# qt charts is officially supported from QT5.8 or higher
|
|
# in 5.7 it is a tech preview and not always available
|
|
greaterThan(QT_MINOR_VERSION, 7) {
|
|
|
|
QT += charts opengl
|
|
|
|
# Dashboard uses qt charts, so needs at least Qt 5.7
|
|
DEFINES += GC_HAVE_OVERVIEW
|
|
HEADERS += Gui/ChartSpace.h Charts/OverviewItems.h Charts/Overview.h
|
|
SOURCES += Gui/ChartSpace.cpp Charts/OverviewItems.cpp Charts/Overview.cpp
|
|
|
|
# generic chart
|
|
DEFINES += GC_HAVE_GENERIC
|
|
HEADERS += Charts/UserChart.h Charts/UserChartData.h Charts/GenericChart.h Charts/GenericPlot.h Charts/GenericSelectTool.h Charts/GenericLegend.h
|
|
SOURCES += Charts/UserChart.cpp Charts/UserChartData.cpp Charts/GenericChart.cpp Charts/GenericPlot.cpp Charts/GenericSelectTool.cpp Charts/GenericLegend.cpp
|
|
|
|
}
|
|
}
|
|
|
|
|
|
###=====================
|
|
### LEX AND YACC SOURCES
|
|
###=====================
|
|
|
|
YACCSOURCES += Core/DataFilter.y \
|
|
FileIO/JsonRideFile.y \
|
|
Core/RideDB.y
|
|
|
|
LEXSOURCES += Core/DataFilter.l \
|
|
FileIO/JsonRideFile.l \
|
|
Core/RideDB.l
|
|
|
|
|
|
###=========================================
|
|
### HEADER FILES [scanned by qmake, for moc]
|
|
###=========================================
|
|
|
|
# ANT+
|
|
HEADERS += ANT/ANTChannel.h ANT/ANT.h ANT/ANTlocalController.h ANT/ANTLogger.h ANT/ANTMessage.h ANT/ANTMessages.h
|
|
|
|
# Charts and associated widgets
|
|
HEADERS += Charts/Aerolab.h Charts/AerolabWindow.h Charts/AllPlot.h Charts/AllPlotInterval.h Charts/AllPlotSlopeCurve.h \
|
|
Charts/AllPlotWindow.h Charts/BlankState.h Charts/ChartBar.h Charts/ChartSettings.h \
|
|
Charts/CpPlotCurve.h Charts/CPPlot.h Charts/CriticalPowerWindow.h Charts/DaysScaleDraw.h Charts/ExhaustionDialog.h Charts/GcOverlayWidget.h \
|
|
Charts/GcPane.h Charts/GoldenCheetah.h Charts/HistogramWindow.h Charts/HomeWindow.h \
|
|
Charts/HrPwPlot.h Charts/HrPwWindow.h Charts/IndendPlotMarker.h Charts/IntervalSummaryWindow.h Charts/LogTimeScaleDraw.h \
|
|
Charts/LTMCanvasPicker.h Charts/LTMChartParser.h Charts/LTMOutliers.h Charts/LTMPlot.h Charts/LTMPopup.h \
|
|
Charts/LTMSettings.h Charts/LTMTool.h Charts/LTMTrend2.h Charts/LTMTrend.h Charts/LTMWindow.h \
|
|
Charts/MetadataWindow.h Charts/MUPlot.h Charts/MUPool.h Charts/MUWidget.h Charts/PfPvPlot.h Charts/PfPvWindow.h \
|
|
Charts/PowerHist.h Charts/ReferenceLineDialog.h Charts/RideEditor.h Charts/RideMapWindow.h Charts/RideSummaryWindow.h \
|
|
Charts/ScatterPlot.h Charts/ScatterWindow.h Charts/SmallPlot.h Charts/SummaryWindow.h Charts/TreeMapPlot.h \
|
|
Charts/TreeMapWindow.h Charts/ZoneScaleDraw.h
|
|
|
|
# cloud services
|
|
HEADERS += Cloud/BodyMeasuresDownload.h Cloud/CalendarDownload.h Cloud/CloudService.h \
|
|
Cloud/LocalFileStore.h Cloud/OAuthDialog.h Cloud/TodaysPlanBodyMeasures.h \
|
|
Cloud/WithingsDownload.h Cloud/Strava.h Cloud/CyclingAnalytics.h Cloud/RideWithGPS.h \
|
|
Cloud/TrainingsTageBuch.h Cloud/Selfloops.h Cloud/Velohero.h Cloud/SportsPlusHealth.h \
|
|
Cloud/AddCloudWizard.h Cloud/Withings.h Cloud/HrvMeasuresDownload.h Cloud/Xert.h
|
|
|
|
# core data
|
|
HEADERS += Core/Athlete.h Core/Context.h Core/DataFilter.h Core/FreeSearch.h Core/GcCalendarModel.h Core/GcUpgrade.h \
|
|
Core/IdleTimer.h Core/IntervalItem.h Core/NamedSearch.h Core/RideCache.h Core/RideCacheModel.h Core/RideDB.h \
|
|
Core/RideItem.h Core/Route.h Core/RouteParser.h Core/Season.h Core/SeasonParser.h Core/Secrets.h Core/Settings.h \
|
|
Core/Specification.h Core/TimeUtils.h Core/Units.h Core/UserData.h Core/Utils.h \
|
|
Core/Measures.h Core/BodyMeasures.h Core/HrvMeasures.h Core/BlinnSolver.h Core/Quadtree.h
|
|
|
|
# device and file IO or edit
|
|
HEADERS += FileIO/ArchiveFile.h FileIO/AthleteBackup.h FileIO/Bin2RideFile.h FileIO/BinRideFile.h \
|
|
FileIO/BodyMeasuresCsvImport.h FileIO/CommPort.h \
|
|
FileIO/Computrainer3dpFile.h FileIO/CsvRideFile.h FileIO/DataProcessor.h FileIO/Device.h \
|
|
FileIO/FitlogParser.h FileIO/FitlogRideFile.h FileIO/FitRideFile.h FileIO/GcRideFile.h FileIO/GpxParser.h \
|
|
FileIO/GpxRideFile.h FileIO/JouleDevice.h FileIO/JsonRideFile.h FileIO/LapsEditor.h FileIO/MacroDevice.h \
|
|
FileIO/ManualRideFile.h FileIO/MoxyDevice.h FileIO/PolarRideFile.h \
|
|
FileIO/PowerTapDevice.h FileIO/PowerTapUtil.h FileIO/PwxRideFile.h FileIO/QuarqParser.h FileIO/QuarqRideFile.h \
|
|
FileIO/RawRideFile.h FileIO/RideAutoImportConfig.h FileIO/RideFileCache.h \
|
|
FileIO/RideFileCommand.h FileIO/RideFile.h FileIO/RideFileTableModel.h FileIO/Serial.h \
|
|
FileIO/SlfParser.h FileIO/SlfRideFile.h FileIO/SmfParser.h FileIO/SmfRideFile.h FileIO/SmlParser.h \
|
|
FileIO/SmlRideFile.h FileIO/SrdRideFile.h FileIO/SrmRideFile.h FileIO/SyncRideFile.h FileIO/TcxParser.h \
|
|
FileIO/TcxRideFile.h FileIO/TxtRideFile.h FileIO/WkoRideFile.h FileIO/XDataDialog.h FileIO/XDataTableModel.h \
|
|
FileIO/FilterHRV.h FileIO/HrvMeasuresCsvImport.h FileIO/LocationInterpolation.h FileIO/TTSReader.h \
|
|
FileIO/EpmParser.h FileIO/EpmRideFile.h
|
|
|
|
|
|
# GUI components
|
|
HEADERS += Gui/AboutDialog.h Gui/AddIntervalDialog.h Gui/AnalysisSidebar.h Gui/ChooseCyclistDialog.h Gui/ColorButton.h \
|
|
Gui/Colors.h Gui/CompareDateRange.h Gui/CompareInterval.h Gui/ComparePane.h Gui/ConfigDialog.h Gui/DiarySidebar.h \
|
|
Gui/DragBar.h Gui/EstimateCPDialog.h Gui/GcCrashDialog.h Gui/GcSideBarItem.h Gui/GcToolBar.h Gui/GcWindowLayout.h \
|
|
Gui/GcWindowRegistry.h Gui/GenerateHeatMapDialog.h Gui/GProgressDialog.h Gui/HelpWhatsThis.h Gui/HelpWindow.h \
|
|
Gui/IntervalTreeView.h Gui/LTMSidebar.h Gui/MainWindow.h Gui/NewCyclistDialog.h Gui/Pages.h Gui/RideNavigator.h Gui/RideNavigatorProxy.h \
|
|
Gui/SaveDialogs.h Gui/SearchBox.h Gui/SearchFilterBox.h Gui/SolveCPDialog.h Gui/Tab.h Gui/TabView.h Gui/ToolsRhoEstimator.h \
|
|
Gui/Views.h Gui/BatchExportDialog.h Gui/DownloadRideDialog.h Gui/ManualRideDialog.h Gui/NewMainWindow.h Gui/NewSideBar.h \
|
|
Gui/MergeActivityWizard.h Gui/RideImportWizard.h Gui/SplitActivityWizard.h Gui/SolverDisplay.h Gui/MetricSelect.h \
|
|
Gui/AddChartWizard.h
|
|
|
|
# metrics and models
|
|
HEADERS += Metrics/Banister.h Metrics/CPSolver.h Metrics/Estimator.h Metrics/ExtendedCriticalPower.h Metrics/HrZones.h Metrics/PaceZones.h \
|
|
Metrics/PDModel.h Metrics/PMCData.h Metrics/PowerProfile.h Metrics/RideMetadata.h Metrics/RideMetric.h Metrics/SpecialFields.h \
|
|
Metrics/Statistic.h Metrics/UserMetricParser.h Metrics/UserMetricSettings.h Metrics/VDOTCalculator.h Metrics/WPrime.h Metrics/Zones.h
|
|
|
|
## Planning and Compliance
|
|
HEADERS += Planning/PlanningWindow.h
|
|
|
|
# contrib
|
|
HEADERS += ../qtsolutions/codeeditor/codeeditor.h ../qtsolutions/json/mvjson.h ../qtsolutions/qwtcurve/qwt_plot_gapped_curve.h \
|
|
../qxt/src/qxtspanslider.h ../qxt/src/qxtspanslider_p.h ../qxt/src/qxtstringspinbox.h ../qzip/zipreader.h \
|
|
../qzip/zipwriter.h ../lmfit/lmcurve.h ../lmfit/lmcurve_tyd.h ../lmfit/lmmin.h ../lmfit/lmstruct.h \
|
|
../levmar/compiler.h ../levmar/levmar.h ../levmar/lm.h ../levmar/misc.h
|
|
|
|
# Train View
|
|
HEADERS += Train/AddDeviceWizard.h Train/CalibrationData.h Train/ComputrainerController.h Train/Computrainer.h Train/DeviceConfiguration.h \
|
|
Train/DeviceTypes.h Train/DialWindow.h Train/ErgDBDownloadDialog.h Train/ErgDB.h Train/ErgFile.h Train/ErgFilePlot.h \
|
|
Train/Library.h Train/LibraryParser.h Train/MeterWidget.h Train/NullController.h Train/RealtimeController.h \
|
|
Train/RealtimeData.h Train/RealtimePlot.h Train/RealtimePlotWindow.h Train/RemoteControl.h Train/SpinScanPlot.h \
|
|
Train/SpinScanPlotWindow.h Train/SpinScanPolarPlot.h Train/GarminServiceHelper.h Train/PhysicsUtility.h Train/BicycleSim.h \
|
|
Train/PolynomialRegression.h Train/MultiRegressionizer.h
|
|
|
|
greaterThan(QT_MAJOR_VERSION, 4) {
|
|
HEADERS += Train/TodaysPlanWorkoutDownload.h
|
|
}
|
|
|
|
HEADERS += Train/TrainBottom.h Train/TrainDB.h Train/TrainSidebar.h \
|
|
Train/VideoLayoutParser.h Train/VideoSyncFile.h Train/WorkoutPlotWindow.h Train/WebPageWindow.h \
|
|
Train/WorkoutWidget.h Train/WorkoutWidgetItems.h Train/WorkoutWindow.h Train/WorkoutWizard.h Train/ZwoParser.h
|
|
|
|
|
|
###=============
|
|
### SOURCE FILES
|
|
###=============
|
|
|
|
## ANT+
|
|
SOURCES += ANT/ANTChannel.cpp ANT/ANT.cpp ANT/ANTlocalController.cpp ANT/ANTLogger.cpp ANT/ANTMessage.cpp
|
|
|
|
## Charts and related
|
|
SOURCES += Charts/Aerolab.cpp Charts/AerolabWindow.cpp Charts/AllPlot.cpp Charts/AllPlotInterval.cpp Charts/AllPlotSlopeCurve.cpp \
|
|
Charts/AllPlotWindow.cpp Charts/BlankState.cpp Charts/ChartBar.cpp Charts/ChartSettings.cpp \
|
|
Charts/CPPlot.cpp Charts/CpPlotCurve.cpp Charts/CriticalPowerWindow.cpp Charts/ExhaustionDialog.cpp Charts/GcOverlayWidget.cpp Charts/GcPane.cpp \
|
|
Charts/GoldenCheetah.cpp Charts/HistogramWindow.cpp Charts/HomeWindow.cpp Charts/HrPwPlot.cpp \
|
|
Charts/HrPwWindow.cpp Charts/IndendPlotMarker.cpp Charts/IntervalSummaryWindow.cpp Charts/LogTimeScaleDraw.cpp \
|
|
Charts/LTMCanvasPicker.cpp Charts/LTMChartParser.cpp Charts/LTMOutliers.cpp Charts/LTMPlot.cpp Charts/LTMPopup.cpp \
|
|
Charts/LTMSettings.cpp Charts/LTMTool.cpp Charts/LTMTrend.cpp Charts/LTMWindow.cpp \
|
|
Charts/MetadataWindow.cpp Charts/MUPlot.cpp Charts/MUWidget.cpp Charts/PfPvPlot.cpp Charts/PfPvWindow.cpp \
|
|
Charts/PowerHist.cpp Charts/ReferenceLineDialog.cpp Charts/RideEditor.cpp Charts/RideMapWindow.cpp Charts/RideSummaryWindow.cpp \
|
|
Charts/ScatterPlot.cpp Charts/ScatterWindow.cpp Charts/SmallPlot.cpp Charts/SummaryWindow.cpp Charts/TreeMapPlot.cpp \
|
|
Charts/TreeMapWindow.cpp
|
|
|
|
## Cloud Services / Web resources
|
|
SOURCES += Cloud/BodyMeasuresDownload.cpp Cloud/CalendarDownload.cpp Cloud/CloudService.cpp \
|
|
Cloud/LocalFileStore.cpp Cloud/OAuthDialog.cpp Cloud/TodaysPlanBodyMeasures.cpp \
|
|
Cloud/WithingsDownload.cpp Cloud/Strava.cpp Cloud/CyclingAnalytics.cpp Cloud/RideWithGPS.cpp \
|
|
Cloud/TrainingsTageBuch.cpp Cloud/Selfloops.cpp Cloud/Velohero.cpp Cloud/SportsPlusHealth.cpp \
|
|
Cloud/AddCloudWizard.cpp Cloud/Withings.cpp Cloud/HrvMeasuresDownload.cpp Cloud/Xert.cpp
|
|
|
|
## Core Data Structures
|
|
SOURCES += Core/Athlete.cpp Core/Context.cpp Core/DataFilter.cpp Core/FreeSearch.cpp Core/GcUpgrade.cpp Core/IdleTimer.cpp \
|
|
Core/IntervalItem.cpp Core/main.cpp Core/NamedSearch.cpp Core/RideCache.cpp Core/RideCacheModel.cpp Core/RideItem.cpp \
|
|
Core/Route.cpp Core/RouteParser.cpp Core/Season.cpp Core/SeasonParser.cpp Core/Settings.cpp Core/Specification.cpp \
|
|
Core/TimeUtils.cpp Core/Units.cpp Core/UserData.cpp Core/Utils.cpp \
|
|
Core/Measures.cpp Core/BodyMeasures.cpp Core/HrvMeasures.cpp Core/BlinnSolver.cpp Core/Quadtree.cpp
|
|
|
|
## File and Device IO and Editing
|
|
SOURCES += FileIO/ArchiveFile.cpp FileIO/AthleteBackup.cpp FileIO/Bin2RideFile.cpp FileIO/BinRideFile.cpp \
|
|
FileIO/BodyMeasuresCsvImport.cpp FileIO/CommPort.cpp \
|
|
FileIO/Computrainer3dpFile.cpp FileIO/CsvRideFile.cpp FileIO/DataProcessor.cpp FileIO/Device.cpp \
|
|
FileIO/FitlogParser.cpp FileIO/FitlogRideFile.cpp FileIO/FitRideFile.cpp FileIO/FixAeroPod.cpp FileIO/FixDeriveDistance.cpp \
|
|
FileIO/FixDeriveHeadwind.cpp FileIO/FixDerivePower.cpp FileIO/FixDeriveTorque.cpp FileIO/FixElevation.cpp FileIO/FixLapSwim.cpp \
|
|
FileIO/FixFreewheeling.cpp FileIO/FixGaps.cpp FileIO/FixGPS.cpp FileIO/FixRunningCadence.cpp FileIO/FixRunningPower.cpp \
|
|
FileIO/FixHRSpikes.cpp FileIO/FixMoxy.cpp FileIO/FixPower.cpp FileIO/FixSmO2.cpp FileIO/FixSpeed.cpp FileIO/FixSpikes.cpp \
|
|
FileIO/FixTorque.cpp FileIO/GcRideFile.cpp FileIO/GpxParser.cpp FileIO/GpxRideFile.cpp FileIO/JouleDevice.cpp FileIO/LapsEditor.cpp \
|
|
FileIO/MacroDevice.cpp FileIO/ManualRideFile.cpp FileIO/MoxyDevice.cpp \
|
|
FileIO/PolarRideFile.cpp FileIO/PowerTapDevice.cpp FileIO/PowerTapUtil.cpp FileIO/PwxRideFile.cpp FileIO/QuarqParser.cpp \
|
|
FileIO/QuarqRideFile.cpp FileIO/RawRideFile.cpp FileIO/RideAutoImportConfig.cpp \
|
|
FileIO/RideFileCache.cpp FileIO/RideFileCommand.cpp FileIO/RideFile.cpp FileIO/RideFileTableModel.cpp \
|
|
FileIO/Serial.cpp FileIO/SlfParser.cpp FileIO/SlfRideFile.cpp FileIO/SmfParser.cpp FileIO/SmfRideFile.cpp FileIO/SmlParser.cpp \
|
|
FileIO/SmlRideFile.cpp FileIO/Snippets.cpp FileIO/SrdRideFile.cpp FileIO/SrmRideFile.cpp FileIO/SyncRideFile.cpp \
|
|
FileIO/TacxCafRideFile.cpp FileIO/TcxParser.cpp FileIO/TcxRideFile.cpp FileIO/TxtRideFile.cpp FileIO/WkoRideFile.cpp \
|
|
FileIO/XDataDialog.cpp FileIO/XDataTableModel.cpp FileIO/FilterHRV.cpp FileIO/HrvMeasuresCsvImport.cpp \
|
|
FileIO/LocationInterpolation.cpp FileIO/TTSReader.cpp FileIO/EpmRideFile.cpp FileIO/EpmParser.cpp
|
|
|
|
## GUI Elements and Dialogs
|
|
SOURCES += Gui/AboutDialog.cpp Gui/AddIntervalDialog.cpp Gui/AnalysisSidebar.cpp Gui/ChooseCyclistDialog.cpp Gui/ColorButton.cpp \
|
|
Gui/Colors.cpp Gui/CompareDateRange.cpp Gui/CompareInterval.cpp Gui/ComparePane.cpp Gui/ConfigDialog.cpp Gui/DiarySidebar.cpp \
|
|
Gui/DragBar.cpp Gui/EstimateCPDialog.cpp Gui/GcCrashDialog.cpp Gui/GcSideBarItem.cpp Gui/GcToolBar.cpp Gui/GcWindowLayout.cpp \
|
|
Gui/GcWindowRegistry.cpp Gui/GenerateHeatMapDialog.cpp Gui/GProgressDialog.cpp Gui/HelpWhatsThis.cpp Gui/HelpWindow.cpp \
|
|
Gui/IntervalTreeView.cpp Gui/LTMSidebar.cpp Gui/MainWindow.cpp Gui/NewCyclistDialog.cpp Gui/Pages.cpp Gui/RideNavigator.cpp Gui/SaveDialogs.cpp \
|
|
Gui/SearchBox.cpp Gui/SearchFilterBox.cpp Gui/SolveCPDialog.cpp Gui/Tab.cpp Gui/TabView.cpp Gui/ToolsRhoEstimator.cpp Gui/Views.cpp \
|
|
Gui/BatchExportDialog.cpp Gui/DownloadRideDialog.cpp Gui/ManualRideDialog.cpp Gui/EditUserMetricDialog.cpp Gui/NewMainWindow.cpp Gui/NewSideBar.cpp \
|
|
Gui/MergeActivityWizard.cpp Gui/RideImportWizard.cpp Gui/SplitActivityWizard.cpp Gui/SolverDisplay.cpp Gui/MetricSelect.cpp \
|
|
Gui/AddChartWizard.cpp
|
|
|
|
## Models and Metrics
|
|
SOURCES += Metrics/aBikeScore.cpp Metrics/aCoggan.cpp Metrics/AerobicDecoupling.cpp Metrics/Banister.cpp Metrics/BasicRideMetrics.cpp \
|
|
Metrics/BikeScore.cpp Metrics/Coggan.cpp Metrics/CPSolver.cpp Metrics/DanielsPoints.cpp Metrics/Estimator.cpp \
|
|
Metrics/ExtendedCriticalPower.cpp Metrics/GOVSS.cpp Metrics/HrTimeInZone.cpp Metrics/HrZones.cpp Metrics/LeftRightBalance.cpp \
|
|
Metrics/PaceTimeInZone.cpp Metrics/PaceZones.cpp Metrics/PDModel.cpp Metrics/PeakPace.cpp Metrics/PeakPower.cpp Metrics/PeakHr.cpp \
|
|
Metrics/PMCData.cpp Metrics/PowerProfile.cpp Metrics/RideMetadata.cpp Metrics/RideMetric.cpp Metrics/RunMetrics.cpp \
|
|
Metrics/SwimMetrics.cpp Metrics/SpecialFields.cpp Metrics/Statistic.cpp Metrics/SustainMetric.cpp Metrics/SwimScore.cpp \
|
|
Metrics/TimeInZone.cpp Metrics/TRIMPPoints.cpp Metrics/UserMetric.cpp Metrics/UserMetricParser.cpp Metrics/VDOTCalculator.cpp \
|
|
Metrics/VDOT.cpp Metrics/WattsPerKilogram.cpp Metrics/WPrime.cpp Metrics/Zones.cpp Metrics/HrvMetrics.cpp
|
|
|
|
## Planning and Compliance
|
|
SOURCES += Planning/PlanningWindow.cpp
|
|
|
|
## Contributed solutions
|
|
SOURCES += ../qtsolutions/codeeditor/codeeditor.cpp ../qtsolutions/json/mvjson.cpp ../qtsolutions/qwtcurve/qwt_plot_gapped_curve.cpp \
|
|
../qxt/src/qxtspanslider.cpp ../qxt/src/qxtstringspinbox.cpp ../qzip/zip.cpp \
|
|
../lmfit/lmcurve.c ../lmfit/lmmin.c \
|
|
../levmar/Axb.c ../levmar/lm_core.c ../levmar/lmbc_core.c \
|
|
../levmar/lmblec_core.c ../levmar/lmbleic_core.c ../levmar/lmlec.c ../levmar/misc.c \
|
|
../levmar/Axb_core.c ../levmar/lm.c ../levmar/lmbc.c ../levmar/lmblec.c ../levmar/lmbleic.c \
|
|
../levmar/lmlec_core.c ../levmar/misc_core.c
|
|
|
|
## Train View Components
|
|
SOURCES += Train/AddDeviceWizard.cpp Train/CalibrationData.cpp Train/ComputrainerController.cpp Train/Computrainer.cpp Train/DeviceConfiguration.cpp \
|
|
Train/DeviceTypes.cpp Train/DialWindow.cpp Train/ErgDB.cpp Train/ErgDBDownloadDialog.cpp Train/ErgFile.cpp Train/ErgFilePlot.cpp \
|
|
Train/Library.cpp Train/LibraryParser.cpp Train/MeterWidget.cpp Train/NullController.cpp Train/RealtimeController.cpp \
|
|
Train/RealtimeData.cpp Train/RealtimePlot.cpp Train/RealtimePlotWindow.cpp Train/RemoteControl.cpp Train/SpinScanPlot.cpp \
|
|
Train/SpinScanPlotWindow.cpp Train/SpinScanPolarPlot.cpp Train/GarminServiceHelper.cpp Train/PhysicsUtility.cpp Train/BicycleSim.cpp \
|
|
Train/PolynomialRegression.cpp
|
|
|
|
greaterThan(QT_MAJOR_VERSION, 4) {
|
|
SOURCES += Train/TodaysPlanWorkoutDownload.cpp
|
|
}
|
|
|
|
SOURCES += Train/TrainBottom.cpp Train/TrainDB.cpp Train/TrainSidebar.cpp \
|
|
Train/VideoLayoutParser.cpp Train/VideoSyncFile.cpp Train/WorkoutPlotWindow.cpp Train/WebPageWindow.cpp \
|
|
Train/WorkoutWidget.cpp Train/WorkoutWidgetItems.cpp Train/WorkoutWindow.cpp Train/WorkoutWizard.cpp Train/ZwoParser.cpp
|
|
|
|
## Crash Handling
|
|
win32-msvc* {
|
|
SOURCES += Core/WindowsCrashHandler.cpp
|
|
}
|
|
|
|
###======================================
|
|
### PENDING SOURCE FILES [not active yet]
|
|
###======================================
|
|
|
|
DEFERRES += Core/RouteWindow.h Core/RouteWindow.cpp Core/RouteItem.h Core/RouteItem.cpp
|
|
|
|
###====================
|
|
### MISCELLANEOUS FILES
|
|
###====================
|
|
|
|
OTHER_FILES += Resources/python/library.py Python/SIP/goldencheetah.sip
|
|
|