qgroundcontrol.pro 45.8 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

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

message(Qt version $$[QT_VERSION])

18
!equals(QT_MAJOR_VERSION, 5) | !greaterThan(QT_MINOR_VERSION, 10) {
19
    error("Unsupported Qt version, 5.11+ is required")
20
}
21

22 23
include(QGCCommon.pri)

Daniel Agar's avatar
Daniel Agar committed
24
TARGET   = QGroundControl
25
TEMPLATE = app
26
QGCROOT  = $$PWD
27 28 29

DebugBuild {
    DESTDIR  = $${OUT_PWD}/debug
dogmaphobic's avatar
dogmaphobic committed
30
} else {
31 32 33
    DESTDIR  = $${OUT_PWD}/release
}

Gus Grubba's avatar
Gus Grubba committed
34 35
QML_IMPORT_PATH += $$PWD/src/QmlControls

36 37 38 39 40 41 42 43
#
# 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
44
    LIBS               += -framework ApplicationServices
45 46 47 48 49 50 51 52
}

LinuxBuild {
    CONFIG  += qesp_linux_udev
}

WindowsBuild {
    RC_ICONS = resources/icons/qgroundcontrol.ico
53
    CONFIG += resources_big
54 55
}

56 57 58 59
#
# Branding
#

DonLakeFlyer's avatar
DonLakeFlyer committed
60
QGC_APP_NAME        = "QGroundControl"
61 62 63
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
64
QGC_APP_COPYRIGHT   = "Copyright (C) 2019 QGroundControl Development Team. All rights reserved."
65

66 67 68 69
WindowsBuild {
    QGC_INSTALLER_ICON          = "WindowsQGC.ico"
    QGC_INSTALLER_HEADER_BITMAP = "installheader.bmp"
}
70

71 72 73 74 75 76
# 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)))
}

77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
#
# 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)
    }
}

105 106 107 108 109 110 111 112
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}"
}

113 114 115 116 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
#-------------------------------------------------------------------------------------
# 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
143 144 145 146 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
#
# 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
178 179 180 181 182 183 184 185 186 187 188 189
# 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
190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213
# NFC
contains (DEFINES, QGC_DISABLE_NFC) {
    message("Skipping support for NFC (manual override from command line)")
    DEFINES -= QGC_ENABLE_NFC
} else:exists(user_config.pri):infile(user_config.pri, DEFINES, QGC_DISABLE_NFC) {
    message("Skipping support for NFC (manual override from user_config.pri)")
    DEFINES -= QGC_ENABLE_NFC
} else:exists(user_config.pri):infile(user_config.pri, DEFINES, QGC_ENABLE_NFC) {
    message("Including support for NFC (manual override from user_config.pri)")
    DEFINES += QGC_ENABLE_NFC
}

# 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
}

214 215 216
# USB Camera and UVC Video Sources
contains (DEFINES, QGC_DISABLE_UVC) {
    message("Skipping support for UVC devices (manual override from command line)")
217
    DEFINES += QGC_DISABLE_UVC
218 219
} 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)")
220
    DEFINES += QGC_DISABLE_UVC
dogmaphobic's avatar
dogmaphobic committed
221 222 223 224 225
} 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
    }
226 227
}

228 229 230 231 232 233 234
LinuxBuild {
    CONFIG += link_pkgconfig
}

# Qt configuration

CONFIG += qt \
235
    thread \
236 237 238 239 240 241 242
    c++11

DebugBuild {
    CONFIG -= qtquickcompiler
} else {
    CONFIG += qtquickcompiler
}
243 244 245 246 247 248

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 {
249
    CONFIG += silent
250
}
251 252 253 254 255

QT += \
    concurrent \
    gui \
    location \
256
    network \
257 258 259 260 261 262 263 264
    opengl \
    positioning \
    qml \
    quick \
    quickwidgets \
    sql \
    svg \
    widgets \
265 266
    xml \
    texttospeech
267 268 269 270 271 272

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

274 275 276 277 278 279
AndroidBuild || iOSBuild {
    # Android and iOS don't unclude these
} else {
    QT += \
        printsupport \
        serialport \
280
        charts \
281 282
}

dogmaphobic's avatar
dogmaphobic committed
283
contains(DEFINES, QGC_ENABLE_BLUETOOTH) {
dogmaphobic's avatar
dogmaphobic committed
284 285 286 287
QT += \
    bluetooth \
}

Gus Grubba's avatar
Gus Grubba committed
288 289 290 291 292
contains(DEFINES, QGC_ENABLE_QTNFC) {
QT += \
    nfc \
}

293 294
#  testlib is needed even in release flavor for QSignalSpy support
QT += testlib
295 296 297 298
ReleaseBuild {
    # We don't need the testlib console in release mode
    QT.testlib.CONFIG -= console
}
299

300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315
#
# Build-specific settings
#

DebugBuild {
!iOSBuild {
    CONFIG += console
}
}

#
# Our QtLocation "plugin"
#

include(src/QtLocationPlugin/QGCLocationPlugin.pri)

Gus Grubba's avatar
Gus Grubba committed
316 317 318 319 320 321 322
# Pairing
contains (DEFINES, QGC_DISABLE_PAIRING) {
    message("Skipping support for Pairing")
    DEFINES -= QGC_ENABLE_NFC
} else:exists(user_config.pri):infile(user_config.pri, DEFINES, QGC_DISABLE_PAIRING) {
    message("Skipping support for Pairing (manual override from user_config.pri)")
    DEFINES -= QGC_ENABLE_NFC
323 324 325 326
} 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)")
    DEFINES -= QGC_ENABLE_NFC
Gus Grubba's avatar
Gus Grubba committed
327 328 329 330 331
} else {
    message("Enabling support for Pairing")
    DEFINES += QGC_ENABLE_PAIRING
}

332 333 334 335 336 337
#
# External library configuration
#

include(QGCExternalLibs.pri)

338
#
339
# Resources (custom code can replace them)
340 341
#

342 343 344 345 346 347 348 349 350 351 352 353 354
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
    }
355 356 357 358 359 360
    exists($$PWD/custom/qgcimages.qrc) {
        message("Using custom qgcimages.qrc")
        RESOURCES += $$PWD/custom/qgcimages.qrc
    } else {
        RESOURCES += $$PWD/qgcimages.qrc
    }
