qgroundcontrol.pro 30.6 KB
Newer Older
1 2 3 4 5 6
# -------------------------------------------------
# QGroundControl - Micro Air Vehicle Groundstation
# Please see our website at <http://qgroundcontrol.org>
# Maintainer:
# Lorenz Meier <lm@inf.ethz.ch>
# (c) 2009-2015 QGroundControl Developers
Lorenz Meier's avatar
Lorenz Meier committed
7
# License terms set in COPYING.md
8 9
# -------------------------------------------------

dogmaphobic's avatar
dogmaphobic committed
10
exists($${OUT_PWD}/qgroundcontrol.pro) {
11
    error("You must use shadow build (e.g. mkdir build; cd build; qmake ../qgroundcontrol.pro).")
dogmaphobic's avatar
dogmaphobic committed
12
}
13 14 15

message(Qt version $$[QT_VERSION])

16 17
!equals(QT_MAJOR_VERSION, 5) | !greaterThan(QT_MINOR_VERSION, 4) {
    error("Unsupported Qt version, 5.5+ is required")
18
}
19

20 21
include(QGCCommon.pri)

Daniel Agar's avatar
Daniel Agar committed
22
TARGET   = QGroundControl
23 24 25 26
TEMPLATE = app

DebugBuild {
    DESTDIR  = $${OUT_PWD}/debug
dogmaphobic's avatar
dogmaphobic committed
27
} else {
28 29 30 31 32 33 34 35 36
    DESTDIR  = $${OUT_PWD}/release
}

# Load additional config flags from user_config.pri
exists(user_config.pri):infile(user_config.pri, CONFIG) {
    CONFIG += $$fromfile(user_config.pri, CONFIG)
    message($$sprintf("Using user-supplied additional config: '%1' specified in user_config.pri", $$fromfile(user_config.pri, CONFIG)))
}

dogmaphobic's avatar
dogmaphobic committed
37 38 39 40 41 42 43 44 45 46 47 48
# Bluetooth
contains (DEFINES, QGC_DISABLE_BLUETOOTH) {
    message("Skipping support for Bluetooth (manual override from command line)")
    DEFINES -= QGC_ENABLE_BLUETOOTH
} else:exists(user_config.pri):infile(user_config.pri, DEFINES, QGC_DISABLE_BLUETOOTH) {
    message("Skipping support for Bluetooth (manual override from user_config.pri)")
    DEFINES -= QGC_ENABLE_BLUETOOTH
} else:exists(user_config.pri):infile(user_config.pri, DEFINES, QGC_ENABLE_BLUETOOTH) {
    message("Including support for Bluetooth (manual override from user_config.pri)")
    DEFINES += QGC_ENABLE_BLUETOOTH
}

49 50 51
# USB Camera and UVC Video Sources
contains (DEFINES, QGC_DISABLE_UVC) {
    message("Skipping support for UVC devices (manual override from command line)")
52
    DEFINES += QGC_DISABLE_UVC
53 54
} else:exists(user_config.pri):infile(user_config.pri, DEFINES, QGC_DISABLE_UVC) {
    message("Skipping support for UVC devices (manual override from user_config.pri)")
55
    DEFINES += QGC_DISABLE_UVC
dogmaphobic's avatar
dogmaphobic committed
56 57 58 59 60
} else:LinuxBuild {
    contains(QT_VERSION, 5.5.1) {
        message("Skipping support for UVC devices (conflict with Qt 5.5.1 on Ubuntu)")
        DEFINES += QGC_DISABLE_UVC
    }
61 62
}

63 64 65 66 67 68 69
LinuxBuild {
    CONFIG += link_pkgconfig
}

# Qt configuration

CONFIG += qt \
70
    thread \
Daniel Agar's avatar
Daniel Agar committed
71
    c++11 \
72

73 74 75 76 77 78 79 80 81 82 83 84 85 86
#
# Plugin configuration
#
# This allows you to build custom versions of QGC which only include your specific vehicle plugin. To remove support for
# a firmware type completely remove both the Plugin and PluginFactory entries. To include custom support for an existing
# plugin type remove PluginFactory only. Then provide you own implementation of FirmwarePluginFactory and use the
# FirmwarePlugin and AutoPilotPlugin classes as the base clase for your derived plugin implementation.
#
CONFIG += \
    APMFirmwarePlugin \
    PX4FirmwarePlugin \
    APMFirmwarePluginFactory \
    PX4FirmwarePluginFactory \

87 88 89 90 91 92
contains(DEFINES, ENABLE_VERBOSE_OUTPUT) {
    message("Enable verbose compiler output (manual override from command line)")
} else:exists(user_config.pri):infile(user_config.pri, DEFINES, ENABLE_VERBOSE_OUTPUT) {
    message("Enable verbose compiler output (manual override from user_config.pri)")
} else {
CONFIG += \
Daniel Agar's avatar
Daniel Agar committed
93
    silent
94
}
95 96 97 98 99

QT += \
    concurrent \
    gui \
    location \
100
    network \
101 102 103 104 105 106 107 108
    opengl \
    positioning \
    qml \
    quick \
    quickwidgets \
    sql \
    svg \
    widgets \
109 110 111 112 113 114 115
    xml

# Multimedia only used if QVC is enabled
!contains (DEFINES, QGC_DISABLE_UVC) {
    QT += \
        multimedia
}
116 117

!MobileBuild {
dogmaphobic's avatar
dogmaphobic committed
118
QT += \
119 120 121 122
    printsupport \
    serialport \
}

dogmaphobic's avatar
dogmaphobic committed
123
contains(DEFINES, QGC_ENABLE_BLUETOOTH) {
dogmaphobic's avatar
dogmaphobic committed
124 125 126 127
QT += \
    bluetooth \
}

