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

10 11
QMAKE_PROJECT_DEPTH = 0 # undocumented qmake flag to force absolute paths in make files

12 13 14 15
# These are disabled until proven correct
DEFINES += QGC_GST_TAISYNC_DISABLED
DEFINES += QGC_GST_MICROHARD_DISABLED

dogmaphobic's avatar
dogmaphobic committed
16
exists($${OUT_PWD}/qgroundcontrol.pro) {
17
    error("You must use shadow build (e.g. mkdir build; cd build; qmake ../qgroundcontrol.pro).")
dogmaphobic's avatar
dogmaphobic committed
18
}
19 20 21

message(Qt version $$[QT_VERSION])

22
!equals(QT_MAJOR_VERSION, 5) | !greaterThan(QT_MINOR_VERSION, 10) {
23
    error("Unsupported Qt version, 5.11+ is required")
24
}
25

26 27
include(QGCCommon.pri)

Daniel Agar's avatar
Daniel Agar committed
28
TARGET   = QGroundControl
29
TEMPLATE = app
30
QGCROOT  = $$PWD
31 32 33

DebugBuild {
    DESTDIR  = $${OUT_PWD}/debug
dogmaphobic's avatar
dogmaphobic committed
34
} else {
35 36 37
    DESTDIR  = $${OUT_PWD}/release
}

Gus Grubba's avatar
Gus Grubba committed
38 39
QML_IMPORT_PATH += $$PWD/src/QmlControls

40 41 42 43 44 45 46 47
#
# OS Specific settings
#

MacBuild {
    QMAKE_INFO_PLIST    = Custom-Info.plist
    ICON                = $${BASEDIR}/resources/icons/macx.icns
    OTHER_FILES        += Custom-Info.plist
Gus Grubba's avatar
Gus Grubba committed
48
    LIBS               += -framework ApplicationServices
49 50 51 52 53 54 55 56
}

LinuxBuild {
    CONFIG  += qesp_linux_udev
}

WindowsBuild {
    RC_ICONS = resources/icons/qgroundcontrol.ico
57
    CONFIG += resources_big
58 59
}

60 61 62 63
#
# Branding
#

DonLakeFlyer's avatar
DonLakeFlyer committed
64
QGC_APP_NAME        = "QGroundControl"
65 66 67
QGC_ORG_NAME        = "QGroundControl.org"
QGC_ORG_DOMAIN      = "org.qgroundcontrol"
QGC_APP_DESCRIPTION = "Open source ground control app provided by QGroundControl dev team"
Gus Grubba's avatar
Gus Grubba committed
68
QGC_APP_COPYRIGHT   = "Copyright (C) 2019 QGroundControl Development Team. All rights reserved."
69

70 71 72 73
WindowsBuild {
    QGC_INSTALLER_ICON          = "WindowsQGC.ico"
    QGC_INSTALLER_HEADER_BITMAP = "installheader.bmp"
}
74

75 76 77 78 79 80
# 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)))
}

81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
#
# Custom Build
#
# QGC will create a "CUSTOMCLASS" object (exposed by your custom build
# and derived from QGCCorePlugin).
# This is the start of allowing custom Plugins, which will eventually use a
# more defined runtime plugin architecture and not require a QGC project
# file you would have to keep in sync with the upstream repo.
#

# This allows you to ignore the custom build even if the custom build
# is present. It's useful to run "regular" builds to make sure you didn't
# break anything.

contains (CONFIG, QGC_DISABLE_CUSTOM_BUILD) {
    message("Disable custom build override")
} else {
    exists($$PWD/custom/custom.pri) {
        message("Found custom build")
        CONFIG  += CustomBuild
        DEFINES += QGC_CUSTOM_BUILD
        # custom.pri must define:
        # CUSTOMCLASS  = YourIQGCCorePluginDerivation
        # CUSTOMHEADER = \"\\\"YourIQGCCorePluginDerivation.h\\\"\"
        include($$PWD/custom/custom.pri)
    }
}

109 110 111 112 113 114 115 116
WindowsBuild {
    # Sets up application properties
    QMAKE_TARGET_COMPANY        = "$${QGC_ORG_NAME}"
    QMAKE_TARGET_DESCRIPTION    = "$${QGC_APP_DESCRIPTION}"
    QMAKE_TARGET_COPYRIGHT      = "$${QGC_APP_COPYRIGHT}"
    QMAKE_TARGET_PRODUCT        = "$${QGC_APP_NAME}"
}

117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
#-------------------------------------------------------------------------------------
# iOS

iOSBuild {
    contains (CONFIG, DISABLE_BUILTIN_IOS) {
        message("Skipping builtin support for iOS")
    } else {
        LIBS                 += -framework AVFoundation
        #-- Info.plist (need an "official" one for the App Store)
        ForAppStore {
            message(App Store Build)
            #-- 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.")
            }
            QT               += qml-private
            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
        }
        QMAKE_ASSET_CATALOGS += ios/Images.xcassets
        BUNDLE.files          = ios/QGCLaunchScreen.xib $$QMAKE_INFO_PLIST
        QMAKE_BUNDLE_DATA    += BUNDLE
    }
}

Gus Grubba's avatar
Gus Grubba committed
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
#
# Plugin configuration
#
# This allows you to build custom versions of QGC which only includes your
# specific vehicle plugin. To remove support for a firmware type completely,
# disable both the Plugin and PluginFactory entries. To include custom support
# for an existing plugin type disable 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.

contains (CONFIG, QGC_DISABLE_APM_PLUGIN) {
    message("Disable APM Plugin")
} else {
    CONFIG += APMFirmwarePlugin
}

contains (CONFIG, QGC_DISABLE_APM_PLUGIN_FACTORY) {
    message("Disable APM Plugin Factory")
} else {
    CONFIG += APMFirmwarePluginFactory
}

contains (CONFIG, QGC_DISABLE_PX4_PLUGIN) {
    message("Disable PX4 Plugin")
} else {
    CONFIG += PX4FirmwarePlugin
}

contains (CONFIG, QGC_DISABLE_PX4_PLUGIN_FACTORY) {
    message("Disable PX4 Plugin Factory")
} else {
    CONFIG += PX4FirmwarePluginFactory
}

dogmaphobic's avatar
dogmaphobic committed
182 183 184 185 186 187 188 189 190 191 192 193
# 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
}

Gus Grubba's avatar
Gus Grubba committed
194 195 196 197 198 199 200 201 202 203 204 205
# QTNFC
contains (DEFINES, QGC_DISABLE_QTNFC) {
    message("Skipping support for QTNFC (manual override from command line)")
    DEFINES -= QGC_ENABLE_QTNFC
} else:exists(user_config.pri):infile(user_config.pri, DEFINES, QGC_DISABLE_QTNFC) {
    message("Skipping support for QTNFC (manual override from user_config.pri)")
    DEFINES -= QGC_ENABLE_QTNFC
} else:exists(user_config.pri):infile(user_config.pri, DEFINES, QGC_ENABLE_QTNFC) {
    message("Including support for QTNFC (manual override from user_config.pri)")
    DEFINES += QGC_ENABLE_QTNFC
}

206 207 208
# USB Camera and UVC Video Sources
contains (DEFINES, QGC_DISABLE_UVC) {
    message("Skipping support for UVC devices (manual override from command line)")
209
    DEFINES += QGC_DISABLE_UVC
210 211
} 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)")
212
    DEFINES += QGC_DISABLE_UVC
dogmaphobic's avatar
dogmaphobic committed
213 214 215 216 217
} 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
    }
218 219
}

220 221 222 223 224 225 226
LinuxBuild {
    CONFIG += link_pkgconfig
}

# Qt configuration

CONFIG += qt \
227
    thread \
228 229 230 231 232 233 234
    c++11

DebugBuild {
    CONFIG -= qtquickcompiler
} else {
    CONFIG += qtquickcompiler
}
235 236 237 238 239 240

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 {
241
    CONFIG += silent
242
}
243 244 245 246 247

QT += \
    concurrent \
    gui \
    location \
248
    network \
249 250 251 252
    opengl \
    positioning \
    qml \
    quick \
253
    quickcontrols2 \
254 255 256 257
    quickwidgets \
    sql \
    svg \
    widgets \
258
    xml \
259 260
    texttospeech \
    core-private
261 262 263 264 265 266

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

268 269 270 271 272 273
AndroidBuild || iOSBuild {
    # Android and iOS don't unclude these
} else {
    QT += \
        printsupport \
        serialport \
274 275
}