361
} else {
362 363 364
    DEFINES += QGC_APPLICATION_NAME=\"\\\"QGroundControl\\\"\"
    DEFINES += QGC_ORG_NAME=\"\\\"QGroundControl.org\\\"\"
    DEFINES += QGC_ORG_DOMAIN=\"\\\"org.qgroundcontrol\\\"\"
365 366
    RESOURCES += \
        $$PWD/qgroundcontrol.qrc \
367 368
        $$PWD/qgcresources.qrc \
        $$PWD/qgcimages.qrc
369 370
}

371 372 373 374 375 376 377 378 379
# 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
}

380 381 382
#
# Main QGroundControl portion of project file
#
383

384 385
DebugBuild {
    # Unit Test resources
386
    RESOURCES += UnitTest.qrc
387 388
}

389 390 391 392 393 394 395 396 397
DEPENDPATH += \
    . \
    plugins

INCLUDEPATH += .

INCLUDEPATH += \
    include/ui \
    src \
398
    src/api \
Don Gagne's avatar
Don Gagne committed
399
    src/AnalyzeView \
400
    src/Camera \
401 402 403
    src/AutoPilotPlugins \
    src/FlightDisplay \
    src/FlightMap \
404
    src/FlightMap/Widgets \
Jimmy Johnson's avatar
Jimmy Johnson committed
405
    src/FollowMe \
406
    src/GPS \
Gus Grubba's avatar
Gus Grubba committed
407
    src/Joystick \
408
    src/PlanView \
409
    src/MissionManager \
Gus Grubba's avatar
Gus Grubba committed
410
    src/PositionManager \
411
    src/QmlControls \
Gus Grubba's avatar
Gus Grubba committed
412 413
    src/QtLocationPlugin \
    src/QtLocationPlugin/QMLControl \
414
    src/Settings \
415
    src/Terrain \
Gus Grubba's avatar
Gus Grubba committed
416 417
    src/VehicleSetup \
    src/ViewWidgets \
418
    src/Audio \
Gus Grubba's avatar
Gus Grubba committed
419 420 421
    src/comm \
    src/input \
    src/lib/qmapcontrol \
422 423 424 425 426 427 428 429 430 431
    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
432 433 434 435 436
contains (DEFINES, QGC_ENABLE_PAIRING) {
    INCLUDEPATH += \
        src/PairingManager \
}

Gus Grubba's avatar
Gus Grubba committed
437 438 439 440 441
#
# Plugin API
#

HEADERS += \
442 443
    src/api/QGCCorePlugin.h \
    src/api/QGCOptions.h \
Gus Grubba's avatar
Gus Grubba committed
444
    src/api/QGCSettings.h \
445
    src/api/QmlComponentInfo.h \
446
    src/comm/MavlinkMessagesTimer.h \
Gus Grubba's avatar
Gus Grubba committed
447 448 449 450 451 452
    src/GPS/Drivers/src/base_station.h \

contains (DEFINES, QGC_ENABLE_PAIRING) {
    HEADERS += \
        src/PairingManager/aes.h
}
453 454 455 456

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

contains (DEFINES, QGC_ENABLE_PAIRING) {
    SOURCES += \
        src/PairingManager/aes.cpp
}
Gus Grubba's avatar
Gus Grubba committed
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 498 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 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562
#
# 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 \
        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 \
        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 \

} } } } } }

563 564
# Main QGC Headers and Source files

565
HEADERS += \
566
    src/AnalyzeView/LogDownloadController.h \
567
    src/AnalyzeView/PX4LogParser.h \
568
    src/AnalyzeView/ULogParser.h \
569 570
    src/AnalyzeView/MAVLinkInspectorController.h \
    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 \
577
    src/FlightDisplay/VideoManager.h \
578
    src/FlightMap/Widgets/ValuesWidgetController.h \
Gus Grubba's avatar
Gus Grubba committed
579
    src/FollowMe/FollowMe.h \
580 581
    src/Joystick/Joystick.h \
    src/Joystick/JoystickManager.h \
Don Gagne's avatar
Don Gagne committed
582
    src/JsonHelper.h \
583
    src/KMLFileHelper.h \
584 585
    src/LogCompressor.h \
    src/MG.h \
586
    src/MissionManager/CameraCalc.h \
587
    src/MissionManager/CameraSection.h \
588
    src/MissionManager/CameraSpec.h \
589
    src/MissionManager/ComplexMissionItem.h \
590
    src/MissionManager/CorridorScanComplexItem.h \
591
    src/MissionManager/FixedWingLandingComplexItem.h \
592 593
    src/MissionManager/GeoFenceController.h \
    src/MissionManager/GeoFenceManager.h \
594
    src/MissionManager/KML.h \
595
    src/MissionManager/MissionCommandList.h \
596 597
    src/MissionManager/MissionCommandTree.h \
    src/MissionManager/MissionCommandUIInfo.h \
598
    src/MissionManager/MissionController.h \
599 600
    src/MissionManager/MissionItem.h \
    src/MissionManager/MissionManager.h \
601
    src/MissionManager/MissionSettingsItem.h \
602
    src/MissionManager/PlanElementController.h \
603
    src/MissionManager/PlanManager.h \
604
    src/MissionManager/PlanMasterController.h \
605 606 607
    src/MissionManager/QGCFenceCircle.h \
    src/MissionManager/QGCFencePolygon.h \
    src/MissionManager/QGCMapCircle.h \
608
    src/MissionManager/QGCMapPolygon.h \
609
    src/MissionManager/QGCMapPolyline.h \
610 611 612
    src/MissionManager/RallyPoint.h \
    src/MissionManager/RallyPointController.h \
    src/MissionManager/RallyPointManager.h \
613
    src/MissionManager/SimpleMissionItem.h \
614 615
    src/MissionManager/Section.h \
    src/MissionManager/SpeedSection.h \
616
    src/MissionManager/StructureScanComplexItem.h \
617
    src/MissionManager/SurveyComplexItem.h \
618
    src/MissionManager/TransectStyleComplexItem.h \
619
    src/MissionManager/VisualMissionItem.h \