128 129
#  testlib is needed even in release flavor for QSignalSpy support
QT += testlib
130 131 132 133
ReleaseBuild {
    # We don't need the testlib console in release mode
    QT.testlib.CONFIG -= console
}
134 135 136 137 138 139 140 141
#
# OS Specific settings
#

MacBuild {
    QMAKE_INFO_PLIST    = Custom-Info.plist
    ICON                = $${BASEDIR}/resources/icons/macx.icns
    OTHER_FILES        += Custom-Info.plist
142 143 144
equals(QT_MAJOR_VERSION, 5) | greaterThan(QT_MINOR_VERSION, 5) {
    LIBS               += -framework ApplicationServices
}
145 146 147 148 149 150 151 152 153
}

iOSBuild {
    BUNDLE.files        = $$files($$PWD/ios/AppIcon*.png) $$PWD/ios/QGCLaunchScreen.xib
    QMAKE_BUNDLE_DATA  += BUNDLE
    LIBS               += -framework AVFoundation
    #-- Info.plist (need an "official" one for the App Store)
    ForAppStore {
        message(App Store Build)
154 155 156 157 158 159
        #-- Create official, versioned Info.plist
        APP_STORE = $$system(cd $${BASEDIR} && $${BASEDIR}/tools/update_ios_version.sh $${BASEDIR}/ios/iOSForAppStore-Info-Source.plist $${BASEDIR}/ios/iOSForAppStore-Info.plist)
        APP_ERROR = $$find(APP_STORE, "Error")
        count(APP_ERROR, 1) {
            error("Error building .plist file. 'ForAppStore' builds are only possible through the official build system.")
        }
160 161 162 163 164 165 166 167 168 169 170 171 172
        QMAKE_INFO_PLIST  = $${BASEDIR}/ios/iOSForAppStore-Info.plist
        OTHER_FILES      += $${BASEDIR}/ios/iOSForAppStore-Info.plist
    } else {
        QMAKE_INFO_PLIST  = $${BASEDIR}/ios/iOS-Info.plist
        OTHER_FILES      += $${BASEDIR}/ios/iOS-Info.plist
    }
    #-- TODO: Add iTunesArtwork
}

LinuxBuild {
    CONFIG += qesp_linux_udev
}

173 174 175 176
RC_ICONS = resources/icons/qgroundcontrol.ico
QMAKE_TARGET_COMPANY = "qgroundcontrol.org"
QMAKE_TARGET_DESCRIPTION = "Open source ground control app provided by QGroundControl dev team"
QMAKE_TARGET_COPYRIGHT = "Copyright (C) 2016 QGroundControl Development Team. All rights reserved."
Daniel Agar's avatar
Daniel Agar committed
177
QMAKE_TARGET_PRODUCT = "QGroundControl"
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214

#
# Build-specific settings
#

DebugBuild {
!iOSBuild {
    CONFIG += console
}
}

!MobileBuild {
# qextserialport should not be used by general QGroundControl code. Use QSerialPort instead. This is only
# here to support special case Firmware Upgrade code.
include(libs/qextserialport/src/qextserialport.pri)
}

#
# Our QtLocation "plugin"
#

include(src/QtLocationPlugin/QGCLocationPlugin.pri)

#
# External library configuration
#

include(QGCExternalLibs.pri)

#
# Main QGroundControl portion of project file
#

RESOURCES += \
    qgroundcontrol.qrc \
    qgcresources.qrc

215 216 217 218 219
DebugBuild {
    # Unit Test resources
    RESOURCES += UnitTest.qrc
}

220 221 222 223 224 225 226 227 228
DEPENDPATH += \
    . \
    plugins

INCLUDEPATH += .

INCLUDEPATH += \
    include/ui \
    src \
Don Gagne's avatar
Don Gagne committed
229
    src/AnalyzeView \
230 231 232 233 234
    src/audio \
    src/AutoPilotPlugins \
    src/comm \
    src/FlightDisplay \
    src/FlightMap \
235
    src/FlightMap/Widgets \
236 237
    src/input \
    src/Joystick \
Jimmy Johnson's avatar
Jimmy Johnson committed
238
    src/FollowMe \
239
    src/GPS \
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254
    src/lib/qmapcontrol \
    src/MissionEditor \
    src/MissionManager \
    src/QmlControls \
    src/uas \
    src/ui \
    src/ui/linechart \
    src/ui/map \
    src/ui/mapdisplay \
    src/ui/mission \
    src/ui/px4_configuration \
    src/ui/toolbar \
    src/ui/uas \
    src/VehicleSetup \
    src/ViewWidgets \
dogmaphobic's avatar
dogmaphobic committed
255 256
    src/QtLocationPlugin \
    src/QtLocationPlugin/QMLControl \
Jimmy Johnson's avatar
Jimmy Johnson committed
257
    src/PositionManager \
258 259 260

FORMS += \
    src/ui/MainWindow.ui \
261
    src/QGCQmlWidgetHolder.ui \
262 263 264

!MobileBuild {
FORMS += \
265 266
    src/ui/uas/QGCUnconnectedInfoWidget.ui \
    src/ui/uas/UASMessageView.ui \
267 268 269 270 271 272 273
    src/ui/Linechart.ui \
    src/ui/MultiVehicleDockWidget.ui \
    src/ui/QGCDataPlot2D.ui \
    src/ui/QGCHilConfiguration.ui \
    src/ui/QGCHilFlightGearConfiguration.ui \
    src/ui/QGCHilJSBSimConfiguration.ui \
    src/ui/QGCHilXPlaneConfiguration.ui \
274
    src/ui/QGCMapRCToParamDialog.ui \
275
    src/ui/QGCMAVLinkInspector.ui \
276
    src/ui/QGCMAVLinkLogPlayer.ui \
277 278 279 280 281 282 283
    src/ui/QGCTabbedInfoView.ui \
    src/ui/QGCUASFileView.ui \
    src/ui/QGCUASFileViewMulti.ui \
    src/ui/uas/UASQuickView.ui \
    src/ui/uas/UASQuickViewItemSelect.ui \
}