dogmaphobic's avatar
dogmaphobic committed
276
contains(DEFINES, QGC_ENABLE_BLUETOOTH) {
dogmaphobic's avatar
dogmaphobic committed
277 278 279 280
QT += \
    bluetooth \
}

Gus Grubba's avatar
Gus Grubba committed
281 282 283 284 285
contains(DEFINES, QGC_ENABLE_QTNFC) {
QT += \
    nfc \
}

286 287
#  testlib is needed even in release flavor for QSignalSpy support
QT += testlib
288 289 290 291
ReleaseBuild {
    # We don't need the testlib console in release mode
    QT.testlib.CONFIG -= console
}
292

293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308
#
# Build-specific settings
#

DebugBuild {
!iOSBuild {
    CONFIG += console
}
}

#
# Our QtLocation "plugin"
#

include(src/QtLocationPlugin/QGCLocationPlugin.pri)

Don Gagne's avatar
Don Gagne committed
309 310 311
# Until pairing can be made to work cleanly on all OS it is turned off
DEFINES+=QGC_DISABLE_PAIRING

Gus Grubba's avatar
Gus Grubba committed
312 313 314 315 316
# Pairing
contains (DEFINES, QGC_DISABLE_PAIRING) {
    message("Skipping support for Pairing")
} else:exists(user_config.pri):infile(user_config.pri, DEFINES, QGC_DISABLE_PAIRING) {
    message("Skipping support for Pairing (manual override from user_config.pri)")
317 318 319
} else:AndroidBuild:contains(QT_ARCH, arm64) {
    # Haven't figured out how to get 64 bit arm OpenSLL yet which pairing requires
    message("Skipping support for Pairing (Missing Android OpenSSL 64 bit support)")
Gus Grubba's avatar
Gus Grubba committed
320 321 322 323 324
} else {
    message("Enabling support for Pairing")
    DEFINES += QGC_ENABLE_PAIRING
}

325 326 327 328 329 330
#
# External library configuration
#

include(QGCExternalLibs.pri)

331
#
332
# Resources (custom code can replace them)
333 334
#

335 336 337 338 339 340 341 342 343 344 345 346 347
CustomBuild {
    exists($$PWD/custom/qgroundcontrol.qrc) {
        message("Using custom qgroundcontrol.qrc")
        RESOURCES += $$PWD/custom/qgroundcontrol.qrc
    } else {
        RESOURCES += $$PWD/qgroundcontrol.qrc
    }
    exists($$PWD/custom/qgcresources.qrc) {
        message("Using custom qgcresources.qrc")
        RESOURCES += $$PWD/custom/qgcresources.qrc
    } else {
        RESOURCES += $$PWD/qgcresources.qrc
    }
348 349 350 351 352 353
    exists($$PWD/custom/qgcimages.qrc) {
        message("Using custom qgcimages.qrc")
        RESOURCES += $$PWD/custom/qgcimages.qrc
    } else {
        RESOURCES += $$PWD/qgcimages.qrc
    }
354
} else {
355 356 357
    DEFINES += QGC_APPLICATION_NAME=\"\\\"QGroundControl\\\"\"
    DEFINES += QGC_ORG_NAME=\"\\\"QGroundControl.org\\\"\"
    DEFINES += QGC_ORG_DOMAIN=\"\\\"org.qgroundcontrol\\\"\"
358 359
    RESOURCES += \
        $$PWD/qgroundcontrol.qrc \
360
        $$PWD/qgcresources.qrc \
361
        $$PWD/qgcimages.qrc \
362
        $$PWD/resources/InstrumentValueIcons/InstrumentValueIcons.qrc \
363 364
}

365 366 367 368 369 370 371 372 373
# On Qt 5.9 android versions there is the following bug: https://bugreports.qt.io/browse/QTBUG-61424
# This prevents FileDialog from being used. So we have a temp hack workaround for it which just no-ops
# the FileDialog fallback mechanism on android 5.9 builds.
equals(QT_MAJOR_VERSION, 5):equals(QT_MINOR_VERSION, 9):AndroidBuild {
    RESOURCES += $$PWD/HackAndroidFileDialog.qrc
} else {
    RESOURCES += $$PWD/HackFileDialog.qrc
}

374 375 376
#
# Main QGroundControl portion of project file
#
377

378 379
DebugBuild {
    # Unit Test resources
380
    RESOURCES += UnitTest.qrc
381 382
}

383 384 385 386 387 388 389 390 391
DEPENDPATH += \
    . \
    plugins

INCLUDEPATH += .

INCLUDEPATH += \
    include/ui \
    src \
392
    src/ADSB \
393
    src/api \
Don Gagne's avatar
Don Gagne committed
394
    src/AnalyzeView \
395
    src/Camera \
396 397 398
    src/AutoPilotPlugins \
    src/FlightDisplay \
    src/FlightMap \
399
    src/FlightMap/Widgets \
Jimmy Johnson's avatar
Jimmy Johnson committed
400
    src/FollowMe \
401
    src/Geo \
402
    src/GPS \
Gus Grubba's avatar
Gus Grubba committed
403
    src/Joystick \
404
    src/PlanView \
405
    src/MissionManager \
Gus Grubba's avatar
Gus Grubba committed
406
    src/PositionManager \
407
    src/QmlControls \
Gus Grubba's avatar
Gus Grubba committed
408 409
    src/QtLocationPlugin \
    src/QtLocationPlugin/QMLControl \
410
    src/Settings \
411
    src/Terrain \
412
    src/Vehicle \
Gus Grubba's avatar
Gus Grubba committed
413
    src/ViewWidgets \
414
    src/Audio \
Gus Grubba's avatar
Gus Grubba committed
415 416 417
    src/comm \
    src/input \
    src/lib/qmapcontrol \
418 419 420 421 422 423 424 425 426 427
    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 \

Gus Grubba's avatar
Gus Grubba committed
428 429 430 431 432
contains (DEFINES, QGC_ENABLE_PAIRING) {
    INCLUDEPATH += \
        src/PairingManager \
}

Gus Grubba's avatar
Gus Grubba committed
433 434 435 436 437
#
# Plugin API
#

HEADERS += \
Remek Zajac's avatar
Remek Zajac committed
438
    src/QmlControls/QmlUnitsConversion.h \
439 440
    src/api/QGCCorePlugin.h \
    src/api/QGCOptions.h \
Gus Grubba's avatar
Gus Grubba committed
441
    src/api/QGCSettings.h \
442
    src/api/QmlComponentInfo.h \
443
    src/comm/MavlinkMessagesTimer.h \
Gus Grubba's avatar
Gus Grubba committed
444 445 446 447 448 449
    src/GPS/Drivers/src/base_station.h \

contains (DEFINES, QGC_ENABLE_PAIRING) {
    HEADERS += \
        src/PairingManager/aes.h
}
450 451 452 453

SOURCES += \
    src/api/QGCCorePlugin.cc \
    src/api/QGCOptions.cc \
Gus Grubba's avatar
Gus Grubba committed
454
    src/api/QGCSettings.cc \
455
    src/api/QmlComponentInfo.cc \
Gus Grubba's avatar
Gus Grubba committed
456 457 458 459 460 461
    src/comm/MavlinkMessagesTimer.cc \

contains (DEFINES, QGC_ENABLE_PAIRING) {
    SOURCES += \
        src/PairingManager/aes.cpp
}
Gus Grubba's avatar
Gus Grubba committed
462

463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497
#
# 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/Audio/AudioOutputTest.h \
        src/FactSystem/FactSystemTestBase.h \
        src/FactSystem/FactSystemTestGeneric.h \
        src/FactSystem/FactSystemTestPX4.h \
        src/FactSystem/ParameterManagerTest.h \
        src/MissionManager/CameraCalcTest.h \
        src/MissionManager/CameraSectionTest.h \
        src/MissionManager/CorridorScanComplexItemTest.h \
        src/MissionManager/FWLandingPatternTest.h \
        src/MissionManager/MissionCommandTreeTest.h \
        src/MissionManager/MissionControllerManagerTest.h \
        src/MissionManager/MissionControllerTest.h \
        src/MissionManager/MissionItemTest.h \
        src/MissionManager/MissionManagerTest.h \
        src/MissionManager/MissionSettingsTest.h \
        src/MissionManager/PlanMasterControllerTest.h \
        src/MissionManager/QGCMapPolygonTest.h \
        src/MissionManager/QGCMapPolylineTest.h \
        src/MissionManager/SectionTest.h \
        src/MissionManager/SimpleMissionItemTest.h \
        src/MissionManager/SpeedSectionTest.h \
        src/MissionManager/StructureScanComplexItemTest.h \
        src/MissionManager/SurveyComplexItemTest.h \
        src/MissionManager/TransectStyleComplexItemTest.h \