Gus Grubba's avatar
Gus Grubba committed
620 621
    src/PositionManager/PositionManager.h \
    src/PositionManager/SimulatedPosition.h \
622 623 624 625
    src/QGC.h \
    src/QGCApplication.h \
    src/QGCComboBox.h \
    src/QGCConfig.h \
626
    src/QGCFileDownload.h \
627 628
    src/QGCGeo.h \
    src/QGCLoggingCategory.h \
Don Gagne's avatar
Don Gagne committed
629
    src/QGCMapPalette.h \
630
    src/QGCPalette.h \
631
    src/QGCQGeoCoordinate.h \
632 633
    src/QGCTemporaryFile.h \
    src/QGCToolbox.h \
634
    src/QmlControls/AppMessages.h \
635
    src/QmlControls/CoordinateVector.h \
636
    src/QmlControls/EditPositionDialogController.h \
637
    src/QmlControls/ParameterEditorController.h \
638
    src/QmlControls/QGCFileDialogController.h \
Gus Grubba's avatar
Gus Grubba committed
639
    src/QmlControls/QGCImageProvider.h \
640 641
    src/QmlControls/QGroundControlQmlGlobal.h \
    src/QmlControls/QmlObjectListModel.h \
642
    src/QmlControls/QGCGeoBoundingCube.h \
Gus Grubba's avatar
Gus Grubba committed
643 644 645
    src/QmlControls/RCChannelMonitorController.h \
    src/QmlControls/ScreenToolsController.h \
    src/QtLocationPlugin/QMLControl/QGCMapEngineManager.h \
646 647
    src/Settings/AppSettings.h \
    src/Settings/AutoConnectSettings.h \
648
    src/Settings/BrandImageSettings.h \
649
    src/Settings/FirmwareUpgradeSettings.h \
650
    src/Settings/FlightMapSettings.h \
651
    src/Settings/FlyViewSettings.h \
652
    src/Settings/OfflineMapsSettings.h \
653
    src/Settings/PlanViewSettings.h \
Don Gagne's avatar
Don Gagne committed
654
    src/Settings/RTKSettings.h \
655 656 657 658
    src/Settings/SettingsGroup.h \
    src/Settings/SettingsManager.h \
    src/Settings/UnitsSettings.h \
    src/Settings/VideoSettings.h \
659 660
    src/ShapeFileHelper.h \
    src/SHPFileHelper.h \
661
    src/Terrain/TerrainQuery.h \
Andreas Bircher's avatar
Andreas Bircher committed
662
    src/TerrainTile.h \
Gus Grubba's avatar
Gus Grubba committed
663 664 665 666 667
    src/Vehicle/MAVLinkLogManager.h \
    src/VehicleSetup/JoystickConfigController.h \
    src/comm/LinkConfiguration.h \
    src/comm/LinkInterface.h \
    src/comm/LinkManager.h \
668
    src/comm/LogReplayLink.h \
Gus Grubba's avatar
Gus Grubba committed
669 670 671 672 673
    src/comm/MAVLinkProtocol.h \
    src/comm/ProtocolInterface.h \
    src/comm/QGCMAVLink.h \
    src/comm/TCPLink.h \
    src/comm/UDPLink.h \
Willian Galvani's avatar
Willian Galvani committed
674
    src/comm/UdpIODevice.h \
675 676 677
    src/uas/UAS.h \
    src/uas/UASInterface.h \
    src/uas/UASMessageHandler.h \
678
    src/UTM.h \
679 680
    src/AnalyzeView/GeoTagController.h \
    src/AnalyzeView/ExifParser.h \
Gus Grubba's avatar
Gus Grubba committed
681
    src/uas/FileManager.h \
682

Gus Grubba's avatar
Gus Grubba committed
683 684 685 686
contains (DEFINES, QGC_ENABLE_PAIRING) {
    HEADERS += \
        src/PairingManager/PairingManager.h \
}
687

688 689
AndroidBuild {
HEADERS += \
690
    src/Joystick/JoystickAndroid.h \
691 692
}

693 694 695 696 697 698 699
DebugBuild {
HEADERS += \
    src/comm/MockLink.h \
    src/comm/MockLinkFileServer.h \
    src/comm/MockLinkMissionItemHandler.h \
}

700 701 702
WindowsBuild {
    PRECOMPILED_HEADER += src/stable_headers.h
    HEADERS += src/stable_headers.h
Daniel Agar's avatar
Daniel Agar committed
703
    CONFIG -= silent
704
    OTHER_FILES += .appveyor.yml
705 706
}

dogmaphobic's avatar
dogmaphobic committed
707
contains(DEFINES, QGC_ENABLE_BLUETOOTH) {
dogmaphobic's avatar
dogmaphobic committed
708 709
    HEADERS += \
    src/comm/BluetoothLink.h \
dogmaphobic's avatar
dogmaphobic committed
710
}
711

Gus Grubba's avatar
Gus Grubba committed
712 713 714 715 716 717 718 719 720 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
contains (DEFINES, QGC_ENABLE_PAIRING) {
    contains(DEFINES, QGC_ENABLE_QTNFC) {
        HEADERS += \
            src/PairingManager/QtNFC.h
    }
}

contains (DEFINES, QGC_ENABLE_PAIRING) {
    contains(DEFINES, QGC_ENABLE_NFC) {
        HEADERS += \
            src/PairingManager/PairingNFC.h \
            src/PairingManager/NfcLibrary/inc/Nfc.h \
            src/PairingManager/NfcLibrary/inc/Nfc_settings.h \
            src/PairingManager/NfcLibrary/NdefLibrary/inc/P2P_NDEF.h \
            src/PairingManager/NfcLibrary/NdefLibrary/inc/RW_NDEF.h \
            src/PairingManager/NfcLibrary/NdefLibrary/inc/RW_NDEF_T1T.h \
            src/PairingManager/NfcLibrary/NdefLibrary/inc/RW_NDEF_T2T.h \
            src/PairingManager/NfcLibrary/NdefLibrary/inc/RW_NDEF_T3T.h \
            src/PairingManager/NfcLibrary/NdefLibrary/inc/RW_NDEF_T4T.h \
            src/PairingManager/NfcLibrary/NdefLibrary/inc/T4T_NDEF_emu.h \
            src/PairingManager/NfcLibrary/NxpNci/inc/NxpNci.h \
            src/PairingManager/NfcTask/inc/ndef_helper.h \
            src/PairingManager/TML/inc/framework_Allocator.h \
            src/PairingManager/TML/inc/framework_Interface.h \
            src/PairingManager/TML/inc/framework_Map.h \
            src/PairingManager/TML/inc/framework_Timer.h \
            src/PairingManager/TML/inc/lpcusbsio.h \
            src/PairingManager/TML/inc/tml.h \
            src/PairingManager/TML/inc/tool.h \
            src/PairingManager/TML/inc/framework_Container.h \
            src/PairingManager/TML/inc/framework_linux.h \
            src/PairingManager/TML/inc/framework_Parcel.h \
            src/PairingManager/TML/inc/hidapi.h \
            src/PairingManager/TML/inc/lpcusbsio_i2c.h \
            src/PairingManager/TML/inc/tml_hid.h
    }
}