284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351
#
# Unit Test specific configuration goes here (requires full debug build with all plugins)
#

DebugBuild { PX4FirmwarePlugin { PX4FirmwarePluginFactory  { APMFirmwarePlugin { APMFirmwarePluginFactory { !MobileBuild {
    DEFINES += UNITTEST_BUILD

    INCLUDEPATH += \
        src/qgcunittest

    HEADERS += \
        src/AnalyzeView/LogDownloadTest.h \
        src/FactSystem/FactSystemTestBase.h \
        src/FactSystem/FactSystemTestGeneric.h \
        src/FactSystem/FactSystemTestPX4.h \
        src/FactSystem/ParameterManagerTest.h \
        src/MissionManager/ComplexMissionItemTest.h \
        src/MissionManager/MissionCommandTreeTest.h \
        src/MissionManager/MissionControllerTest.h \
        src/MissionManager/MissionControllerManagerTest.h \
        src/MissionManager/MissionItemTest.h \
        src/MissionManager/MissionManagerTest.h \
        src/MissionManager/SimpleMissionItemTest.h \
        src/qgcunittest/GeoTest.h \
        src/qgcunittest/FileDialogTest.h \
        src/qgcunittest/FileManagerTest.h \
        src/qgcunittest/FlightGearTest.h \
        src/qgcunittest/LinkManagerTest.h \
        src/qgcunittest/MainWindowTest.h \
        src/qgcunittest/MavlinkLogTest.h \
        src/qgcunittest/MessageBoxTest.h \
        src/qgcunittest/MultiSignalSpy.h \
        src/qgcunittest/RadioConfigTest.h \
        src/qgcunittest/TCPLinkTest.h \
        src/qgcunittest/TCPLoopBackServer.h \
        src/qgcunittest/UnitTest.h \

    SOURCES += \
        src/AnalyzeView/LogDownloadTest.cc \
        src/FactSystem/FactSystemTestBase.cc \
        src/FactSystem/FactSystemTestGeneric.cc \
        src/FactSystem/FactSystemTestPX4.cc \
        src/FactSystem/ParameterManagerTest.cc \
        src/MissionManager/ComplexMissionItemTest.cc \
        src/MissionManager/MissionCommandTreeTest.cc \
        src/MissionManager/MissionControllerTest.cc \
        src/MissionManager/MissionControllerManagerTest.cc \
        src/MissionManager/MissionItemTest.cc \
        src/MissionManager/MissionManagerTest.cc \
        src/MissionManager/SimpleMissionItemTest.cc \
        src/qgcunittest/GeoTest.cc \
        src/qgcunittest/FileDialogTest.cc \
        src/qgcunittest/FileManagerTest.cc \
        src/qgcunittest/FlightGearTest.cc \
        src/qgcunittest/LinkManagerTest.cc \
        src/qgcunittest/MainWindowTest.cc \
        src/qgcunittest/MavlinkLogTest.cc \
        src/qgcunittest/MessageBoxTest.cc \
        src/qgcunittest/MultiSignalSpy.cc \
        src/qgcunittest/RadioConfigTest.cc \
        src/qgcunittest/TCPLinkTest.cc \
        src/qgcunittest/TCPLoopBackServer.cc \
        src/qgcunittest/UnitTest.cc \
        src/qgcunittest/UnitTestList.cc \
} } } } } }

# Main QGC Headers and Source files

352 353 354 355 356 357 358 359 360 361 362
HEADERS += \
    src/audio/QGCAudioWorker.h \
    src/CmdLineOptParser.h \
    src/comm/LinkConfiguration.h \
    src/comm/LinkInterface.h \
    src/comm/LinkManager.h \
    src/comm/MAVLinkProtocol.h \
    src/comm/ProtocolInterface.h \
    src/comm/QGCMAVLink.h \
    src/comm/TCPLink.h \
    src/comm/UDPLink.h \
363
    src/FirmwarePlugin/PX4/px4_custom_mode.h \
364
    src/FlightDisplay/VideoManager.h \
365
    src/FlightMap/FlightMapSettings.h \
366
    src/FlightMap/Widgets/ValuesWidgetController.h \
367 368 369 370
    src/GAudioOutput.h \
    src/HomePositionManager.h \
    src/Joystick/Joystick.h \
    src/Joystick/JoystickManager.h \
371
    src/VehicleSetup/JoystickConfigController.h \
Jimmy Johnson's avatar
Jimmy Johnson committed
372
    src/FollowMe/FollowMe.h \
Jimmy Johnson's avatar
Jimmy Johnson committed
373
    src/PositionManager/SimulatedPosition.h \
Don Gagne's avatar
Don Gagne committed
374
    src/JsonHelper.h \
375 376
    src/LogCompressor.h \
    src/MG.h \
377
    src/MissionManager/ComplexMissionItem.h \
378 379
    src/MissionManager/GeoFenceController.h \
    src/MissionManager/GeoFenceManager.h \
380
    src/MissionManager/MissionCommandList.h \
381 382
    src/MissionManager/MissionCommandTree.h \
    src/MissionManager/MissionCommandUIInfo.h \
383
    src/MissionManager/MissionController.h \
384 385
    src/MissionManager/MissionItem.h \
    src/MissionManager/MissionManager.h \
386
    src/MissionManager/PlanElementController.h \
387 388 389 390
    src/MissionManager/QGCMapPolygon.h \
    src/MissionManager/RallyPoint.h \
    src/MissionManager/RallyPointController.h \
    src/MissionManager/RallyPointManager.h \