498
        src/MissionManager/TransectStyleComplexItemTestBase.h \
499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540
        src/MissionManager/VisualMissionItemTest.h \
        src/qgcunittest/GeoTest.h \
        src/qgcunittest/LinkManagerTest.h \
        src/qgcunittest/MavlinkLogTest.h \
        src/qgcunittest/MultiSignalSpy.h \
        src/qgcunittest/TCPLinkTest.h \
        src/qgcunittest/TCPLoopBackServer.h \
        src/qgcunittest/UnitTest.h \
        src/Vehicle/SendMavCommandTest.h \
        #src/qgcunittest/RadioConfigTest.h \
        #src/AnalyzeView/LogDownloadTest.h \
        #src/qgcunittest/FileDialogTest.h \
        #src/qgcunittest/FileManagerTest.h \
        #src/qgcunittest/FlightGearTest.h \
        #src/qgcunittest/MainWindowTest.h \
        #src/qgcunittest/MessageBoxTest.h \

    SOURCES += \
        src/Audio/AudioOutputTest.cc \
        src/FactSystem/FactSystemTestBase.cc \
        src/FactSystem/FactSystemTestGeneric.cc \
        src/FactSystem/FactSystemTestPX4.cc \
        src/FactSystem/ParameterManagerTest.cc \
        src/MissionManager/CameraCalcTest.cc \
        src/MissionManager/CameraSectionTest.cc \
        src/MissionManager/CorridorScanComplexItemTest.cc \
        src/MissionManager/FWLandingPatternTest.cc \
        src/MissionManager/MissionCommandTreeTest.cc \
        src/MissionManager/MissionControllerManagerTest.cc \
        src/MissionManager/MissionControllerTest.cc \
        src/MissionManager/MissionItemTest.cc \
        src/MissionManager/MissionManagerTest.cc \
        src/MissionManager/MissionSettingsTest.cc \
        src/MissionManager/PlanMasterControllerTest.cc \
        src/MissionManager/QGCMapPolygonTest.cc \
        src/MissionManager/QGCMapPolylineTest.cc \
        src/MissionManager/SectionTest.cc \
        src/MissionManager/SimpleMissionItemTest.cc \
        src/MissionManager/SpeedSectionTest.cc \
        src/MissionManager/StructureScanComplexItemTest.cc \
        src/MissionManager/SurveyComplexItemTest.cc \
        src/MissionManager/TransectStyleComplexItemTest.cc \
541
        src/MissionManager/TransectStyleComplexItemTestBase.cc \
542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561
        src/MissionManager/VisualMissionItemTest.cc \
        src/qgcunittest/GeoTest.cc \
        src/qgcunittest/LinkManagerTest.cc \
        src/qgcunittest/MavlinkLogTest.cc \
        src/qgcunittest/MultiSignalSpy.cc \
        src/qgcunittest/TCPLinkTest.cc \
        src/qgcunittest/TCPLoopBackServer.cc \
        src/qgcunittest/UnitTest.cc \
        src/qgcunittest/UnitTestList.cc \
        src/Vehicle/SendMavCommandTest.cc \
        #src/qgcunittest/RadioConfigTest.cc \
        #src/AnalyzeView/LogDownloadTest.cc \
        #src/qgcunittest/FileDialogTest.cc \
        #src/qgcunittest/FileManagerTest.cc \
        #src/qgcunittest/FlightGearTest.cc \
        #src/qgcunittest/MainWindowTest.cc \
        #src/qgcunittest/MessageBoxTest.cc \

} } } } } }

562 563
# Main QGC Headers and Source files

564
HEADERS += \
565 566
    src/ADSB/ADSBVehicle.h \
    src/ADSB/ADSBVehicleManager.h \
567
    src/AnalyzeView/LogDownloadController.h \
568
    src/AnalyzeView/PX4LogParser.h \
569
    src/AnalyzeView/ULogParser.h \
570
    src/AnalyzeView/MavlinkConsoleController.h \
571
    src/Audio/AudioOutput.h \
572 573 574
    src/Camera/QGCCameraControl.h \
    src/Camera/QGCCameraIO.h \
    src/Camera/QGCCameraManager.h \
575
    src/CmdLineOptParser.h \
576
    src/FirmwarePlugin/PX4/px4_custom_mode.h \
Gus Grubba's avatar
Gus Grubba committed
577
    src/FollowMe/FollowMe.h \
578 579
    src/Joystick/Joystick.h \
    src/Joystick/JoystickManager.h \
Don Gagne's avatar
Don Gagne committed
580
    src/JsonHelper.h \
581 582
    src/KMLDomDocument.h \
    src/KMLHelper.h \
583
    src/LogCompressor.h \
584
    src/MissionManager/CameraCalc.h \
585
    src/MissionManager/CameraSection.h \
586
    src/MissionManager/CameraSpec.h \
587
    src/MissionManager/ComplexMissionItem.h \
588
    src/MissionManager/CorridorScanComplexItem.h \
DonLakeFlyer's avatar
DonLakeFlyer committed
589
    src/MissionManager/CorridorScanPlanCreator.h \
590
    src/MissionManager/BlankPlanCreator.h \
591
    src/MissionManager/FixedWingLandingComplexItem.h \
592 593
    src/MissionManager/GeoFenceController.h \
    src/MissionManager/GeoFenceManager.h \
594
    src/MissionManager/KMLPlanDomDocument.h \
595
    src/MissionManager/LandingComplexItem.h \
596
    src/MissionManager/MissionCommandList.h \
597 598
    src/MissionManager/MissionCommandTree.h \
    src/MissionManager/MissionCommandUIInfo.h \
599
    src/MissionManager/MissionController.h \
600 601
    src/MissionManager/MissionItem.h \
    src/MissionManager/MissionManager.h \
602
    src/MissionManager/MissionSettingsItem.h \
603
    src/MissionManager/PlanElementController.h \
DonLakeFlyer's avatar
DonLakeFlyer committed
604
    src/MissionManager/PlanCreator.h \
605
    src/MissionManager/PlanManager.h \
606
    src/MissionManager/PlanMasterController.h \
607 608 609
    src/MissionManager/QGCFenceCircle.h \
    src/MissionManager/QGCFencePolygon.h \
    src/MissionManager/QGCMapCircle.h \
610
    src/MissionManager/QGCMapPolygon.h \
611
    src/MissionManager/QGCMapPolyline.h \
612 613 614
    src/MissionManager/RallyPoint.h \
    src/MissionManager/RallyPointController.h \
    src/MissionManager/RallyPointManager.h \
615
    src/MissionManager/SimpleMissionItem.h \
616 617
    src/MissionManager/Section.h \
    src/MissionManager/SpeedSection.h \
618
    src/MissionManager/StructureScanComplexItem.h \
DonLakeFlyer's avatar
DonLakeFlyer committed
619
    src/MissionManager/StructureScanPlanCreator.h \
620
    src/MissionManager/SurveyComplexItem.h \
DonLakeFlyer's avatar
DonLakeFlyer committed
621
    src/MissionManager/SurveyPlanCreator.h \
622
    src/MissionManager/TakeoffMissionItem.h \
623
    src/MissionManager/TransectStyleComplexItem.h \
624
    src/MissionManager/VisualMissionItem.h \
625
    src/MissionManager/VTOLLandingComplexItem.h \
Gus Grubba's avatar
Gus Grubba committed
626 627
    src/PositionManager/PositionManager.h \
    src/PositionManager/SimulatedPosition.h \
628 629 630 631 632 633 634 635
    src/Geo/QGCGeo.h \
    src/Geo/Constants.hpp \
    src/Geo/Math.hpp \
    src/Geo/Utility.hpp \
    src/Geo/UTMUPS.hpp \
    src/Geo/MGRS.hpp \
    src/Geo/TransverseMercator.hpp \
    src/Geo/PolarStereographic.hpp \
636 637 638 639
    src/QGC.h \
    src/QGCApplication.h \
    src/QGCComboBox.h \
    src/QGCConfig.h \