Gus Grubba's avatar
Gus Grubba committed
750
!NoSerialBuild {
751
HEADERS += \
752
    src/comm/QGCSerialPortInfo.h \
753 754 755 756 757
    src/comm/SerialLink.h \
}

!MobileBuild {
HEADERS += \
Gus Grubba's avatar
Gus Grubba committed
758
    src/GPS/Drivers/src/gps_helper.h \
759 760
    src/GPS/Drivers/src/rtcm.h \
    src/GPS/Drivers/src/ashtech.h \
Gus Grubba's avatar
Gus Grubba committed
761
    src/GPS/Drivers/src/ubx.h \
762
    src/GPS/Drivers/src/sbf.h \
Gus Grubba's avatar
Gus Grubba committed
763 764 765 766 767 768 769 770
    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 \
771
    src/RunGuard.h \
772 773 774 775 776
    src/comm/QGCHilLink.h \
    src/comm/QGCJSBSimLink.h \
    src/comm/QGCXPlaneLink.h \
}

Don Gagne's avatar
Don Gagne committed
777 778 779 780
iOSBuild {
    OBJECTIVE_SOURCES += \
        src/MobileScreenMgr.mm \
}
781

Don Gagne's avatar
Don Gagne committed
782
AndroidBuild {
Don Gagne's avatar
Don Gagne committed
783
    SOURCES += src/MobileScreenMgr.cc \
784
    src/Joystick/JoystickAndroid.cc \
Don Gagne's avatar
Don Gagne committed
785 786
}

787
SOURCES += \
788
    src/AnalyzeView/LogDownloadController.cc \
789
    src/AnalyzeView/PX4LogParser.cc \
790
    src/AnalyzeView/ULogParser.cc \
791 792
    src/AnalyzeView/MAVLinkInspectorController.cc \
    src/AnalyzeView/MavlinkConsoleController.cc \
793
    src/Audio/AudioOutput.cc \
794 795 796
    src/Camera/QGCCameraControl.cc \
    src/Camera/QGCCameraIO.cc \
    src/Camera/QGCCameraManager.cc \
797
    src/CmdLineOptParser.cc \
798
    src/FlightDisplay/VideoManager.cc \
799
    src/FlightMap/Widgets/ValuesWidgetController.cc \
Gus Grubba's avatar
Gus Grubba committed
800
    src/FollowMe/FollowMe.cc \
801 802
    src/Joystick/Joystick.cc \
    src/Joystick/JoystickManager.cc \
Don Gagne's avatar
Don Gagne committed
803
    src/JsonHelper.cc \
804
    src/KMLFileHelper.cc \
805
    src/LogCompressor.cc \
806
    src/MissionManager/CameraCalc.cc \
807
    src/MissionManager/CameraSection.cc \
808
    src/MissionManager/CameraSpec.cc \
809
    src/MissionManager/ComplexMissionItem.cc \
810
    src/MissionManager/CorridorScanComplexItem.cc \
811
    src/MissionManager/FixedWingLandingComplexItem.cc \
812 813
    src/MissionManager/GeoFenceController.cc \
    src/MissionManager/GeoFenceManager.cc \
814
    src/MissionManager/KML.cc \
815
    src/MissionManager/MissionCommandList.cc \
816 817
    src/MissionManager/MissionCommandTree.cc \
    src/MissionManager/MissionCommandUIInfo.cc \
818
    src/MissionManager/MissionController.cc \
819 820
    src/MissionManager/MissionItem.cc \
    src/MissionManager/MissionManager.cc \
821
    src/MissionManager/MissionSettingsItem.cc \
822
    src/MissionManager/PlanElementController.cc \
823
    src/MissionManager/PlanManager.cc \
824
    src/MissionManager/PlanMasterController.cc \
825 826 827
    src/MissionManager/QGCFenceCircle.cc \
    src/MissionManager/QGCFencePolygon.cc \
    src/MissionManager/QGCMapCircle.cc \
828
    src/MissionManager/QGCMapPolygon.cc \
829
    src/MissionManager/QGCMapPolyline.cc \
830 831 832
    src/MissionManager/RallyPoint.cc \
    src/MissionManager/RallyPointController.cc \
    src/MissionManager/RallyPointManager.cc \
833
    src/MissionManager/SimpleMissionItem.cc \
834
    src/MissionManager/SpeedSection.cc \
835
    src/MissionManager/StructureScanComplexItem.cc \
836
    src/MissionManager/SurveyComplexItem.cc \
837
    src/MissionManager/TransectStyleComplexItem.cc \
838
    src/MissionManager/VisualMissionItem.cc \
Gus Grubba's avatar
Gus Grubba committed
839 840
    src/PositionManager/PositionManager.cpp \
    src/PositionManager/SimulatedPosition.cc \
841 842 843
    src/QGC.cc \
    src/QGCApplication.cc \
    src/QGCComboBox.cc \
844
    src/QGCFileDownload.cc \
Gus Grubba's avatar
Gus Grubba committed
845
    src/QGCGeo.cc \
846
    src/QGCLoggingCategory.cc \
Don Gagne's avatar
Don Gagne committed
847
    src/QGCMapPalette.cc \
848
    src/QGCPalette.cc \
849
    src/QGCQGeoCoordinate.cc \
850 851
    src/QGCTemporaryFile.cc \
    src/QGCToolbox.cc \