391
    src/MissionManager/SimpleMissionItem.h \
392
    src/MissionManager/SurveyMissionItem.h \
393
    src/MissionManager/VisualMissionItem.h \
394 395 396 397 398
    src/QGC.h \
    src/QGCApplication.h \
    src/QGCComboBox.h \
    src/QGCConfig.h \
    src/QGCDockWidget.h \
399
    src/QGCFileDownload.h \
400 401
    src/QGCGeo.h \
    src/QGCLoggingCategory.h \
Don Gagne's avatar
Don Gagne committed
402
    src/QGCMapPalette.h \
Don Gagne's avatar
Don Gagne committed
403
    src/QGCMobileFileDialogController.h \
404 405 406 407 408
    src/QGCPalette.h \
    src/QGCQmlWidgetHolder.h \
    src/QGCQuickWidget.h \
    src/QGCTemporaryFile.h \
    src/QGCToolbox.h \
409
    src/QmlControls/AppMessages.h \
410 411 412
    src/QmlControls/CoordinateVector.h \
    src/QmlControls/MavlinkQmlSingleton.h \
    src/QmlControls/ParameterEditorController.h \
Don Gagne's avatar
Don Gagne committed
413
    src/QmlControls/RCChannelMonitorController.h \
414 415 416 417 418 419
    src/QmlControls/ScreenToolsController.h \
    src/QmlControls/QGroundControlQmlGlobal.h \
    src/QmlControls/QmlObjectListModel.h \
    src/uas/UAS.h \
    src/uas/UASInterface.h \
    src/uas/UASMessageHandler.h \
Gus Grubba's avatar
Gus Grubba committed
420
    src/Vehicle/MAVLinkLogManager.h \
421 422
    src/ui/toolbar/MainToolBarController.h \
    src/QmlControls/QGCImageProvider.h \
dogmaphobic's avatar
dogmaphobic committed
423
    src/QtLocationPlugin/QMLControl/QGCMapEngineManager.h \
Andreas Bircher's avatar
Andreas Bircher committed
424 425
    src/PositionManager/PositionManager.h \
    src/AnalyzeView/ExifParser.h
426

427 428 429 430
AndroidBuild {
HEADERS += \
}

431 432 433 434 435 436 437
DebugBuild {
HEADERS += \
    src/comm/MockLink.h \
    src/comm/MockLinkFileServer.h \
    src/comm/MockLinkMissionItemHandler.h \
}

438 439 440
WindowsBuild {
    PRECOMPILED_HEADER += src/stable_headers.h
    HEADERS += src/stable_headers.h
Daniel Agar's avatar
Daniel Agar committed
441
    CONFIG -= silent
442
    OTHER_FILES += .appveyor.yml
443 444
}

dogmaphobic's avatar
dogmaphobic committed
445
contains(DEFINES, QGC_ENABLE_BLUETOOTH) {
dogmaphobic's avatar
dogmaphobic committed
446 447
    HEADERS += \
    src/comm/BluetoothLink.h \
dogmaphobic's avatar
dogmaphobic committed
448
}
449 450 451

!iOSBuild {
HEADERS += \
452
    src/comm/QGCSerialPortInfo.h \
453 454 455 456 457
    src/comm/SerialLink.h \
}

!MobileBuild {
HEADERS += \
Don Gagne's avatar
Don Gagne committed
458
    src/AnalyzeView/GeoTagController.h \
459
    src/AnalyzeView/LogDownloadController.h \
dogmaphobic's avatar
dogmaphobic committed
460
    src/comm/LogReplayLink.h \
461 462 463 464
    src/comm/QGCFlightGearLink.h \
    src/comm/QGCHilLink.h \
    src/comm/QGCJSBSimLink.h \
    src/comm/QGCXPlaneLink.h \
465
    src/Joystick/JoystickSDL.h \
466 467 468
    src/QGCFileDialog.h \
    src/QGCMessageBox.h \
    src/uas/FileManager.h \
469 470 471 472 473 474 475 476
    src/ui/HILDockWidget.h \
    src/ui/linechart/ChartPlot.h \
    src/ui/linechart/IncrementalPlot.h \
    src/ui/linechart/LinechartPlot.h \
    src/ui/linechart/Linecharts.h \
    src/ui/linechart/LinechartWidget.h \
    src/ui/linechart/Scrollbar.h \
    src/ui/linechart/ScrollZoomer.h \
Don Gagne's avatar
Don Gagne committed
477
    src/ui/MainWindow.h \
478
    src/ui/MAVLinkDecoder.h \
479
    src/ui/MultiVehicleDockWidget.h \
480 481 482 483
    src/ui/QGCMAVLinkLogPlayer.h \
    src/ui/QGCMapRCToParamDialog.h \
    src/ui/uas/UASMessageView.h \
    src/ui/uas/QGCUnconnectedInfoWidget.h \
484 485 486 487 488 489 490 491 492 493 494 495 496 497
    src/ui/QGCDataPlot2D.h \
    src/ui/QGCHilConfiguration.h \
    src/ui/QGCHilFlightGearConfiguration.h \
    src/ui/QGCHilJSBSimConfiguration.h \
    src/ui/QGCHilXPlaneConfiguration.h \
    src/ui/QGCMAVLinkInspector.h \
    src/ui/QGCTabbedInfoView.h \
    src/ui/QGCUASFileView.h \
    src/ui/QGCUASFileViewMulti.h \
    src/ui/uas/UASQuickView.h \
    src/ui/uas/UASQuickViewGaugeItem.h \
    src/ui/uas/UASQuickViewItem.h \
    src/ui/uas/UASQuickViewItemSelect.h \
    src/ui/uas/UASQuickViewTextItem.h \
498 499 500 501 502 503 504 505 506
    src/GPS/Drivers/src/gps_helper.h \
    src/GPS/Drivers/src/ubx.h \
    src/GPS/definitions.h \
    src/GPS/vehicle_gps_position.h \
    src/GPS/satellite_info.h \
    src/GPS/RTCM/RTCMMavlink.h \
    src/GPS/GPSManager.h \
    src/GPS/GPSPositionMessage.h \
    src/GPS/GPSProvider.h \
507 508 509 510 511
    src/ViewWidgets/CustomCommandWidget.h \
    src/ViewWidgets/CustomCommandWidgetController.h \
    src/ViewWidgets/ViewWidgetController.h \
}