640
    src/QGCFileDownload.h \
641
    src/QGCLoggingCategory.h \
Don Gagne's avatar
Don Gagne committed
642
    src/QGCMapPalette.h \
643
    src/QGCPalette.h \
644
    src/QGCQGeoCoordinate.h \
645 646
    src/QGCTemporaryFile.h \
    src/QGCToolbox.h \
647
    src/QmlControls/AppMessages.h \
648
    src/QmlControls/EditPositionDialogController.h \
649
    src/QmlControls/FlightPathSegment.h \
650
    src/QmlControls/HorizontalFactValueGrid.h \
651
    src/QmlControls/InstrumentValueData.h \
652
    src/QmlControls/FactValueGrid.h \
653
    src/QmlControls/ParameterEditorController.h \
654
    src/QmlControls/QGCFileDialogController.h \
Gus Grubba's avatar
Gus Grubba committed
655
    src/QmlControls/QGCImageProvider.h \
656 657
    src/QmlControls/QGroundControlQmlGlobal.h \
    src/QmlControls/QmlObjectListModel.h \
658
    src/QmlControls/QGCGeoBoundingCube.h \
Gus Grubba's avatar
Gus Grubba committed
659
    src/QmlControls/RCChannelMonitorController.h \
DoinLakeFlyer's avatar
DoinLakeFlyer committed
660
    src/QmlControls/RCToParamDialogController.h \
Gus Grubba's avatar
Gus Grubba committed
661
    src/QmlControls/ScreenToolsController.h \
662
    src/QmlControls/TerrainProfile.h \
663 664
    src/QmlControls/ToolStripAction.h \
    src/QmlControls/ToolStripActionList.h \
665
    src/QmlControls/VerticalFactValueGrid.h \
Gus Grubba's avatar
Gus Grubba committed
666
    src/QtLocationPlugin/QMLControl/QGCMapEngineManager.h \
667
    src/Settings/ADSBVehicleManagerSettings.h \
668 669
    src/Settings/AppSettings.h \
    src/Settings/AutoConnectSettings.h \
670
    src/Settings/BrandImageSettings.h \
671
    src/Settings/FirmwareUpgradeSettings.h \
672
    src/Settings/FlightMapSettings.h \
673
    src/Settings/FlyViewSettings.h \
674
    src/Settings/OfflineMapsSettings.h \
675
    src/Settings/PlanViewSettings.h \
Don Gagne's avatar
Don Gagne committed
676
    src/Settings/RTKSettings.h \
677 678 679 680
    src/Settings/SettingsGroup.h \
    src/Settings/SettingsManager.h \
    src/Settings/UnitsSettings.h \
    src/Settings/VideoSettings.h \
681 682
    src/ShapeFileHelper.h \
    src/SHPFileHelper.h \
683
    src/Terrain/TerrainQuery.h \
Andreas Bircher's avatar
Andreas Bircher committed
684
    src/TerrainTile.h \
685
    src/Vehicle/GPSRTKFactGroup.h \
Gus Grubba's avatar
Gus Grubba committed
686
    src/Vehicle/MAVLinkLogManager.h \
687
    src/Vehicle/MultiVehicleManager.h \
688 689
    src/Vehicle/TerrainFactGroup.h \
    src/Vehicle/TerrainProtocolHandler.h \
690 691 692
    src/Vehicle/TrajectoryPoints.h \
    src/Vehicle/Vehicle.h \
    src/Vehicle/VehicleObjectAvoidance.h \
Gus Grubba's avatar
Gus Grubba committed
693 694 695 696
    src/VehicleSetup/JoystickConfigController.h \
    src/comm/LinkConfiguration.h \
    src/comm/LinkInterface.h \
    src/comm/LinkManager.h \
697
    src/comm/LogReplayLink.h \
Gus Grubba's avatar
Gus Grubba committed
698 699 700 701
    src/comm/MAVLinkProtocol.h \
    src/comm/QGCMAVLink.h \
    src/comm/TCPLink.h \
    src/comm/UDPLink.h \
Willian Galvani's avatar
Willian Galvani committed
702
    src/comm/UdpIODevice.h \
703 704 705
    src/uas/UAS.h \
    src/uas/UASInterface.h \
    src/uas/UASMessageHandler.h \
706 707
    src/AnalyzeView/GeoTagController.h \
    src/AnalyzeView/ExifParser.h \
Gus Grubba's avatar
Gus Grubba committed
708
    src/uas/FileManager.h \
709

Gus Grubba's avatar
Gus Grubba committed
710 711 712 713
contains (DEFINES, QGC_ENABLE_PAIRING) {
    HEADERS += \
        src/PairingManager/PairingManager.h \
}
714

715 716
AndroidBuild {
HEADERS += \
717
    src/Joystick/JoystickAndroid.h \
718 719
}

720 721 722 723 724 725 726
DebugBuild {
HEADERS += \
    src/comm/MockLink.h \
    src/comm/MockLinkFileServer.h \
    src/comm/MockLinkMissionItemHandler.h \
}

727 728 729
WindowsBuild {
    PRECOMPILED_HEADER += src/stable_headers.h
    HEADERS += src/stable_headers.h
Daniel Agar's avatar
Daniel Agar committed
730
    CONFIG -= silent
731
    OTHER_FILES += .appveyor.yml
732 733
}

dogmaphobic's avatar
dogmaphobic committed
734
contains(DEFINES, QGC_ENABLE_BLUETOOTH) {
dogmaphobic's avatar
dogmaphobic committed
735 736
    HEADERS += \
    src/comm/BluetoothLink.h \
dogmaphobic's avatar
dogmaphobic committed
737
}
738

Gus Grubba's avatar
Gus Grubba committed
739 740 741 742 743 744 745
contains (DEFINES, QGC_ENABLE_PAIRING) {
    contains(DEFINES, QGC_ENABLE_QTNFC) {
        HEADERS += \
            src/PairingManager/QtNFC.h
    }
}

Gus Grubba's avatar
Gus Grubba committed
746
!NoSerialBuild {
747
HEADERS += \
748
    src/comm/QGCSerialPortInfo.h \
749 750 751 752 753
    src/comm/SerialLink.h \
}

!MobileBuild {
HEADERS += \
Gus Grubba's avatar
Gus Grubba committed
754
    src/GPS/Drivers/src/gps_helper.h \
755 756
    src/GPS/Drivers/src/rtcm.h \
    src/GPS/Drivers/src/ashtech.h \
Gus Grubba's avatar
Gus Grubba committed
757
    src/GPS/Drivers/src/ubx.h \
758
    src/GPS/Drivers/src/sbf.h \
Gus Grubba's avatar
Gus Grubba committed
759 760 761 762 763 764 765 766
    src/GPS/GPSManager.h \
    src/GPS/GPSPositionMessage.h \
    src/GPS/GPSProvider.h \
    src/GPS/RTCM/RTCMMavlink.h \
    src/GPS/definitions.h \
    src/GPS/satellite_info.h \
    src/GPS/vehicle_gps_position.h \
    src/Joystick/JoystickSDL.h \
767
    src/RunGuard.h \
768 769
}

Don Gagne's avatar
Don Gagne committed
770 771 772 773
iOSBuild {
    OBJECTIVE_SOURCES += \
        src/MobileScreenMgr.mm \
}
774

Don Gagne's avatar
Don Gagne committed
775
AndroidBuild {
Don Gagne's avatar
Don Gagne committed
776
    SOURCES += src/MobileScreenMgr.cc \
777
    src/Joystick/JoystickAndroid.cc \
Don Gagne's avatar
Don Gagne committed
778 779
}

780
SOURCES += \
781 782
    src/ADSB/ADSBVehicle.cc \
    src/ADSB/ADSBVehicleManager.cc \
783
    src/AnalyzeView/LogDownloadController.cc \
784
    src/AnalyzeView/PX4LogParser.cc \
785
    src/AnalyzeView/ULogParser.cc \
786
    src/AnalyzeView/MavlinkConsoleController.cc \
787
    src/Audio/AudioOutput.cc \
788 789 790
    src/Camera/QGCCameraControl.cc \
    src/Camera/QGCCameraIO.cc \
    src/Camera/QGCCameraManager.cc \
791
    src/CmdLineOptParser.cc \
Gus Grubba's avatar
Gus Grubba committed
792
    src/FollowMe/FollowMe.cc \
793 794
    src/Joystick/Joystick.cc \
    src/Joystick/JoystickManager.cc \