852
    src/QmlControls/AppMessages.cc \
853
    src/QmlControls/CoordinateVector.cc \
854
    src/QmlControls/EditPositionDialogController.cc \
855
    src/QmlControls/ParameterEditorController.cc \
856
    src/QmlControls/QGCFileDialogController.cc \
Gus Grubba's avatar
Gus Grubba committed
857
    src/QmlControls/QGCImageProvider.cc \
858 859
    src/QmlControls/QGroundControlQmlGlobal.cc \
    src/QmlControls/QmlObjectListModel.cc \
860
    src/QmlControls/QGCGeoBoundingCube.cc \
Gus Grubba's avatar
Gus Grubba committed
861 862 863
    src/QmlControls/RCChannelMonitorController.cc \
    src/QmlControls/ScreenToolsController.cc \
    src/QtLocationPlugin/QMLControl/QGCMapEngineManager.cc \
864 865
    src/Settings/AppSettings.cc \
    src/Settings/AutoConnectSettings.cc \
866
    src/Settings/BrandImageSettings.cc \
867
    src/Settings/FirmwareUpgradeSettings.cc \
868
    src/Settings/FlightMapSettings.cc \
869
    src/Settings/FlyViewSettings.cc \
870
    src/Settings/OfflineMapsSettings.cc \
871
    src/Settings/PlanViewSettings.cc \
Don Gagne's avatar
Don Gagne committed
872
    src/Settings/RTKSettings.cc \
873 874 875 876
    src/Settings/SettingsGroup.cc \
    src/Settings/SettingsManager.cc \
    src/Settings/UnitsSettings.cc \
    src/Settings/VideoSettings.cc \
877 878
    src/ShapeFileHelper.cc \
    src/SHPFileHelper.cc \
879
    src/Terrain/TerrainQuery.cc \
Andreas Bircher's avatar
Andreas Bircher committed
880
    src/TerrainTile.cc\
Gus Grubba's avatar
Gus Grubba committed
881 882 883
    src/Vehicle/MAVLinkLogManager.cc \
    src/VehicleSetup/JoystickConfigController.cc \
    src/comm/LinkConfiguration.cc \
884
    src/comm/LinkInterface.cc \
Gus Grubba's avatar
Gus Grubba committed
885
    src/comm/LinkManager.cc \
886
    src/comm/LogReplayLink.cc \
Gus Grubba's avatar
Gus Grubba committed
887 888 889 890
    src/comm/MAVLinkProtocol.cc \
    src/comm/QGCMAVLink.cc \
    src/comm/TCPLink.cc \
    src/comm/UDPLink.cc \
Willian Galvani's avatar
Willian Galvani committed
891
    src/comm/UdpIODevice.cc \
Gus Grubba's avatar
Gus Grubba committed
892
    src/main.cc \
893 894
    src/uas/UAS.cc \
    src/uas/UASMessageHandler.cc \
895
    src/UTM.cpp \
896 897
    src/AnalyzeView/GeoTagController.cc \
    src/AnalyzeView/ExifParser.cc \
Gus Grubba's avatar
Gus Grubba committed
898 899 900 901 902 903
    src/uas/FileManager.cc \

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

905 906 907 908 909 910 911
DebugBuild {
SOURCES += \
    src/comm/MockLink.cc \
    src/comm/MockLinkFileServer.cc \
    src/comm/MockLinkMissionItemHandler.cc \
}

Gus Grubba's avatar
Gus Grubba committed
912
!NoSerialBuild {
913
SOURCES += \
914
    src/comm/QGCSerialPortInfo.cc \
915 916 917
    src/comm/SerialLink.cc \
}

dogmaphobic's avatar
dogmaphobic committed
918
contains(DEFINES, QGC_ENABLE_BLUETOOTH) {
dogmaphobic's avatar
dogmaphobic committed
919 920 921 922
    SOURCES += \
    src/comm/BluetoothLink.cc \
}

Gus Grubba's avatar
Gus Grubba committed
923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959
contains (DEFINES, QGC_ENABLE_PAIRING) {
    contains(DEFINES, QGC_ENABLE_QTNFC) {
        SOURCES += \
        src/PairingManager/QtNFC.cc
    }
}

contains (DEFINES, QGC_ENABLE_PAIRING) {
    contains(DEFINES, QGC_ENABLE_NFC) {
        SOURCES += \
        src/PairingManager/PairingNFC.cc \
        src/PairingManager/NfcLibrary/NxpNci/src/NxpNci.c \
        src/PairingManager/NfcLibrary/NdefLibrary/src/RW_NDEF_T4T.c \
        src/PairingManager/NfcLibrary/NdefLibrary/src/P2P_NDEF.c \
        src/PairingManager/NfcLibrary/NdefLibrary/src/RW_NDEF_T3T.c \
        src/PairingManager/NfcLibrary/NdefLibrary/src/RW_NDEF.c \
        src/PairingManager/NfcLibrary/NdefLibrary/src/RW_NDEF_T1T.c \
        src/PairingManager/NfcLibrary/NdefLibrary/src/RW_NDEF_T2T.c \
        src/PairingManager/NfcLibrary/NdefLibrary/src/T4T_NDEF_emu.c \
        src/PairingManager/TML/src/framework_Map.c \
        src/PairingManager/TML/src/framework_log.c \
        src/PairingManager/TML/src/framework_Parcel.c \
        src/PairingManager/TML/src/framework_sem.c \
        src/PairingManager/TML/src/framework_mutex.c \
        src/PairingManager/TML/src/hid.c \
        src/PairingManager/TML/src/framework_Allocator.c \
        src/PairingManager/TML/src/tml_hid.c \
        src/PairingManager/TML/src/framework_Container.c \
        src/PairingManager/TML/src/framework_thread.c \
        src/PairingManager/TML/src/framework_Timer.c \
        src/PairingManager/TML/src/lpcusbsio.c \
        src/PairingManager/TML/src/tml.c \
        src/PairingManager/NfcTask/src/ndef_helper.c
        LIBS += -lrt -ludev
    }
}