Don Gagne's avatar
Don Gagne committed
512 513 514 515 516
iOSBuild {
    OBJECTIVE_SOURCES += \
        src/audio/QGCAudioWorker_iOS.mm \
        src/MobileScreenMgr.mm \
}
517

Don Gagne's avatar
Don Gagne committed
518
AndroidBuild {
Don Gagne's avatar
Don Gagne committed
519 520 521 522
    SOURCES += src/MobileScreenMgr.cc \
}


523 524 525 526 527 528
SOURCES += \
    src/audio/QGCAudioWorker.cpp \
    src/CmdLineOptParser.cc \
    src/comm/LinkConfiguration.cc \
    src/comm/LinkManager.cc \
    src/comm/MAVLinkProtocol.cc \
529
    src/comm/QGCMAVLink.cc \
530 531
    src/comm/TCPLink.cc \
    src/comm/UDPLink.cc \
532
    src/FlightDisplay/VideoManager.cc \
533
    src/FlightMap/FlightMapSettings.cc \
534
    src/FlightMap/Widgets/ValuesWidgetController.cc \
535 536 537 538
    src/GAudioOutput.cc \
    src/HomePositionManager.cc \
    src/Joystick/Joystick.cc \
    src/Joystick/JoystickManager.cc \
539
    src/VehicleSetup/JoystickConfigController.cc \
Don Gagne's avatar
Don Gagne committed
540
    src/JsonHelper.cc \
Jimmy Johnson's avatar
Jimmy Johnson committed
541
    src/FollowMe/FollowMe.cc \
542 543
    src/LogCompressor.cc \
    src/main.cc \
544
    src/MissionManager/ComplexMissionItem.cc \
545 546
    src/MissionManager/GeoFenceController.cc \
    src/MissionManager/GeoFenceManager.cc \
547
    src/MissionManager/MissionCommandList.cc \
548 549
    src/MissionManager/MissionCommandTree.cc \
    src/MissionManager/MissionCommandUIInfo.cc \
550
    src/MissionManager/MissionController.cc \
551 552
    src/MissionManager/MissionItem.cc \
    src/MissionManager/MissionManager.cc \
553
    src/MissionManager/PlanElementController.cc \
554 555 556 557
    src/MissionManager/QGCMapPolygon.cc \
    src/MissionManager/RallyPoint.cc \
    src/MissionManager/RallyPointController.cc \
    src/MissionManager/RallyPointManager.cc \
558
    src/MissionManager/SimpleMissionItem.cc \
559
    src/MissionManager/SurveyMissionItem.cc \
560
    src/MissionManager/VisualMissionItem.cc \
561 562 563 564
    src/QGC.cc \
    src/QGCApplication.cc \
    src/QGCComboBox.cc \
    src/QGCDockWidget.cc \
565
    src/QGCFileDownload.cc \
566
    src/QGCLoggingCategory.cc \
Don Gagne's avatar
Don Gagne committed
567
    src/QGCMapPalette.cc \
Don Gagne's avatar
Don Gagne committed
568
    src/QGCMobileFileDialogController.cc \
569 570
    src/QGCPalette.cc \
    src/QGCQuickWidget.cc \
571
    src/QGCQmlWidgetHolder.cpp \
572 573 574
    src/QGCTemporaryFile.cc \
    src/QGCToolbox.cc \
    src/QGCGeo.cc \
575
    src/QmlControls/AppMessages.cc \
576 577
    src/QmlControls/CoordinateVector.cc \
    src/QmlControls/ParameterEditorController.cc \
Don Gagne's avatar
Don Gagne committed
578
    src/QmlControls/RCChannelMonitorController.cc \
579 580 581 582 583
    src/QmlControls/ScreenToolsController.cc \
    src/QmlControls/QGroundControlQmlGlobal.cc \
    src/QmlControls/QmlObjectListModel.cc \
    src/uas/UAS.cc \
    src/uas/UASMessageHandler.cc \
Gus Grubba's avatar
Gus Grubba committed
584
    src/Vehicle/MAVLinkLogManager.cc \
585 586
    src/ui/toolbar/MainToolBarController.cc \
    src/QmlControls/QGCImageProvider.cc \
dogmaphobic's avatar
dogmaphobic committed
587
    src/QtLocationPlugin/QMLControl/QGCMapEngineManager.cc \
Jimmy Johnson's avatar
Jimmy Johnson committed
588
    src/PositionManager/SimulatedPosition.cc \
Andreas Bircher's avatar
Andreas Bircher committed
589
    src/PositionManager/PositionManager.cpp \
590
    src/AnalyzeView/ExifParser.cc
591

592 593 594 595 596 597 598
DebugBuild {
SOURCES += \
    src/comm/MockLink.cc \
    src/comm/MockLinkFileServer.cc \
    src/comm/MockLinkMissionItemHandler.cc \
}

599 600
!iOSBuild {
SOURCES += \
601
    src/comm/QGCSerialPortInfo.cc \
602 603 604
    src/comm/SerialLink.cc \
}