Don Gagne's avatar
Don Gagne committed
795
    src/JsonHelper.cc \
796 797
    src/KMLDomDocument.cc \
    src/KMLHelper.cc \
798
    src/LogCompressor.cc \
799
    src/MissionManager/CameraCalc.cc \
800
    src/MissionManager/CameraSection.cc \
801
    src/MissionManager/CameraSpec.cc \
802
    src/MissionManager/ComplexMissionItem.cc \
803
    src/MissionManager/CorridorScanComplexItem.cc \
DonLakeFlyer's avatar
DonLakeFlyer committed
804
    src/MissionManager/CorridorScanPlanCreator.cc \
805
    src/MissionManager/BlankPlanCreator.cc \
806
    src/MissionManager/FixedWingLandingComplexItem.cc \
807 808
    src/MissionManager/GeoFenceController.cc \
    src/MissionManager/GeoFenceManager.cc \
809
    src/MissionManager/KMLPlanDomDocument.cc \
810
    src/MissionManager/LandingComplexItem.cc \
811
    src/MissionManager/MissionCommandList.cc \
812 813
    src/MissionManager/MissionCommandTree.cc \
    src/MissionManager/MissionCommandUIInfo.cc \
814
    src/MissionManager/MissionController.cc \
815 816
    src/MissionManager/MissionItem.cc \
    src/MissionManager/MissionManager.cc \
817
    src/MissionManager/MissionSettingsItem.cc \
818
    src/MissionManager/PlanElementController.cc \
DonLakeFlyer's avatar
DonLakeFlyer committed
819
    src/MissionManager/PlanCreator.cc \
820
    src/MissionManager/PlanManager.cc \
821
    src/MissionManager/PlanMasterController.cc \
822 823 824
    src/MissionManager/QGCFenceCircle.cc \
    src/MissionManager/QGCFencePolygon.cc \
    src/MissionManager/QGCMapCircle.cc \
825
    src/MissionManager/QGCMapPolygon.cc \
826
    src/MissionManager/QGCMapPolyline.cc \
827 828 829
    src/MissionManager/RallyPoint.cc \
    src/MissionManager/RallyPointController.cc \
    src/MissionManager/RallyPointManager.cc \
830
    src/MissionManager/SimpleMissionItem.cc \
831
    src/MissionManager/SpeedSection.cc \
832
    src/MissionManager/StructureScanComplexItem.cc \
DonLakeFlyer's avatar
DonLakeFlyer committed
833
    src/MissionManager/StructureScanPlanCreator.cc \
834
    src/MissionManager/SurveyComplexItem.cc \
DonLakeFlyer's avatar
DonLakeFlyer committed
835
    src/MissionManager/SurveyPlanCreator.cc \
836
    src/MissionManager/TakeoffMissionItem.cc \
837
    src/MissionManager/TransectStyleComplexItem.cc \
838
    src/MissionManager/VisualMissionItem.cc \
839
    src/MissionManager/VTOLLandingComplexItem.cc \
Gus Grubba's avatar
Gus Grubba committed
840 841
    src/PositionManager/PositionManager.cpp \
    src/PositionManager/SimulatedPosition.cc \
842 843 844 845 846 847 848
    src/Geo/QGCGeo.cc \
    src/Geo/Math.cpp \
    src/Geo/Utility.cpp \
    src/Geo/UTMUPS.cpp \
    src/Geo/MGRS.cpp \
    src/Geo/TransverseMercator.cpp \
    src/Geo/PolarStereographic.cpp \
849 850 851
    src/QGC.cc \
    src/QGCApplication.cc \
    src/QGCComboBox.cc \
852
    src/QGCFileDownload.cc \
853
    src/QGCLoggingCategory.cc \
Don Gagne's avatar
Don Gagne committed
854
    src/QGCMapPalette.cc \
855
    src/QGCPalette.cc \
856
    src/QGCQGeoCoordinate.cc \
857 858
    src/QGCTemporaryFile.cc \
    src/QGCToolbox.cc \
859
    src/QmlControls/AppMessages.cc \
860
    src/QmlControls/EditPositionDialogController.cc \
861
    src/QmlControls/FlightPathSegment.cc \
862
    src/QmlControls/HorizontalFactValueGrid.cc \
863
    src/QmlControls/InstrumentValueData.cc \
864
    src/QmlControls/FactValueGrid.cc \
865
    src/QmlControls/ParameterEditorController.cc \
866
    src/QmlControls/QGCFileDialogController.cc \
Gus Grubba's avatar
Gus Grubba committed
867
    src/QmlControls/QGCImageProvider.cc \
868 869
    src/QmlControls/QGroundControlQmlGlobal.cc \
    src/QmlControls/QmlObjectListModel.cc \
870
    src/QmlControls/QGCGeoBoundingCube.cc \
Gus Grubba's avatar
Gus Grubba committed
871
    src/QmlControls/RCChannelMonitorController.cc \
DoinLakeFlyer's avatar
DoinLakeFlyer committed
872
    src/QmlControls/RCToParamDialogController.cc \
Gus Grubba's avatar
Gus Grubba committed
873
    src/QmlControls/ScreenToolsController.cc \
874
    src/QmlControls/TerrainProfile.cc \
875 876
    src/QmlControls/ToolStripAction.cc \
    src/QmlControls/ToolStripActionList.cc \
877
    src/QmlControls/VerticalFactValueGrid.cc \
Gus Grubba's avatar
Gus Grubba committed
878
    src/QtLocationPlugin/QMLControl/QGCMapEngineManager.cc \
879
    src/Settings/ADSBVehicleManagerSettings.cc \
880 881
    src/Settings/AppSettings.cc \
    src/Settings/AutoConnectSettings.cc \
882
    src/Settings/BrandImageSettings.cc \
883
    src/Settings/FirmwareUpgradeSettings.cc \
884
    src/Settings/FlightMapSettings.cc \
885
    src/Settings/FlyViewSettings.cc \
886
    src/Settings/OfflineMapsSettings.cc \
887
    src/Settings/PlanViewSettings.cc \
Don Gagne's avatar
Don Gagne committed
888
    src/Settings/RTKSettings.cc \
889 890 891 892
    src/Settings/SettingsGroup.cc \
    src/Settings/SettingsManager.cc \
    src/Settings/UnitsSettings.cc \
    src/Settings/VideoSettings.cc \
893 894
    src/ShapeFileHelper.cc \
    src/SHPFileHelper.cc \
895
    src/Terrain/TerrainQuery.cc \
Andreas Bircher's avatar
Andreas Bircher committed
896
    src/TerrainTile.cc\
897
    src/Vehicle/GPSRTKFactGroup.cc \
Gus Grubba's avatar
Gus Grubba committed
898
    src/Vehicle/MAVLinkLogManager.cc \
899
    src/Vehicle/MultiVehicleManager.cc \
900 901
    src/Vehicle/TerrainFactGroup.cc \
    src/Vehicle/TerrainProtocolHandler.cc \
902 903 904
    src/Vehicle/TrajectoryPoints.cc \
    src/Vehicle/Vehicle.cc \
    src/Vehicle/VehicleObjectAvoidance.cc \
Gus Grubba's avatar
Gus Grubba committed
905 906
    src/VehicleSetup/JoystickConfigController.cc \
    src/comm/LinkConfiguration.cc \
907
    src/comm/LinkInterface.cc \
Gus Grubba's avatar
Gus Grubba committed
908
    src/comm/LinkManager.cc \
909
    src/comm/LogReplayLink.cc \
Gus Grubba's avatar
Gus Grubba committed
910 911 912 913
    src/comm/MAVLinkProtocol.cc \
    src/comm/QGCMAVLink.cc \
    src/comm/TCPLink.cc \
    src/comm/UDPLink.cc \
Willian Galvani's avatar
Willian Galvani committed
914
    src/comm/UdpIODevice.cc \
Gus Grubba's avatar
Gus Grubba committed
915
    src/main.cc \
916 917
    src/uas/UAS.cc \
    src/uas/UASMessageHandler.cc \
918 919
    src/AnalyzeView/GeoTagController.cc \
    src/AnalyzeView/ExifParser.cc \
Gus Grubba's avatar
Gus Grubba committed
920 921 922 923 924 925
    src/uas/FileManager.cc \

contains (DEFINES, QGC_ENABLE_PAIRING) {
    SOURCES += \
        src/PairingManager/PairingManager.cc \
}
926