960 961
!MobileBuild {
SOURCES += \
Gus Grubba's avatar
Gus Grubba committed
962
    src/GPS/Drivers/src/gps_helper.cpp \
963 964
    src/GPS/Drivers/src/rtcm.cpp \
    src/GPS/Drivers/src/ashtech.cpp \
Gus Grubba's avatar
Gus Grubba committed
965
    src/GPS/Drivers/src/ubx.cpp \
966
    src/GPS/Drivers/src/sbf.cpp \
Gus Grubba's avatar
Gus Grubba committed
967 968 969 970
    src/GPS/GPSManager.cc \
    src/GPS/GPSProvider.cc \
    src/GPS/RTCM/RTCMMavlink.cc \
    src/Joystick/JoystickSDL.cc \
971
    src/RunGuard.cc \
972 973
    src/comm/QGCJSBSimLink.cc \
    src/comm/QGCXPlaneLink.cc \
974
}
975 976 977 978 979 980

#
# Firmware Plugin Support
#

INCLUDEPATH += \
Don Gagne's avatar
Don Gagne committed
981
    src/AutoPilotPlugins/Common \
982 983 984 985 986 987
    src/FirmwarePlugin \
    src/Vehicle \
    src/VehicleSetup \

HEADERS+= \
    src/AutoPilotPlugins/AutoPilotPlugin.h \
Gus Grubba's avatar
Gus Grubba committed
988 989
    src/AutoPilotPlugins/Common/ESP8266Component.h \
    src/AutoPilotPlugins/Common/ESP8266ComponentController.h \
Don Gagne's avatar
Don Gagne committed
990
    src/AutoPilotPlugins/Common/MotorComponent.h \
Don Gagne's avatar
Don Gagne committed
991
    src/AutoPilotPlugins/Common/RadioComponentController.h \
992 993
    src/AutoPilotPlugins/Common/SyslinkComponent.h \
    src/AutoPilotPlugins/Common/SyslinkComponentController.h \
994
    src/AutoPilotPlugins/Generic/GenericAutoPilotPlugin.h \
995
    src/FirmwarePlugin/CameraMetaData.h \
996
    src/FirmwarePlugin/FirmwarePlugin.h \
Gus Grubba's avatar
Gus Grubba committed
997
    src/FirmwarePlugin/FirmwarePluginManager.h \
998
    src/Vehicle/ADSBVehicle.h \
999
    src/Vehicle/MultiVehicleManager.h \
1000
    src/Vehicle/GPSRTKFactGroup.h \
1001
    src/Vehicle/Vehicle.h \
Gus Grubba's avatar
Gus Grubba committed
1002
    src/Vehicle/VehicleObjectAvoidance.h \
1003 1004
    src/VehicleSetup/VehicleComponent.h \

1005
!MobileBuild { !NoSerialBuild {
Gus Grubba's avatar
Gus Grubba committed
1006 1007 1008 1009 1010
    HEADERS += \
        src/VehicleSetup/Bootloader.h \
        src/VehicleSetup/FirmwareImage.h \
        src/VehicleSetup/FirmwareUpgradeController.h \
        src/VehicleSetup/PX4FirmwareUpgradeThread.h \
1011
}}
1012 1013 1014

SOURCES += \
    src/AutoPilotPlugins/AutoPilotPlugin.cc \
Gus Grubba's avatar
Gus Grubba committed
1015 1016
    src/AutoPilotPlugins/Common/ESP8266Component.cc \
    src/AutoPilotPlugins/Common/ESP8266ComponentController.cc \
Don Gagne's avatar
Don Gagne committed
1017
    src/AutoPilotPlugins/Common/MotorComponent.cc \
Don Gagne's avatar
Don Gagne committed
1018
    src/AutoPilotPlugins/Common/RadioComponentController.cc \
1019 1020
    src/AutoPilotPlugins/Common/SyslinkComponent.cc \
    src/AutoPilotPlugins/Common/SyslinkComponentController.cc \
1021
    src/AutoPilotPlugins/Generic/GenericAutoPilotPlugin.cc \
1022
    src/FirmwarePlugin/CameraMetaData.cc \
1023
    src/FirmwarePlugin/FirmwarePlugin.cc \
1024
    src/FirmwarePlugin/FirmwarePluginManager.cc \
1025
    src/Vehicle/ADSBVehicle.cc \
1026
    src/Vehicle/MultiVehicleManager.cc \
1027
    src/Vehicle/GPSRTKFactGroup.cc \
1028
    src/Vehicle/Vehicle.cc \
Gus Grubba's avatar
Gus Grubba committed
1029
    src/Vehicle/VehicleObjectAvoidance.cc \
1030 1031
    src/VehicleSetup/VehicleComponent.cc \

1032
!MobileBuild { !NoSerialBuild {
1033
    SOURCES += \
Gus Grubba's avatar
Gus Grubba committed
1034 1035 1036 1037
        src/VehicleSetup/Bootloader.cc \
        src/VehicleSetup/FirmwareImage.cc \
        src/VehicleSetup/FirmwareUpgradeController.cc \
        src/VehicleSetup/PX4FirmwareUpgradeThread.cc \
1038
}}
1039

1040
# ArduPilot Specific
1041