dogmaphobic's avatar
dogmaphobic committed
605
contains(DEFINES, QGC_ENABLE_BLUETOOTH) {
dogmaphobic's avatar
dogmaphobic committed
606 607 608 609
    SOURCES += \
    src/comm/BluetoothLink.cc \
}

610 611
!MobileBuild {
SOURCES += \
Don Gagne's avatar
Don Gagne committed
612
    src/AnalyzeView/GeoTagController.cc \
613
    src/AnalyzeView/LogDownloadController.cc \
614 615 616 617 618
    src/ui/uas/UASMessageView.cc \
    src/uas/FileManager.cc \
    src/ui/uas/QGCUnconnectedInfoWidget.cc \
    src/ui/MAVLinkDecoder.cc \
    src/ui/QGCMapRCToParamDialog.cpp \
dogmaphobic's avatar
dogmaphobic committed
619
    src/comm/LogReplayLink.cc \
620
    src/QGCFileDialog.cc \
dogmaphobic's avatar
dogmaphobic committed
621
    src/ui/QGCMAVLinkLogPlayer.cc \
622 623 624
    src/comm/QGCFlightGearLink.cc \
    src/comm/QGCJSBSimLink.cc \
    src/comm/QGCXPlaneLink.cc \
625
    src/Joystick/JoystickSDL.cc \
626 627 628 629 630 631 632 633
    src/ui/HILDockWidget.cc \
    src/ui/linechart/ChartPlot.cc \
    src/ui/linechart/IncrementalPlot.cc \
    src/ui/linechart/LinechartPlot.cc \
    src/ui/linechart/Linecharts.cc \
    src/ui/linechart/LinechartWidget.cc \
    src/ui/linechart/Scrollbar.cc \
    src/ui/linechart/ScrollZoomer.cc \
Don Gagne's avatar
Don Gagne committed
634
    src/ui/MainWindow.cc \
635 636 637 638 639 640 641 642 643 644 645 646 647 648 649
    src/ui/MultiVehicleDockWidget.cc \
    src/ui/QGCDataPlot2D.cc \
    src/ui/QGCHilConfiguration.cc \
    src/ui/QGCHilFlightGearConfiguration.cc \
    src/ui/QGCHilJSBSimConfiguration.cc \
    src/ui/QGCHilXPlaneConfiguration.cc \
    src/ui/QGCMAVLinkInspector.cc \
    src/ui/QGCTabbedInfoView.cpp \
    src/ui/QGCUASFileView.cc \
    src/ui/QGCUASFileViewMulti.cc \
    src/ui/uas/UASQuickView.cc \
    src/ui/uas/UASQuickViewGaugeItem.cc \
    src/ui/uas/UASQuickViewItem.cc \
    src/ui/uas/UASQuickViewItemSelect.cc \
    src/ui/uas/UASQuickViewTextItem.cc \
650 651 652 653 654
    src/GPS/Drivers/src/gps_helper.cpp \
    src/GPS/Drivers/src/ubx.cpp \
    src/GPS/RTCM/RTCMMavlink.cc \
    src/GPS/GPSManager.cc \
    src/GPS/GPSProvider.cc \
655 656
    src/ViewWidgets/CustomCommandWidget.cc \
    src/ViewWidgets/CustomCommandWidgetController.cc \
657
    src/ViewWidgets/ViewWidgetController.cc
658 659
}

660
# Palette test widget in debug builds
661
DebugBuild {
662 663 664
    HEADERS += src/QmlControls/QmlTestWidget.h
    SOURCES += src/QmlControls/QmlTestWidget.cc
}
665 666 667 668 669 670

#
# Firmware Plugin Support
#

INCLUDEPATH += \
Don Gagne's avatar
Don Gagne committed
671
    src/AutoPilotPlugins/Common \
672 673 674 675 676 677
    src/FirmwarePlugin \
    src/Vehicle \
    src/VehicleSetup \

HEADERS+= \
    src/AutoPilotPlugins/AutoPilotPlugin.h \
Don Gagne's avatar
Don Gagne committed
678
    src/AutoPilotPlugins/Common/MotorComponent.h \
Don Gagne's avatar
Don Gagne committed
679
    src/AutoPilotPlugins/Common/RadioComponentController.h \
dogmaphobic's avatar
dogmaphobic committed
680
    src/AutoPilotPlugins/Common/ESP8266ComponentController.h \
681
    src/AutoPilotPlugins/Common/ESP8266Component.h \
682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699
    src/AutoPilotPlugins/Generic/GenericAutoPilotPlugin.h \
    src/FirmwarePlugin/FirmwarePluginManager.h \
    src/FirmwarePlugin/FirmwarePlugin.h \
    src/Vehicle/MultiVehicleManager.h \
    src/Vehicle/Vehicle.h \
    src/VehicleSetup/VehicleComponent.h \

!MobileBuild {
HEADERS += \
    src/VehicleSetup/FirmwareUpgradeController.h \
    src/VehicleSetup/Bootloader.h \
    src/VehicleSetup/PX4FirmwareUpgradeThread.h \
    src/VehicleSetup/FirmwareImage.h \

}

SOURCES += \
    src/AutoPilotPlugins/AutoPilotPlugin.cc \
Don Gagne's avatar
Don Gagne committed
700
    src/AutoPilotPlugins/Common/MotorComponent.cc \
Don Gagne's avatar
Don Gagne committed
701
    src/AutoPilotPlugins/Common/RadioComponentController.cc \
dogmaphobic's avatar
dogmaphobic committed
702
    src/AutoPilotPlugins/Common/ESP8266ComponentController.cc \
703
    src/AutoPilotPlugins/Common/ESP8266Component.cc \
704
    src/AutoPilotPlugins/Generic/GenericAutoPilotPlugin.cc \
705
    src/FirmwarePlugin/FirmwarePlugin.cc \