927 928 929 930 931 932 933
DebugBuild {
SOURCES += \
    src/comm/MockLink.cc \
    src/comm/MockLinkFileServer.cc \
    src/comm/MockLinkMissionItemHandler.cc \
}

Gus Grubba's avatar
Gus Grubba committed
934
!NoSerialBuild {
935
SOURCES += \
936
    src/comm/QGCSerialPortInfo.cc \
937 938 939
    src/comm/SerialLink.cc \
}

dogmaphobic's avatar
dogmaphobic committed
940
contains(DEFINES, QGC_ENABLE_BLUETOOTH) {
dogmaphobic's avatar
dogmaphobic committed
941 942 943 944
    SOURCES += \
    src/comm/BluetoothLink.cc \
}

Gus Grubba's avatar
Gus Grubba committed
945 946 947 948 949 950 951
contains (DEFINES, QGC_ENABLE_PAIRING) {
    contains(DEFINES, QGC_ENABLE_QTNFC) {
        SOURCES += \
        src/PairingManager/QtNFC.cc
    }
}

952 953
!MobileBuild {
SOURCES += \
Gus Grubba's avatar
Gus Grubba committed
954
    src/GPS/Drivers/src/gps_helper.cpp \
955 956
    src/GPS/Drivers/src/rtcm.cpp \
    src/GPS/Drivers/src/ashtech.cpp \
Gus Grubba's avatar
Gus Grubba committed
957
    src/GPS/Drivers/src/ubx.cpp \
958
    src/GPS/Drivers/src/sbf.cpp \
Gus Grubba's avatar
Gus Grubba committed
959 960 961 962
    src/GPS/GPSManager.cc \
    src/GPS/GPSProvider.cc \
    src/GPS/RTCM/RTCMMavlink.cc \
    src/Joystick/JoystickSDL.cc \
963
    src/RunGuard.cc \
964
}
965 966 967 968 969 970

#
# Firmware Plugin Support
#

INCLUDEPATH += \
Don Gagne's avatar
Don Gagne committed
971
    src/AutoPilotPlugins/Common \
972 973 974 975 976
    src/FirmwarePlugin \
    src/VehicleSetup \

HEADERS+= \
    src/AutoPilotPlugins/AutoPilotPlugin.h \
Gus Grubba's avatar
Gus Grubba committed
977 978
    src/AutoPilotPlugins/Common/ESP8266Component.h \
    src/AutoPilotPlugins/Common/ESP8266ComponentController.h \
Don Gagne's avatar
Don Gagne committed
979
    src/AutoPilotPlugins/Common/MotorComponent.h \
Don Gagne's avatar
Don Gagne committed
980
    src/AutoPilotPlugins/Common/RadioComponentController.h \
981 982
    src/AutoPilotPlugins/Common/SyslinkComponent.h \
    src/AutoPilotPlugins/Common/SyslinkComponentController.h \
983
    src/AutoPilotPlugins/Generic/GenericAutoPilotPlugin.h \
984
    src/FirmwarePlugin/CameraMetaData.h \
985
    src/FirmwarePlugin/FirmwarePlugin.h \
Gus Grubba's avatar
Gus Grubba committed
986
    src/FirmwarePlugin/FirmwarePluginManager.h \
987 988
    src/VehicleSetup/VehicleComponent.h \

989
!MobileBuild { !NoSerialBuild {
Gus Grubba's avatar
Gus Grubba committed
990 991 992 993 994
    HEADERS += \
        src/VehicleSetup/Bootloader.h \
        src/VehicleSetup/FirmwareImage.h \
        src/VehicleSetup/FirmwareUpgradeController.h \
        src/VehicleSetup/PX4FirmwareUpgradeThread.h \
995
}}
996 997 998

SOURCES += \
    src/AutoPilotPlugins/AutoPilotPlugin.cc \
Gus Grubba's avatar
Gus Grubba committed
999 1000
    src/AutoPilotPlugins/Common/ESP8266Component.cc \
    src/AutoPilotPlugins/Common/ESP8266ComponentController.cc \
Don Gagne's avatar
Don Gagne committed
1001
    src/AutoPilotPlugins/Common/MotorComponent.cc \
Don Gagne's avatar
Don Gagne committed
1002
    src/AutoPilotPlugins/Common/RadioComponentController.cc \
1003 1004
    src/AutoPilotPlugins/Common/SyslinkComponent.cc \
    src/AutoPilotPlugins/Common/SyslinkComponentController.cc \
1005
    src/AutoPilotPlugins/Generic/GenericAutoPilotPlugin.cc \
1006
    src/FirmwarePlugin/CameraMetaData.cc \
1007
    src/FirmwarePlugin/FirmwarePlugin.cc \
1008 1009 1010
    src/FirmwarePlugin/FirmwarePluginManager.cc \
    src/VehicleSetup/VehicleComponent.cc \

1011
!MobileBuild { !NoSerialBuild {
1012
    SOURCES += \
Gus Grubba's avatar
Gus Grubba committed
1013 1014 1015 1016
        src/VehicleSetup/Bootloader.cc \
        src/VehicleSetup/FirmwareImage.cc \
        src/VehicleSetup/FirmwareUpgradeController.cc \
        src/VehicleSetup/PX4FirmwareUpgradeThread.cc \
1017
}}
1018

1019
# ArduPilot Specific
1020

1021 1022
ArdupilotEnabled {
    HEADERS += \
1023 1024 1025 1026 1027 1028
        src/Settings/APMMavlinkStreamRateSettings.h \

    SOURCES += \
        src/Settings/APMMavlinkStreamRateSettings.cc \
}

1029 1030
# ArduPilot FirmwarePlugin

1031
APMFirmwarePlugin {
1032
    RESOURCES *= src/FirmwarePlugin/APM/APMResources.qrc
Gus Grubba's avatar
Gus Grubba committed
1033

1034 1035 1036 1037 1038 1039
    INCLUDEPATH += \
        src/AutoPilotPlugins/APM \
        src/FirmwarePlugin/APM \

    HEADERS += \
        src/AutoPilotPlugins/APM/APMAirframeComponent.h \
Gus Grubba's avatar
Gus Grubba committed
1040 1041
        src/AutoPilotPlugins/APM/APMAirframeComponentController.h \
        src/AutoPilotPlugins/APM/APMAutoPilotPlugin.h \
1042 1043 1044 1045
        src/AutoPilotPlugins/APM/APMCameraComponent.h \
        src/AutoPilotPlugins/APM/APMCompassCal.h \
        src/AutoPilotPlugins/APM/APMFlightModesComponent.h \
        src/AutoPilotPlugins/APM/APMFlightModesComponentController.h \
DonLakeFlyer's avatar
DonLakeFlyer committed
1046 1047
        src/AutoPilotPlugins/APM/APMFollowComponent.h \
        src/AutoPilotPlugins/APM/APMFollowComponentController.h \
DonLakeFlyer's avatar
DonLakeFlyer committed
1048
        src/AutoPilotPlugins/APM/APMHeliComponent.h \
Gus Grubba's avatar
Gus Grubba committed
1049
        src/AutoPilotPlugins/APM/APMLightsComponent.h \
1050
        src/AutoPilotPlugins/APM/APMSubFrameComponent.h \
1051
        src/AutoPilotPlugins/APM/APMMotorComponent.h \
1052 1053 1054 1055 1056
        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 \
1057
        src/AutoPilotPlugins/APM/APMSubMotorComponentController.h \
1058
        src/AutoPilotPlugins/APM/APMTuningComponent.h \
Gus Grubba's avatar
Gus Grubba committed
1059 1060 1061 1062 1063 1064
        src/FirmwarePlugin/APM/APMFirmwarePlugin.h \
        src/FirmwarePlugin/APM/APMParameterMetaData.h \
        src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h \
        src/FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.h \
        src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.h \
        src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.h \
1065 1066 1067 1068

    SOURCES += \
        src/AutoPilotPlugins/APM/APMAirframeComponent.cc \
        src/AutoPilotPlugins/APM/APMAirframeComponentController.cc \
Gus Grubba's avatar
Gus Grubba committed
1069
        src/AutoPilotPlugins/APM/APMAutoPilotPlugin.cc \
1070 1071 1072 1073
        src/AutoPilotPlugins/APM/APMCameraComponent.cc \
        src/AutoPilotPlugins/APM/APMCompassCal.cc \
        src/AutoPilotPlugins/APM/APMFlightModesComponent.cc \
        src/AutoPilotPlugins/APM/APMFlightModesComponentController.cc \
DonLakeFlyer's avatar
DonLakeFlyer committed
1074 1075
        src/AutoPilotPlugins/APM/APMFollowComponent.cc \
        src/AutoPilotPlugins/APM/APMFollowComponentController.cc \
DonLakeFlyer's avatar
DonLakeFlyer committed
1076
        src/AutoPilotPlugins/APM/APMHeliComponent.cc \
Gus Grubba's avatar
Gus Grubba committed
1077
        src/AutoPilotPlugins/APM/APMLightsComponent.cc \
1078
        src/AutoPilotPlugins/APM/APMSubFrameComponent.cc \
1079
        src/AutoPilotPlugins/APM/APMMotorComponent.cc \
1080 1081 1082 1083 1084
        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 \
1085
        src/AutoPilotPlugins/APM/APMSubMotorComponentController.cc \
1086
        src/AutoPilotPlugins/APM/APMTuningComponent.cc \
Gus Grubba's avatar
Gus Grubba committed
1087 1088 1089 1090 1091 1092
        src/FirmwarePlugin/APM/APMFirmwarePlugin.cc \
        src/FirmwarePlugin/APM/APMParameterMetaData.cc \
        src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc \
        src/FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.cc \
        src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.cc \
        src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc \
1093 1094 1095
}