1042 1043
ArdupilotEnabled {
    HEADERS += \
1044 1045 1046 1047 1048 1049
        src/Settings/APMMavlinkStreamRateSettings.h \

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

1050 1051
# ArduPilot FirmwarePlugin

1052
APMFirmwarePlugin {
1053
    RESOURCES *= src/FirmwarePlugin/APM/APMResources.qrc
Gus Grubba's avatar
Gus Grubba committed
1054

1055 1056 1057 1058 1059 1060
    INCLUDEPATH += \
        src/AutoPilotPlugins/APM \
        src/FirmwarePlugin/APM \

    HEADERS += \
        src/AutoPilotPlugins/APM/APMAirframeComponent.h \
Gus Grubba's avatar
Gus Grubba committed
1061 1062
        src/AutoPilotPlugins/APM/APMAirframeComponentController.h \
        src/AutoPilotPlugins/APM/APMAutoPilotPlugin.h \
1063 1064 1065 1066
        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
1067
        src/AutoPilotPlugins/APM/APMHeliComponent.h \
Gus Grubba's avatar
Gus Grubba committed
1068
        src/AutoPilotPlugins/APM/APMLightsComponent.h \
1069
        src/AutoPilotPlugins/APM/APMSubFrameComponent.h \
1070
        src/AutoPilotPlugins/APM/APMMotorComponent.h \
1071 1072 1073 1074 1075 1076
        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 \
Gus Grubba's avatar
Gus Grubba committed
1077 1078 1079 1080 1081 1082
        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 \
1083 1084 1085 1086

    SOURCES += \
        src/AutoPilotPlugins/APM/APMAirframeComponent.cc \
        src/AutoPilotPlugins/APM/APMAirframeComponentController.cc \
Gus Grubba's avatar
Gus Grubba committed
1087
        src/AutoPilotPlugins/APM/APMAutoPilotPlugin.cc \
1088 1089 1090 1091
        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
1092
        src/AutoPilotPlugins/APM/APMHeliComponent.cc \
Gus Grubba's avatar
Gus Grubba committed
1093
        src/AutoPilotPlugins/APM/APMLightsComponent.cc \
1094
        src/AutoPilotPlugins/APM/APMSubFrameComponent.cc \
1095
        src/AutoPilotPlugins/APM/APMMotorComponent.cc \
1096 1097 1098 1099 1100 1101
        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 \
Gus Grubba's avatar
Gus Grubba committed
1102 1103 1104 1105 1106 1107
        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 \
1108 1109 1110
}

APMFirmwarePluginFactory {
Gus Grubba's avatar
Gus Grubba committed
1111 1112
    HEADERS   += src/FirmwarePlugin/APM/APMFirmwarePluginFactory.h
    SOURCES   += src/FirmwarePlugin/APM/APMFirmwarePluginFactory.cc
1113 1114 1115 1116 1117
}

# PX4 FirmwarePlugin

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

1120 1121 1122 1123 1124 1125 1126 1127
    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
1128
        src/AutoPilotPlugins/PX4/CameraComponent.h \
1129 1130
        src/AutoPilotPlugins/PX4/FlightModesComponent.h \
        src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.h \
Gus Grubba's avatar
Gus Grubba committed
1131 1132 1133
        src/AutoPilotPlugins/PX4/PX4AirframeLoader.h \
        src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.h \
        src/AutoPilotPlugins/PX4/PX4RadioComponent.h \
1134
        src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.h \
Gus Grubba's avatar
Gus Grubba committed
1135
        src/AutoPilotPlugins/PX4/PX4TuningComponent.h \
1136 1137 1138 1139 1140
        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
1141 1142
        src/FirmwarePlugin/PX4/PX4FirmwarePlugin.h \
        src/FirmwarePlugin/PX4/PX4ParameterMetaData.h \
1143 1144 1145 1146 1147

    SOURCES += \
        src/AutoPilotPlugins/PX4/AirframeComponent.cc \
        src/AutoPilotPlugins/PX4/AirframeComponentAirframes.cc \
        src/AutoPilotPlugins/PX4/AirframeComponentController.cc \
Gus Grubba's avatar
Gus Grubba committed
1148
        src/AutoPilotPlugins/PX4/CameraComponent.cc \
1149 1150 1151
        src/AutoPilotPlugins/PX4/FlightModesComponent.cc \
        src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.cc \
        src/AutoPilotPlugins/PX4/PX4AirframeLoader.cc \
Gus Grubba's avatar
Gus Grubba committed
1152 1153
        src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.cc \
        src/AutoPilotPlugins/PX4/PX4RadioComponent.cc \
1154
        src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.cc \
Gus Grubba's avatar
Gus Grubba committed
1155
        src/AutoPilotPlugins/PX4/PX4TuningComponent.cc \
1156 1157 1158 1159 1160
        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
1161 1162
        src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc \
        src/FirmwarePlugin/PX4/PX4ParameterMetaData.cc \
1163 1164 1165
}

PX4FirmwarePluginFactory {
Gus Grubba's avatar
Gus Grubba committed
1166 1167
    HEADERS   += src/FirmwarePlugin/PX4/PX4FirmwarePluginFactory.h
    SOURCES   += src/FirmwarePlugin/PX4/PX4FirmwarePluginFactory.cc
1168 1169 1170 1171 1172 1173 1174 1175 1176 1177
}

# Fact System code

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

HEADERS += \
    src/FactSystem/Fact.h \
1178
    src/FactSystem/FactControls/FactPanelController.h \
Gus Grubba's avatar
Gus Grubba committed
1179
    src/FactSystem/FactGroup.h \
1180 1181
    src/FactSystem/FactMetaData.h \
    src/FactSystem/FactSystem.h \
1182
    src/FactSystem/FactValueSliderListModel.h \
1183
    src/FactSystem/ParameterManager.h \
1184
    src/FactSystem/SettingsFact.h \
1185 1186 1187

SOURCES += \
    src/FactSystem/Fact.cc \
1188
    src/FactSystem/FactControls/FactPanelController.cc \
Gus Grubba's avatar
Gus Grubba committed
1189
    src/FactSystem/FactGroup.cc \
1190 1191
    src/FactSystem/FactMetaData.cc \
    src/FactSystem/FactSystem.cc \
1192
    src/FactSystem/FactValueSliderListModel.cc \
1193
    src/FactSystem/ParameterManager.cc \
1194
    src/FactSystem/SettingsFact.cc \
1195