706 707 708 709 710 711
    src/FirmwarePlugin/FirmwarePluginManager.cc \
    src/Vehicle/MultiVehicleManager.cc \
    src/Vehicle/Vehicle.cc \
    src/VehicleSetup/VehicleComponent.cc \

!MobileBuild {
712
    SOURCES += \
713 714 715 716
    src/VehicleSetup/FirmwareUpgradeController.cc \
    src/VehicleSetup/Bootloader.cc \
    src/VehicleSetup/PX4FirmwareUpgradeThread.cc \
    src/VehicleSetup/FirmwareImage.cc \
717 718 719 720
    
}

# ArduPilot FirmwarePlugin
721

722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837
APMFirmwarePlugin {
    INCLUDEPATH += \
        src/AutoPilotPlugins/APM \
        src/FirmwarePlugin/APM \

    HEADERS += \
        src/FirmwarePlugin/APM/APMFirmwarePlugin.h \
        src/FirmwarePlugin/APM/APMGeoFenceManager.h \
        src/FirmwarePlugin/APM/APMParameterMetaData.h \
        src/FirmwarePlugin/APM/APMRallyPointManager.h \
        src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h \
        src/FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.h \
        src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.h \
        src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.h \
        src/AutoPilotPlugins/APM/APMAutoPilotPlugin.h \
        src/AutoPilotPlugins/APM/APMAirframeComponent.h \
        src/AutoPilotPlugins/APM/APMAirframeComponentController.h \
        src/AutoPilotPlugins/APM/APMAirframeComponentAirframes.h \
        src/AutoPilotPlugins/APM/APMAirframeLoader.h \
        src/AutoPilotPlugins/APM/APMCameraComponent.h \
        src/AutoPilotPlugins/APM/APMLightsComponent.h \
        src/AutoPilotPlugins/APM/APMCompassCal.h \
        src/AutoPilotPlugins/APM/APMFlightModesComponent.h \
        src/AutoPilotPlugins/APM/APMFlightModesComponentController.h \
        src/AutoPilotPlugins/APM/APMPowerComponent.h \
        src/AutoPilotPlugins/APM/APMRadioComponent.h \
        src/AutoPilotPlugins/APM/APMSafetyComponent.h \
        src/AutoPilotPlugins/APM/APMSensorsComponent.h \
        src/AutoPilotPlugins/APM/APMSensorsComponentController.h \
        src/AutoPilotPlugins/APM/APMTuningComponent.h \

    SOURCES += \
        src/FirmwarePlugin/APM/APMFirmwarePlugin.cc \
        src/FirmwarePlugin/APM/APMGeoFenceManager.cc \
        src/FirmwarePlugin/APM/APMParameterMetaData.cc \
        src/FirmwarePlugin/APM/APMRallyPointManager.cc \
        src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc \
        src/FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.cc \
        src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.cc \
        src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc \
        src/AutoPilotPlugins/APM/APMAutoPilotPlugin.cc \
        src/AutoPilotPlugins/APM/APMAirframeComponent.cc \
        src/AutoPilotPlugins/APM/APMAirframeComponentAirframes.cc \
        src/AutoPilotPlugins/APM/APMAirframeComponentController.cc \
        src/AutoPilotPlugins/APM/APMAirframeLoader.cc \
        src/AutoPilotPlugins/APM/APMCameraComponent.cc \
        src/AutoPilotPlugins/APM/APMLightsComponent.cc \
        src/AutoPilotPlugins/APM/APMCompassCal.cc \
        src/AutoPilotPlugins/APM/APMFlightModesComponent.cc \
        src/AutoPilotPlugins/APM/APMFlightModesComponentController.cc \
        src/AutoPilotPlugins/APM/APMPowerComponent.cc \
        src/AutoPilotPlugins/APM/APMRadioComponent.cc \
        src/AutoPilotPlugins/APM/APMSafetyComponent.cc \
        src/AutoPilotPlugins/APM/APMSensorsComponent.cc \
        src/AutoPilotPlugins/APM/APMSensorsComponentController.cc \
        src/AutoPilotPlugins/APM/APMTuningComponent.cc \
}

APMFirmwarePluginFactory {
    HEADERS += src/FirmwarePlugin/APM/APMFirmwarePluginFactory.h
    SOURCES += src/FirmwarePlugin/APM/APMFirmwarePluginFactory.cc
}

# PX4 FirmwarePlugin

PX4FirmwarePlugin {
    INCLUDEPATH += \
        src/AutoPilotPlugins/PX4 \
        src/FirmwarePlugin/PX4 \

    HEADERS+= \
        src/FirmwarePlugin/PX4/PX4FirmwarePlugin.h \
        src/FirmwarePlugin/PX4/PX4GeoFenceManager.h \
        src/FirmwarePlugin/PX4/PX4ParameterMetaData.h \
        src/AutoPilotPlugins/PX4/AirframeComponent.h \
        src/AutoPilotPlugins/PX4/AirframeComponentAirframes.h \
        src/AutoPilotPlugins/PX4/AirframeComponentController.h \
        src/AutoPilotPlugins/PX4/FlightModesComponent.h \
        src/AutoPilotPlugins/PX4/PX4AirframeLoader.h \
        src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.h \
        src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.h \
        src/AutoPilotPlugins/PX4/PowerComponent.h \
        src/AutoPilotPlugins/PX4/PowerComponentController.h \
        src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.h \
        src/AutoPilotPlugins/PX4/PX4RadioComponent.h \
        src/AutoPilotPlugins/PX4/CameraComponent.h \
        src/AutoPilotPlugins/PX4/SafetyComponent.h \
        src/AutoPilotPlugins/PX4/SensorsComponent.h \
        src/AutoPilotPlugins/PX4/SensorsComponentController.h \
        src/AutoPilotPlugins/PX4/PX4TuningComponent.h \

    SOURCES += \
        src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc \
        src/FirmwarePlugin/PX4/PX4GeoFenceManager.cc \
        src/FirmwarePlugin/PX4/PX4ParameterMetaData.cc \
        src/AutoPilotPlugins/PX4/AirframeComponent.cc \
        src/AutoPilotPlugins/PX4/AirframeComponentAirframes.cc \
        src/AutoPilotPlugins/PX4/AirframeComponentController.cc \
        src/AutoPilotPlugins/PX4/FlightModesComponent.cc \
        src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.cc \
        src/AutoPilotPlugins/PX4/PX4AirframeLoader.cc \
        src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.cc \
        src/AutoPilotPlugins/PX4/PowerComponent.cc \
        src/AutoPilotPlugins/PX4/PowerComponentController.cc \
        src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.cc \
        src/AutoPilotPlugins/PX4/PX4RadioComponent.cc \
        src/AutoPilotPlugins/PX4/CameraComponent.cc \
        src/AutoPilotPlugins/PX4/SafetyComponent.cc \
        src/AutoPilotPlugins/PX4/SensorsComponent.cc \
        src/AutoPilotPlugins/PX4/SensorsComponentController.cc \
        src/AutoPilotPlugins/PX4/PX4TuningComponent.cc \
}