APMFirmwarePluginFactory {
Gus Grubba's avatar
Gus Grubba committed
1096 1097
    HEADERS   += src/FirmwarePlugin/APM/APMFirmwarePluginFactory.h
    SOURCES   += src/FirmwarePlugin/APM/APMFirmwarePluginFactory.cc
1098 1099 1100 1101 1102
}

# PX4 FirmwarePlugin

PX4FirmwarePlugin {
1103
    RESOURCES *= src/FirmwarePlugin/PX4/PX4Resources.qrc
Gus Grubba's avatar
Gus Grubba committed
1104

1105 1106 1107 1108 1109 1110 1111 1112
    INCLUDEPATH += \
        src/AutoPilotPlugins/PX4 \
        src/FirmwarePlugin/PX4 \

    HEADERS+= \
        src/AutoPilotPlugins/PX4/AirframeComponent.h \
        src/AutoPilotPlugins/PX4/AirframeComponentAirframes.h \
        src/AutoPilotPlugins/PX4/AirframeComponentController.h \
Gus Grubba's avatar
Gus Grubba committed
1113
        src/AutoPilotPlugins/PX4/CameraComponent.h \
1114 1115
        src/AutoPilotPlugins/PX4/FlightModesComponent.h \
        src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.h \
Gus Grubba's avatar
Gus Grubba committed
1116 1117 1118
        src/AutoPilotPlugins/PX4/PX4AirframeLoader.h \
        src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.h \
        src/AutoPilotPlugins/PX4/PX4RadioComponent.h \
1119
        src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.h \
Gus Grubba's avatar
Gus Grubba committed
1120
        src/AutoPilotPlugins/PX4/PX4TuningComponent.h \
1121 1122 1123 1124 1125
        src/AutoPilotPlugins/PX4/PowerComponent.h \
        src/AutoPilotPlugins/PX4/PowerComponentController.h \
        src/AutoPilotPlugins/PX4/SafetyComponent.h \
        src/AutoPilotPlugins/PX4/SensorsComponent.h \
        src/AutoPilotPlugins/PX4/SensorsComponentController.h \
Gus Grubba's avatar
Gus Grubba committed
1126 1127
        src/FirmwarePlugin/PX4/PX4FirmwarePlugin.h \
        src/FirmwarePlugin/PX4/PX4ParameterMetaData.h \
1128 1129 1130 1131 1132

    SOURCES += \
        src/AutoPilotPlugins/PX4/AirframeComponent.cc \
        src/AutoPilotPlugins/PX4/AirframeComponentAirframes.cc \
        src/AutoPilotPlugins/PX4/AirframeComponentController.cc \
Gus Grubba's avatar
Gus Grubba committed
1133
        src/AutoPilotPlugins/PX4/CameraComponent.cc \
1134 1135 1136
        src/AutoPilotPlugins/PX4/FlightModesComponent.cc \
        src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.cc \
        src/AutoPilotPlugins/PX4/PX4AirframeLoader.cc \
Gus Grubba's avatar
Gus Grubba committed
1137 1138
        src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.cc \
        src/AutoPilotPlugins/PX4/PX4RadioComponent.cc \
1139
        src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.cc \
Gus Grubba's avatar
Gus Grubba committed
1140
        src/AutoPilotPlugins/PX4/PX4TuningComponent.cc \
1141 1142 1143 1144 1145
        src/AutoPilotPlugins/PX4/PowerComponent.cc \
        src/AutoPilotPlugins/PX4/PowerComponentController.cc \
        src/AutoPilotPlugins/PX4/SafetyComponent.cc \
        src/AutoPilotPlugins/PX4/SensorsComponent.cc \
        src/AutoPilotPlugins/PX4/SensorsComponentController.cc \
Gus Grubba's avatar
Gus Grubba committed
1146 1147
        src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc \
        src/FirmwarePlugin/PX4/PX4ParameterMetaData.cc \
1148 1149 1150
}

PX4FirmwarePluginFactory {
Gus Grubba's avatar
Gus Grubba committed
1151 1152
    HEADERS   += src/FirmwarePlugin/PX4/PX4FirmwarePluginFactory.h
    SOURCES   += src/FirmwarePlugin/PX4/PX4FirmwarePluginFactory.cc
1153 1154 1155 1156 1157 1158 1159 1160 1161 1162
}

# Fact System code

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

HEADERS += \
    src/FactSystem/Fact.h \
1163
    src/FactSystem/FactControls/FactPanelController.h \
Gus Grubba's avatar
Gus Grubba committed
1164
    src/FactSystem/FactGroup.h \
1165 1166
    src/FactSystem/FactMetaData.h \
    src/FactSystem/FactSystem.h \
1167
    src/FactSystem/FactValueSliderListModel.h \
1168
    src/FactSystem/ParameterManager.h \
1169
    src/FactSystem/SettingsFact.h \
1170 1171 1172

SOURCES += \
    src/FactSystem/Fact.cc \
1173
    src/FactSystem/FactControls/FactPanelController.cc \
Gus Grubba's avatar
Gus Grubba committed
1174
    src/FactSystem/FactGroup.cc \
1175 1176
    src/FactSystem/FactMetaData.cc \
    src/FactSystem/FactSystem.cc \
1177
    src/FactSystem/FactValueSliderListModel.cc \
1178
    src/FactSystem/ParameterManager.cc \
1179
    src/FactSystem/SettingsFact.cc \
1180

1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191
#-------------------------------------------------------------------------------------
# MAVLink Inspector
contains (DEFINES, QGC_ENABLE_MAVLINK_INSPECTOR) {
    HEADERS += \
        src/AnalyzeView/MAVLinkInspectorController.h
    SOURCES += \
        src/AnalyzeView/MAVLinkInspectorController.cc
    QT += \
        charts
}

1192 1193
#-------------------------------------------------------------------------------------
# Taisync
1194 1195 1196 1197 1198 1199 1200
contains (DEFINES, QGC_GST_TAISYNC_DISABLED) {
    DEFINES -= QGC_GST_TAISYNC_ENABLED
    message("Taisync disabled")
} else {
    contains (DEFINES, QGC_GST_TAISYNC_ENABLED) {
        INCLUDEPATH += \
            src/Taisync
1201 1202

        HEADERS += \
1203 1204 1205
            src/Taisync/TaisyncManager.h \
            src/Taisync/TaisyncHandler.h \
            src/Taisync/TaisyncSettings.h \
1206 1207

        SOURCES += \
1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220
            src/Taisync/TaisyncManager.cc \
            src/Taisync/TaisyncHandler.cc \
            src/Taisync/TaisyncSettings.cc \

        iOSBuild | AndroidBuild {
            HEADERS += \
                src/Taisync/TaisyncTelemetry.h \
                src/Taisync/TaisyncVideoReceiver.h \

            SOURCES += \
                src/Taisync/TaisyncTelemetry.cc \
                src/Taisync/TaisyncVideoReceiver.cc \
        }
1221
    }
1222 1223
}