1196 1197 1198 1199 1200 1201 1202
#-------------------------------------------------------------------------------------
# Taisync
contains (DEFINES, QGC_GST_TAISYNC_ENABLED) {
    INCLUDEPATH += \
        src/Taisync

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

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

    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 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239
#-------------------------------------------------------------------------------------
# Microhard
contains (DEFINES, QGC_GST_MICROHARD_ENABLED) {
    INCLUDEPATH += \
        src/Microhard

    HEADERS += \
        src/Microhard/MicrohardManager.h \
        src/Microhard/MicrohardHandler.h \
        src/Microhard/MicrohardSettings.h \

    SOURCES += \
        src/Microhard/MicrohardManager.cc \
        src/Microhard/MicrohardHandler.cc \
        src/Microhard/MicrohardSettings.cc \
}

1240 1241 1242 1243
#-------------------------------------------------------------------------------------
# AirMap

contains (DEFINES, QGC_AIRMAP_ENABLED) {
1244 1245 1246 1247 1248 1249

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

    HEADERS += \
Gus Grubba's avatar
Gus Grubba committed
1250
        src/AirspaceManagement/AirspaceAdvisoryProvider.h \
Gus Grubba's avatar
Gus Grubba committed
1251
        src/AirspaceManagement/AirspaceFlightPlanProvider.h \
Gus Grubba's avatar
Gus Grubba committed
1252
        src/AirspaceManagement/AirspaceManager.h \
1253 1254 1255 1256
        src/AirspaceManagement/AirspaceRestriction.h \
        src/AirspaceManagement/AirspaceRestrictionProvider.h \
        src/AirspaceManagement/AirspaceRulesetsProvider.h \
        src/AirspaceManagement/AirspaceVehicleManager.h \
1257
        src/AirspaceManagement/AirspaceWeatherInfoProvider.h \
1258 1259

    SOURCES += \
Gus Grubba's avatar
Gus Grubba committed
1260
        src/AirspaceManagement/AirspaceAdvisoryProvider.cc \
Gus Grubba's avatar
Gus Grubba committed
1261
        src/AirspaceManagement/AirspaceFlightPlanProvider.cc \
Gus Grubba's avatar
Gus Grubba committed
1262
        src/AirspaceManagement/AirspaceManager.cc \
1263 1264 1265 1266
        src/AirspaceManagement/AirspaceRestriction.cc \
        src/AirspaceManagement/AirspaceRestrictionProvider.cc \
        src/AirspaceManagement/AirspaceRulesetsProvider.cc \
        src/AirspaceManagement/AirspaceVehicleManager.cc \
1267
        src/AirspaceManagement/AirspaceWeatherInfoProvider.cc \
1268 1269

    #-- This is the AirMap implementation of the above
1270 1271 1272 1273 1274 1275 1276
    RESOURCES += \
        src/Airmap/airmap.qrc

    INCLUDEPATH += \
        src/Airmap

    HEADERS += \
Gus Grubba's avatar
Gus Grubba committed
1277
        src/Airmap/AirMapAdvisoryManager.h \
1278
        src/Airmap/AirMapFlightManager.h \
Gus Grubba's avatar
Gus Grubba committed
1279
        src/Airmap/AirMapFlightPlanManager.h \
1280
        src/Airmap/AirMapManager.h \
1281 1282
        src/Airmap/AirMapRestrictionManager.h \
        src/Airmap/AirMapRulesetsManager.h \
1283
        src/Airmap/AirMapSettings.h \
1284 1285 1286 1287
        src/Airmap/AirMapSharedState.h \
        src/Airmap/AirMapTelemetry.h \
        src/Airmap/AirMapTrafficMonitor.h \
        src/Airmap/AirMapVehicleManager.h \
Gus Grubba's avatar
Gus Grubba committed
1288
        src/Airmap/AirMapWeatherInfoManager.h \
Gus Grubba's avatar
Gus Grubba committed
1289
        src/Airmap/LifetimeChecker.h \
1290 1291

    SOURCES += \
Gus Grubba's avatar
Gus Grubba committed
1292
        src/Airmap/AirMapAdvisoryManager.cc \
1293
        src/Airmap/AirMapFlightManager.cc \
Gus Grubba's avatar
Gus Grubba committed
1294
        src/Airmap/AirMapFlightPlanManager.cc \
1295
        src/Airmap/AirMapManager.cc \
1296 1297
        src/Airmap/AirMapRestrictionManager.cc \
        src/Airmap/AirMapRulesetsManager.cc \
1298
        src/Airmap/AirMapSettings.cc \
1299 1300 1301 1302
        src/Airmap/AirMapSharedState.cc \
        src/Airmap/AirMapTelemetry.cc \
        src/Airmap/AirMapTrafficMonitor.cc \
        src/Airmap/AirMapVehicleManager.cc \
Gus Grubba's avatar
Gus Grubba committed
1303
        src/Airmap/AirMapWeatherInfoManager.cc \
1304

Gus Grubba's avatar
Gus Grubba committed
1305 1306
    #-- Do we have an API key?
    exists(src/Airmap/Airmap_api_key.h) {
Stefan Dunca's avatar
Stefan Dunca committed
1307
        message("Using compile time Airmap API key")
Gus Grubba's avatar
Gus Grubba committed
1308 1309 1310 1311 1312
        HEADERS += \
            src/Airmap/Airmap_api_key.h
        DEFINES += QGC_AIRMAP_KEY_AVAILABLE
    }

1313 1314
    include(src/Airmap/QJsonWebToken/src/qjsonwebtoken.pri)

1315
} else {
1316 1317 1318
    #-- Dummies
    INCLUDEPATH += \
        src/Airmap/dummy
1319 1320
    RESOURCES += \
        src/Airmap/dummy/airmap_dummy.qrc
1321 1322 1323 1324
    HEADERS += \
        src/Airmap/dummy/AirspaceManager.h
    SOURCES += \
        src/Airmap/dummy/AirspaceManager.cc
1325 1326
}

1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338
#-------------------------------------------------------------------------------------
# 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 \
1339
    src/VideoStreaming/SubtitleWriter.h \
1340 1341 1342 1343 1344 1345

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

1348
contains (CONFIG, DISABLE_VIDEOSTREAMING) {
1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360
    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 {
Gus Grubba's avatar
Gus Grubba committed
1361 1362 1363 1364 1365
    contains (CONFIG, DISABLE_BUILTIN_ANDROID) {
        message("Skipping builtin support for Android")
    } else {
        include(android.pri)
    }
1366 1367
}

1368 1369 1370 1371 1372 1373 1374 1375
#-------------------------------------------------------------------------------------
#
# Localization
#

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

1376 1377 1378 1379 1380
#-------------------------------------------------------------------------------------
#
# Post link configuration
#

1381 1382 1383 1384 1385
contains (CONFIG, QGC_DISABLE_BUILD_SETUP) {
    message("Disable standard build setup")
} else {
    include(QGCSetup.pri)
}
1386 1387 1388 1389 1390

#
# Installer targets
#

1391 1392 1393 1394 1395
contains (CONFIG, QGC_DISABLE_INSTALLER_SETUP) {
    message("Disable standard installer setup")
} else {
    include(QGCInstaller.pri)
}