PX4FirmwarePluginFactory {
    HEADERS += src/FirmwarePlugin/PX4/PX4FirmwarePluginFactory.h
    SOURCES += src/FirmwarePlugin/PX4/PX4FirmwarePluginFactory.cc
838 839 840 841 842 843 844 845 846 847
}

# Fact System code

INCLUDEPATH += \
    src/FactSystem \
    src/FactSystem/FactControls \

HEADERS += \
    src/FactSystem/Fact.h \
Don Gagne's avatar
Don Gagne committed
848
    src/FactSystem/FactGroup.h \
849
    src/FactSystem/FactControls/FactPanelController.h \
850 851 852
    src/FactSystem/FactMetaData.h \
    src/FactSystem/FactSystem.h \
    src/FactSystem/FactValidator.h \
853
    src/FactSystem/ParameterManager.h \
854
    src/FactSystem/SettingsFact.h \
855 856 857

SOURCES += \
    src/FactSystem/Fact.cc \
Don Gagne's avatar
Don Gagne committed
858
    src/FactSystem/FactGroup.cc \
859
    src/FactSystem/FactControls/FactPanelController.cc \
860 861 862
    src/FactSystem/FactMetaData.cc \
    src/FactSystem/FactSystem.cc \
    src/FactSystem/FactValidator.cc \
863
    src/FactSystem/ParameterManager.cc \
864
    src/FactSystem/SettingsFact.cc \
865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884

#-------------------------------------------------------------------------------------
# Video Streaming

INCLUDEPATH += \
    src/VideoStreaming

HEADERS += \
    src/VideoStreaming/VideoItem.h \
    src/VideoStreaming/VideoReceiver.h \
    src/VideoStreaming/VideoStreaming.h \
    src/VideoStreaming/VideoSurface.h \
    src/VideoStreaming/VideoSurface_p.h \

SOURCES += \
    src/VideoStreaming/VideoItem.cc \
    src/VideoStreaming/VideoReceiver.cc \
    src/VideoStreaming/VideoStreaming.cc \
    src/VideoStreaming/VideoSurface.cc \

885
contains (CONFIG, DISABLE_VIDEOSTREAMING) {
886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937
    message("Skipping support for video streaming (manual override from command line)")
# Otherwise the user can still disable this feature in the user_config.pri file.
} else:exists(user_config.pri):infile(user_config.pri, DEFINES, DISABLE_VIDEOSTREAMING) {
    message("Skipping support for video streaming (manual override from user_config.pri)")
} else {
    include(src/VideoStreaming/VideoStreaming.pri)
}

#-------------------------------------------------------------------------------------
# Android

AndroidBuild {
    include($$PWD/libs/qtandroidserialport/src/qtandroidserialport.pri)
    message("Adding Serial Java Classes")
    QT += androidextras
    ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
    OTHER_FILES += \
        $$PWD/android/AndroidManifest.xml \
        $$PWD/android/res/xml/device_filter.xml \
        $$PWD/android/src/com/hoho/android/usbserial/driver/CdcAcmSerialDriver.java \
        $$PWD/android/src/com/hoho/android/usbserial/driver/CommonUsbSerialDriver.java \
        $$PWD/android/src/com/hoho/android/usbserial/driver/Cp2102SerialDriver.java \
        $$PWD/android/src/com/hoho/android/usbserial/driver/FtdiSerialDriver.java \
        $$PWD/android/src/com/hoho/android/usbserial/driver/ProlificSerialDriver.java \
        $$PWD/android/src/com/hoho/android/usbserial/driver/UsbId.java \
        $$PWD/android/src/com/hoho/android/usbserial/driver/UsbSerialDriver.java \
        $$PWD/android/src/com/hoho/android/usbserial/driver/UsbSerialProber.java \
        $$PWD/android/src/com/hoho/android/usbserial/driver/UsbSerialRuntimeException.java \
        $$PWD/android/src/org/qgroundcontrol/qgchelper/UsbDeviceJNI.java \
        $$PWD/android/src/org/qgroundcontrol/qgchelper/UsbIoManager.java

    DISTFILES += \
        android/gradle/wrapper/gradle-wrapper.jar \
        android/gradlew \
        android/res/values/libs.xml \
        android/build.gradle \
        android/gradle/wrapper/gradle-wrapper.properties \
        android/gradlew.bat
}

#-------------------------------------------------------------------------------------
#
# Post link configuration
#

include(QGCSetup.pri)

#
# Installer targets
#

include(QGCInstaller.pri)