1224 1225
#-------------------------------------------------------------------------------------
# Microhard
1226 1227 1228 1229 1230 1231 1232 1233
QGC_GST_MICROHARD_DISABLED
contains (DEFINES, QGC_GST_MICROHARD_DISABLED) {
    DEFINES -= QGC_GST_MICROHARD_ENABLED
    message("Microhard disabled")
} else {
    contains (DEFINES, QGC_GST_MICROHARD_ENABLED) {
        INCLUDEPATH += \
            src/Microhard
1234

1235 1236 1237 1238
        HEADERS += \
            src/Microhard/MicrohardManager.h \
            src/Microhard/MicrohardHandler.h \
            src/Microhard/MicrohardSettings.h \
1239

1240 1241 1242 1243 1244
        SOURCES += \
            src/Microhard/MicrohardManager.cc \
            src/Microhard/MicrohardHandler.cc \
            src/Microhard/MicrohardSettings.cc \
    }
1245
}
1246 1247 1248 1249
#-------------------------------------------------------------------------------------
# AirMap

contains (DEFINES, QGC_AIRMAP_ENABLED) {
1250 1251 1252 1253 1254 1255

    #-- These should be always enabled but not yet
    INCLUDEPATH += \
        src/AirspaceManagement

    HEADERS += \
Gus Grubba's avatar
Gus Grubba committed
1256
        src/AirspaceManagement/AirspaceAdvisoryProvider.h \
Gus Grubba's avatar
Gus Grubba committed
1257
        src/AirspaceManagement/AirspaceFlightPlanProvider.h \
Gus Grubba's avatar
Gus Grubba committed
1258
        src/AirspaceManagement/AirspaceManager.h \
1259 1260 1261 1262
        src/AirspaceManagement/AirspaceRestriction.h \
        src/AirspaceManagement/AirspaceRestrictionProvider.h \
        src/AirspaceManagement/AirspaceRulesetsProvider.h \
        src/AirspaceManagement/AirspaceVehicleManager.h \
1263
        src/AirspaceManagement/AirspaceWeatherInfoProvider.h \
1264 1265

    SOURCES += \
Gus Grubba's avatar
Gus Grubba committed
1266
        src/AirspaceManagement/AirspaceAdvisoryProvider.cc \
Gus Grubba's avatar
Gus Grubba committed
1267
        src/AirspaceManagement/AirspaceFlightPlanProvider.cc \
Gus Grubba's avatar
Gus Grubba committed
1268
        src/AirspaceManagement/AirspaceManager.cc \
1269 1270 1271 1272
        src/AirspaceManagement/AirspaceRestriction.cc \
        src/AirspaceManagement/AirspaceRestrictionProvider.cc \
        src/AirspaceManagement/AirspaceRulesetsProvider.cc \
        src/AirspaceManagement/AirspaceVehicleManager.cc \
1273
        src/AirspaceManagement/AirspaceWeatherInfoProvider.cc \
1274 1275

    #-- This is the AirMap implementation of the above
1276 1277 1278 1279 1280 1281 1282
    RESOURCES += \
        src/Airmap/airmap.qrc

    INCLUDEPATH += \
        src/Airmap

    HEADERS += \
Gus Grubba's avatar
Gus Grubba committed
1283
        src/Airmap/AirMapAdvisoryManager.h \
1284
        src/Airmap/AirMapFlightManager.h \
Gus Grubba's avatar
Gus Grubba committed
1285
        src/Airmap/AirMapFlightPlanManager.h \
1286
        src/Airmap/AirMapManager.h \
1287 1288
        src/Airmap/AirMapRestrictionManager.h \
        src/Airmap/AirMapRulesetsManager.h \
1289
        src/Airmap/AirMapSettings.h \
1290 1291 1292 1293
        src/Airmap/AirMapSharedState.h \
        src/Airmap/AirMapTelemetry.h \
        src/Airmap/AirMapTrafficMonitor.h \
        src/Airmap/AirMapVehicleManager.h \
Gus Grubba's avatar
Gus Grubba committed
1294
        src/Airmap/AirMapWeatherInfoManager.h \
Gus Grubba's avatar
Gus Grubba committed
1295
        src/Airmap/LifetimeChecker.h \
1296 1297

    SOURCES += \
Gus Grubba's avatar
Gus Grubba committed
1298
        src/Airmap/AirMapAdvisoryManager.cc \
1299
        src/Airmap/AirMapFlightManager.cc \
Gus Grubba's avatar
Gus Grubba committed
1300
        src/Airmap/AirMapFlightPlanManager.cc \
1301
        src/Airmap/AirMapManager.cc \
1302 1303
        src/Airmap/AirMapRestrictionManager.cc \
        src/Airmap/AirMapRulesetsManager.cc \
1304
        src/Airmap/AirMapSettings.cc \
1305 1306 1307 1308
        src/Airmap/AirMapSharedState.cc \
        src/Airmap/AirMapTelemetry.cc \
        src/Airmap/AirMapTrafficMonitor.cc \
        src/Airmap/AirMapVehicleManager.cc \
Gus Grubba's avatar
Gus Grubba committed
1309
        src/Airmap/AirMapWeatherInfoManager.cc \
1310

Gus Grubba's avatar
Gus Grubba committed
1311 1312
    #-- Do we have an API key?
    exists(src/Airmap/Airmap_api_key.h) {
Stefan Dunca's avatar
Stefan Dunca committed
1313
        message("Using compile time Airmap API key")
Gus Grubba's avatar
Gus Grubba committed
1314 1315 1316 1317 1318
        HEADERS += \
            src/Airmap/Airmap_api_key.h
        DEFINES += QGC_AIRMAP_KEY_AVAILABLE
    }

1319 1320
    include(src/Airmap/QJsonWebToken/src/qjsonwebtoken.pri)

1321
} else {
1322 1323 1324
    #-- Dummies
    INCLUDEPATH += \
        src/Airmap/dummy
1325 1326
    RESOURCES += \
        src/Airmap/dummy/airmap_dummy.qrc
1327 1328 1329 1330
    HEADERS += \
        src/Airmap/dummy/AirspaceManager.h
    SOURCES += \
        src/Airmap/dummy/AirspaceManager.cc
1331 1332
}

1333 1334 1335 1336
#-------------------------------------------------------------------------------------
# Video Streaming

INCLUDEPATH += \
1337
    src/VideoManager
1338 1339

HEADERS += \
1340 1341
    src/VideoManager/SubtitleWriter.h \
    src/VideoManager/VideoManager.h
1342 1343

SOURCES += \
1344 1345
    src/VideoManager/SubtitleWriter.cc \
    src/VideoManager/VideoManager.cc
1346

1347
contains (CONFIG, DISABLE_VIDEOSTREAMING) {
1348 1349 1350 1351 1352
    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 {
1353
    include(src/VideoReceiver/VideoReceiver.pri)
1354 1355
}

1356
!VideoEnabled {
1357 1358 1359
    INCLUDEPATH += \
        src/VideoReceiver

1360
    HEADERS += \
1361 1362 1363
        src/VideoManager/GLVideoItemStub.h \
        src/VideoReceiver/VideoReceiver.h

1364
    SOURCES += \
1365
        src/VideoManager/GLVideoItemStub.cc
1366 1367
}

1368 1369 1370 1371
#-------------------------------------------------------------------------------------
# Android

AndroidBuild {
Gus Grubba's avatar
Gus Grubba committed
1372 1373 1374 1375 1376
    contains (CONFIG, DISABLE_BUILTIN_ANDROID) {
        message("Skipping builtin support for Android")
    } else {
        include(android.pri)
    }
1377 1378
}

1379 1380 1381 1382 1383 1384 1385 1386
#-------------------------------------------------------------------------------------
#
# Localization
#

TRANSLATIONS += $$files($$PWD/localization/qgc_*.ts)
CONFIG+=lrelease embed_translations

1387 1388 1389 1390 1391
#-------------------------------------------------------------------------------------
#
# Post link configuration
#

1392 1393 1394 1395 1396
contains (CONFIG, QGC_DISABLE_BUILD_SETUP) {
    message("Disable standard build setup")
} else {
    include(QGCSetup.pri)
}
1397 1398 1399 1400 1401

#
# Installer targets
#

1402 1403 1404 1405 1406
contains (CONFIG, QGC_DISABLE_INSTALLER_SETUP) {
    message("Disable standard installer setup")
} else {
    include(QGCInstaller.pri)
}
1407 1408 1409

DISTFILES += \
    src/QmlControls/QGroundControl/Specific/qmldir