qgroundcontrol.pro 40.1 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 53 54
}

LinuxBuild {
    CONFIG  += qesp_linux_udev
}

WindowsBuild {
    RC_ICONS = resources/icons/qgroundcontrol.ico
}

55 56 57 58
#
# Branding
#

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

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

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

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

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

112 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
#-------------------------------------------------------------------------------------
# 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
142 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
#
# 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
177 178 179 180 181 182 183 184 185 186 187 188
# 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
}

189 190 191
# USB Camera and UVC Video Sources
contains (DEFINES, QGC_DISABLE_UVC) {
    message("Skipping support for UVC devices (manual override from command line)")
192
    DEFINES += QGC_DISABLE_UVC
193 194
} 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)")
195
    DEFINES += QGC_DISABLE_UVC
dogmaphobic's avatar
dogmaphobic committed
196 197 198 199 200
} 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
    }
201 202
}

203 204 205 206 207 208 209
LinuxBuild {
    CONFIG += link_pkgconfig
}

# Qt configuration

CONFIG += qt \
210
    thread \
211 212 213 214 215 216 217
    c++11

DebugBuild {
    CONFIG -= qtquickcompiler
} else {
    CONFIG += qtquickcompiler
}
218 219 220 221 222 223

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 {
224
    CONFIG += silent
225
}
226 227 228 229 230

QT += \
    concurrent \
    gui \
    location \
231
    network \
232 233 234 235 236 237 238 239
    opengl \
    positioning \
    qml \
    quick \
    quickwidgets \
    sql \
    svg \
    widgets \
240 241
    xml \
    texttospeech
242 243 244 245 246 247

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

249 250 251 252 253 254
AndroidBuild || iOSBuild {
    # Android and iOS don't unclude these
} else {
    QT += \
        printsupport \
        serialport \
255
        charts \
256 257
}

dogmaphobic's avatar
dogmaphobic committed
258
contains(DEFINES, QGC_ENABLE_BLUETOOTH) {
dogmaphobic's avatar
dogmaphobic committed
259 260 261 262
QT += \
    bluetooth \
}

263 264
#  testlib is needed even in release flavor for QSignalSpy support
QT += testlib
265 266 267 268
ReleaseBuild {
    # We don't need the testlib console in release mode
    QT.testlib.CONFIG -= console
}
269

270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292
#
# Build-specific settings
#

DebugBuild {
!iOSBuild {
    CONFIG += console
}
}

#
# Our QtLocation "plugin"
#

include(src/QtLocationPlugin/QGCLocationPlugin.pri)

#
# External library configuration
#

include(QGCExternalLibs.pri)

#
293
# Resources (custom code can replace them)
294 295
#

296 297 298 299 300 301 302 303 304 305 306 307 308
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
    }
309 310 311 312 313 314
    exists($$PWD/custom/qgcimages.qrc) {
        message("Using custom qgcimages.qrc")
        RESOURCES += $$PWD/custom/qgcimages.qrc
    } else {
        RESOURCES += $$PWD/qgcimages.qrc
    }
315
} else {
316 317 318
    DEFINES += QGC_APPLICATION_NAME=\"\\\"QGroundControl\\\"\"
    DEFINES += QGC_ORG_NAME=\"\\\"QGroundControl.org\\\"\"
    DEFINES += QGC_ORG_DOMAIN=\"\\\"org.qgroundcontrol\\\"\"
319 320
    RESOURCES += \
        $$PWD/qgroundcontrol.qrc \
321 322
        $$PWD/qgcresources.qrc \
        $$PWD/qgcimages.qrc
323 324
}

325 326 327 328 329 330 331 332 333
# 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
}

334 335 336
#
# Main QGroundControl portion of project file
#
337

338 339
DebugBuild {
    # Unit Test resources
340
    RESOURCES += UnitTest.qrc
341 342
}

343 344 345 346 347 348 349 350 351
DEPENDPATH += \
    . \
    plugins

INCLUDEPATH += .

INCLUDEPATH += \
    include/ui \
    src \
352
    src/api \
Don Gagne's avatar
Don Gagne committed
353
    src/AnalyzeView \
354
    src/Camera \
355 356 357
    src/AutoPilotPlugins \
    src/FlightDisplay \
    src/FlightMap \
358
    src/FlightMap/Widgets \
Jimmy Johnson's avatar
Jimmy Johnson committed
359
    src/FollowMe \
360
    src/GPS \
Gus Grubba's avatar
Gus Grubba committed
361
    src/Joystick \
362
    src/PlanView \
363
    src/MissionManager \
Gus Grubba's avatar
Gus Grubba committed
364
    src/PositionManager \
365
    src/QmlControls \
Gus Grubba's avatar
Gus Grubba committed
366 367
    src/QtLocationPlugin \
    src/QtLocationPlugin/QMLControl \
368
    src/Settings \
369
    src/Terrain \
Gus Grubba's avatar
Gus Grubba committed
370 371
    src/VehicleSetup \
    src/ViewWidgets \
372
    src/Audio \
Gus Grubba's avatar
Gus Grubba committed
373 374 375
    src/comm \
    src/input \
    src/lib/qmapcontrol \
376 377 378 379 380 381 382 383 384 385
    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
386 387 388 389 390
#
# Plugin API
#

HEADERS += \
391 392
    src/api/QGCCorePlugin.h \
    src/api/QGCOptions.h \
Gus Grubba's avatar
Gus Grubba committed
393
    src/api/QGCSettings.h \
394
    src/api/QmlComponentInfo.h \
395 396
    src/comm/MavlinkMessagesTimer.h \
    src/GPS/Drivers/src/base_station.h
397 398 399 400

SOURCES += \
    src/api/QGCCorePlugin.cc \
    src/api/QGCOptions.cc \
Gus Grubba's avatar
Gus Grubba committed
401
    src/api/QGCSettings.cc \
402
    src/api/QmlComponentInfo.cc \
403
    src/comm/MavlinkMessagesTimer.cc
Gus Grubba's avatar
Gus Grubba committed
404

405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 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 498 499 500 501
#
# 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 \

} } } } } }

502 503
# Main QGC Headers and Source files

504
HEADERS += \
505
    src/AnalyzeView/LogDownloadController.h \
506
    src/AnalyzeView/PX4LogParser.h \
507
    src/AnalyzeView/ULogParser.h \
508 509
    src/AnalyzeView/MAVLinkInspectorController.h \
    src/AnalyzeView/MavlinkConsoleController.h \
510
    src/Audio/AudioOutput.h \
511 512 513
    src/Camera/QGCCameraControl.h \
    src/Camera/QGCCameraIO.h \
    src/Camera/QGCCameraManager.h \
514
    src/CmdLineOptParser.h \
515
    src/FirmwarePlugin/PX4/px4_custom_mode.h \
516
    src/FlightDisplay/VideoManager.h \
517
    src/FlightMap/Widgets/ValuesWidgetController.h \
Gus Grubba's avatar
Gus Grubba committed
518
    src/FollowMe/FollowMe.h \
519 520
    src/Joystick/Joystick.h \
    src/Joystick/JoystickManager.h \
Don Gagne's avatar
Don Gagne committed
521
    src/JsonHelper.h \
522
    src/KMLFileHelper.h \
523 524
    src/LogCompressor.h \
    src/MG.h \
525
    src/MissionManager/CameraCalc.h \
526
    src/MissionManager/CameraSection.h \
527
    src/MissionManager/CameraSpec.h \
528
    src/MissionManager/ComplexMissionItem.h \
529
    src/MissionManager/CorridorScanComplexItem.h \
530
    src/MissionManager/FixedWingLandingComplexItem.h \
531 532
    src/MissionManager/GeoFenceController.h \
    src/MissionManager/GeoFenceManager.h \
533
    src/MissionManager/KML.h \
534
    src/MissionManager/MissionCommandList.h \
535 536
    src/MissionManager/MissionCommandTree.h \
    src/MissionManager/MissionCommandUIInfo.h \
537
    src/MissionManager/MissionController.h \
538 539
    src/MissionManager/MissionItem.h \
    src/MissionManager/MissionManager.h \
540
    src/MissionManager/MissionSettingsItem.h \
541
    src/MissionManager/PlanElementController.h \
542
    src/MissionManager/PlanManager.h \
543
    src/MissionManager/PlanMasterController.h \
544 545 546
    src/MissionManager/QGCFenceCircle.h \
    src/MissionManager/QGCFencePolygon.h \
    src/MissionManager/QGCMapCircle.h \
547
    src/MissionManager/QGCMapPolygon.h \
548
    src/MissionManager/QGCMapPolyline.h \
549 550 551
    src/MissionManager/RallyPoint.h \
    src/MissionManager/RallyPointController.h \
    src/MissionManager/RallyPointManager.h \
552
    src/MissionManager/SimpleMissionItem.h \
553 554
    src/MissionManager/Section.h \
    src/MissionManager/SpeedSection.h \
555
    src/MissionManager/StructureScanComplexItem.h \
556
    src/MissionManager/SurveyComplexItem.h \
557
    src/MissionManager/TransectStyleComplexItem.h \
558
    src/MissionManager/VisualMissionItem.h \
Gus Grubba's avatar
Gus Grubba committed
559 560
    src/PositionManager/PositionManager.h \
    src/PositionManager/SimulatedPosition.h \
561 562 563 564
    src/QGC.h \
    src/QGCApplication.h \
    src/QGCComboBox.h \
    src/QGCConfig.h \
565
    src/QGCFileDownload.h \
566 567
    src/QGCGeo.h \
    src/QGCLoggingCategory.h \
Don Gagne's avatar
Don Gagne committed
568
    src/QGCMapPalette.h \
569
    src/QGCPalette.h \
570
    src/QGCQGeoCoordinate.h \
571 572
    src/QGCTemporaryFile.h \
    src/QGCToolbox.h \
573
    src/QmlControls/AppMessages.h \
574
    src/QmlControls/CoordinateVector.h \
575
    src/QmlControls/EditPositionDialogController.h \
576
    src/QmlControls/ParameterEditorController.h \
577
    src/QmlControls/QGCFileDialogController.h \
Gus Grubba's avatar
Gus Grubba committed
578
    src/QmlControls/QGCImageProvider.h \
579 580
    src/QmlControls/QGroundControlQmlGlobal.h \
    src/QmlControls/QmlObjectListModel.h \
581
    src/QmlControls/QGCGeoBoundingCube.h \
Gus Grubba's avatar
Gus Grubba committed
582 583 584
    src/QmlControls/RCChannelMonitorController.h \
    src/QmlControls/ScreenToolsController.h \
    src/QtLocationPlugin/QMLControl/QGCMapEngineManager.h \
585 586
    src/Settings/AppSettings.h \
    src/Settings/AutoConnectSettings.h \
587
    src/Settings/BrandImageSettings.h \
588
    src/Settings/FirmwareUpgradeSettings.h \
589
    src/Settings/FlightMapSettings.h \
590
    src/Settings/FlyViewSettings.h \
591
    src/Settings/OfflineMapsSettings.h \
592
    src/Settings/PlanViewSettings.h \
Don Gagne's avatar
Don Gagne committed
593
    src/Settings/RTKSettings.h \
594 595 596 597
    src/Settings/SettingsGroup.h \
    src/Settings/SettingsManager.h \
    src/Settings/UnitsSettings.h \
    src/Settings/VideoSettings.h \
598 599
    src/ShapeFileHelper.h \
    src/SHPFileHelper.h \
600
    src/Terrain/TerrainQuery.h \
Andreas Bircher's avatar
Andreas Bircher committed
601
    src/TerrainTile.h \
Gus Grubba's avatar
Gus Grubba committed
602 603 604 605 606
    src/Vehicle/MAVLinkLogManager.h \
    src/VehicleSetup/JoystickConfigController.h \
    src/comm/LinkConfiguration.h \
    src/comm/LinkInterface.h \
    src/comm/LinkManager.h \
607
    src/comm/LogReplayLink.h \
Gus Grubba's avatar
Gus Grubba committed
608 609 610 611 612
    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
613
    src/comm/UdpIODevice.h \
614 615 616
    src/uas/UAS.h \
    src/uas/UASInterface.h \
    src/uas/UASMessageHandler.h \
617
    src/UTM.h \
618 619
    src/AnalyzeView/GeoTagController.h \
    src/AnalyzeView/ExifParser.h \
620

621

622 623
AndroidBuild {
HEADERS += \
624
    src/Joystick/JoystickAndroid.h \
625 626
}

627 628 629 630 631 632 633
DebugBuild {
HEADERS += \
    src/comm/MockLink.h \
    src/comm/MockLinkFileServer.h \
    src/comm/MockLinkMissionItemHandler.h \
}

634 635 636
WindowsBuild {
    PRECOMPILED_HEADER += src/stable_headers.h
    HEADERS += src/stable_headers.h
Daniel Agar's avatar
Daniel Agar committed
637
    CONFIG -= silent
638
    OTHER_FILES += .appveyor.yml
639 640
}

dogmaphobic's avatar
dogmaphobic committed
641
contains(DEFINES, QGC_ENABLE_BLUETOOTH) {
dogmaphobic's avatar
dogmaphobic committed
642 643
    HEADERS += \
    src/comm/BluetoothLink.h \
dogmaphobic's avatar
dogmaphobic committed
644
}
645

Gus Grubba's avatar
Gus Grubba committed
646
!NoSerialBuild {
647
HEADERS += \
648
    src/comm/QGCSerialPortInfo.h \
649 650 651 652 653
    src/comm/SerialLink.h \
}

!MobileBuild {
HEADERS += \
Gus Grubba's avatar
Gus Grubba committed
654
    src/GPS/Drivers/src/gps_helper.h \
655 656
    src/GPS/Drivers/src/rtcm.h \
    src/GPS/Drivers/src/ashtech.h \
Gus Grubba's avatar
Gus Grubba committed
657
    src/GPS/Drivers/src/ubx.h \
658
    src/GPS/Drivers/src/sbf.h \
Gus Grubba's avatar
Gus Grubba committed
659 660 661 662 663 664 665 666
    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 \
667
    src/RunGuard.h \
668 669 670
    src/comm/QGCHilLink.h \
    src/comm/QGCJSBSimLink.h \
    src/comm/QGCXPlaneLink.h \
671
    src/uas/FileManager.h \
672 673
}

Don Gagne's avatar
Don Gagne committed
674 675 676 677
iOSBuild {
    OBJECTIVE_SOURCES += \
        src/MobileScreenMgr.mm \
}
678

Don Gagne's avatar
Don Gagne committed
679
AndroidBuild {
Don Gagne's avatar
Don Gagne committed
680
    SOURCES += src/MobileScreenMgr.cc \
681
    src/Joystick/JoystickAndroid.cc \
Don Gagne's avatar
Don Gagne committed
682 683
}

684
SOURCES += \
685
    src/AnalyzeView/LogDownloadController.cc \
686
    src/AnalyzeView/PX4LogParser.cc \
687
    src/AnalyzeView/ULogParser.cc \
688 689
    src/AnalyzeView/MAVLinkInspectorController.cc \
    src/AnalyzeView/MavlinkConsoleController.cc \
690
    src/Audio/AudioOutput.cc \
691 692 693
    src/Camera/QGCCameraControl.cc \
    src/Camera/QGCCameraIO.cc \
    src/Camera/QGCCameraManager.cc \
694
    src/CmdLineOptParser.cc \
695
    src/FlightDisplay/VideoManager.cc \
696
    src/FlightMap/Widgets/ValuesWidgetController.cc \
Gus Grubba's avatar
Gus Grubba committed
697
    src/FollowMe/FollowMe.cc \
698 699
    src/Joystick/Joystick.cc \
    src/Joystick/JoystickManager.cc \
Don Gagne's avatar
Don Gagne committed
700
    src/JsonHelper.cc \
701
    src/KMLFileHelper.cc \
702
    src/LogCompressor.cc \
703
    src/MissionManager/CameraCalc.cc \
704
    src/MissionManager/CameraSection.cc \
705
    src/MissionManager/CameraSpec.cc \
706
    src/MissionManager/ComplexMissionItem.cc \
707
    src/MissionManager/CorridorScanComplexItem.cc \
708
    src/MissionManager/FixedWingLandingComplexItem.cc \
709 710
    src/MissionManager/GeoFenceController.cc \
    src/MissionManager/GeoFenceManager.cc \
711
    src/MissionManager/KML.cc \
712
    src/MissionManager/MissionCommandList.cc \
713 714
    src/MissionManager/MissionCommandTree.cc \
    src/MissionManager/MissionCommandUIInfo.cc \
715
    src/MissionManager/MissionController.cc \
716 717
    src/MissionManager/MissionItem.cc \
    src/MissionManager/MissionManager.cc \
718
    src/MissionManager/MissionSettingsItem.cc \
719
    src/MissionManager/PlanElementController.cc \
720
    src/MissionManager/PlanManager.cc \
721
    src/MissionManager/PlanMasterController.cc \
722 723 724
    src/MissionManager/QGCFenceCircle.cc \
    src/MissionManager/QGCFencePolygon.cc \
    src/MissionManager/QGCMapCircle.cc \
725
    src/MissionManager/QGCMapPolygon.cc \
726
    src/MissionManager/QGCMapPolyline.cc \
727 728 729
    src/MissionManager/RallyPoint.cc \
    src/MissionManager/RallyPointController.cc \
    src/MissionManager/RallyPointManager.cc \
730
    src/MissionManager/SimpleMissionItem.cc \
731
    src/MissionManager/SpeedSection.cc \
732
    src/MissionManager/StructureScanComplexItem.cc \
733
    src/MissionManager/SurveyComplexItem.cc \
734
    src/MissionManager/TransectStyleComplexItem.cc \
735
    src/MissionManager/VisualMissionItem.cc \
Gus Grubba's avatar
Gus Grubba committed
736 737
    src/PositionManager/PositionManager.cpp \
    src/PositionManager/SimulatedPosition.cc \
738 739 740
    src/QGC.cc \
    src/QGCApplication.cc \
    src/QGCComboBox.cc \
741
    src/QGCFileDownload.cc \
Gus Grubba's avatar
Gus Grubba committed
742
    src/QGCGeo.cc \
743
    src/QGCLoggingCategory.cc \
Don Gagne's avatar
Don Gagne committed
744
    src/QGCMapPalette.cc \
745
    src/QGCPalette.cc \
746
    src/QGCQGeoCoordinate.cc \
747 748
    src/QGCTemporaryFile.cc \
    src/QGCToolbox.cc \
749
    src/QmlControls/AppMessages.cc \
750
    src/QmlControls/CoordinateVector.cc \
751
    src/QmlControls/EditPositionDialogController.cc \
752
    src/QmlControls/ParameterEditorController.cc \
753
    src/QmlControls/QGCFileDialogController.cc \
Gus Grubba's avatar
Gus Grubba committed
754
    src/QmlControls/QGCImageProvider.cc \
755 756
    src/QmlControls/QGroundControlQmlGlobal.cc \
    src/QmlControls/QmlObjectListModel.cc \
757
    src/QmlControls/QGCGeoBoundingCube.cc \
Gus Grubba's avatar
Gus Grubba committed
758 759 760
    src/QmlControls/RCChannelMonitorController.cc \
    src/QmlControls/ScreenToolsController.cc \
    src/QtLocationPlugin/QMLControl/QGCMapEngineManager.cc \
761 762
    src/Settings/AppSettings.cc \
    src/Settings/AutoConnectSettings.cc \
763
    src/Settings/BrandImageSettings.cc \
764
    src/Settings/FirmwareUpgradeSettings.cc \
765
    src/Settings/FlightMapSettings.cc \
766
    src/Settings/FlyViewSettings.cc \
767
    src/Settings/OfflineMapsSettings.cc \
768
    src/Settings/PlanViewSettings.cc \
Don Gagne's avatar
Don Gagne committed
769
    src/Settings/RTKSettings.cc \
770 771 772 773
    src/Settings/SettingsGroup.cc \
    src/Settings/SettingsManager.cc \
    src/Settings/UnitsSettings.cc \
    src/Settings/VideoSettings.cc \
774 775
    src/ShapeFileHelper.cc \
    src/SHPFileHelper.cc \
776
    src/Terrain/TerrainQuery.cc \
Andreas Bircher's avatar
Andreas Bircher committed
777
    src/TerrainTile.cc\
Gus Grubba's avatar
Gus Grubba committed
778 779 780
    src/Vehicle/MAVLinkLogManager.cc \
    src/VehicleSetup/JoystickConfigController.cc \
    src/comm/LinkConfiguration.cc \
781
    src/comm/LinkInterface.cc \
Gus Grubba's avatar
Gus Grubba committed
782
    src/comm/LinkManager.cc \
783
    src/comm/LogReplayLink.cc \
Gus Grubba's avatar
Gus Grubba committed
784 785 786 787
    src/comm/MAVLinkProtocol.cc \
    src/comm/QGCMAVLink.cc \
    src/comm/TCPLink.cc \
    src/comm/UDPLink.cc \
Willian Galvani's avatar
Willian Galvani committed
788
    src/comm/UdpIODevice.cc \
Gus Grubba's avatar
Gus Grubba committed
789
    src/main.cc \
790 791
    src/uas/UAS.cc \
    src/uas/UASMessageHandler.cc \
792
    src/UTM.cpp \
793 794
    src/AnalyzeView/GeoTagController.cc \
    src/AnalyzeView/ExifParser.cc \
795

796 797 798 799 800 801 802
DebugBuild {
SOURCES += \
    src/comm/MockLink.cc \
    src/comm/MockLinkFileServer.cc \
    src/comm/MockLinkMissionItemHandler.cc \
}

Gus Grubba's avatar
Gus Grubba committed
803
!NoSerialBuild {
804
SOURCES += \
805
    src/comm/QGCSerialPortInfo.cc \
806 807 808
    src/comm/SerialLink.cc \
}

dogmaphobic's avatar
dogmaphobic committed
809
contains(DEFINES, QGC_ENABLE_BLUETOOTH) {
dogmaphobic's avatar
dogmaphobic committed
810 811 812 813
    SOURCES += \
    src/comm/BluetoothLink.cc \
}

814 815
!MobileBuild {
SOURCES += \
Gus Grubba's avatar
Gus Grubba committed
816
    src/GPS/Drivers/src/gps_helper.cpp \
817 818
    src/GPS/Drivers/src/rtcm.cpp \
    src/GPS/Drivers/src/ashtech.cpp \
Gus Grubba's avatar
Gus Grubba committed
819
    src/GPS/Drivers/src/ubx.cpp \
820
    src/GPS/Drivers/src/sbf.cpp \
Gus Grubba's avatar
Gus Grubba committed
821 822 823 824
    src/GPS/GPSManager.cc \
    src/GPS/GPSProvider.cc \
    src/GPS/RTCM/RTCMMavlink.cc \
    src/Joystick/JoystickSDL.cc \
825
    src/RunGuard.cc \
826 827
    src/comm/QGCJSBSimLink.cc \
    src/comm/QGCXPlaneLink.cc \
Gus Grubba's avatar
Gus Grubba committed
828
    src/uas/FileManager.cc \
829
}
830 831 832 833 834 835

#
# Firmware Plugin Support
#

INCLUDEPATH += \
Don Gagne's avatar
Don Gagne committed
836
    src/AutoPilotPlugins/Common \
837 838 839 840 841 842
    src/FirmwarePlugin \
    src/Vehicle \
    src/VehicleSetup \

HEADERS+= \
    src/AutoPilotPlugins/AutoPilotPlugin.h \
Gus Grubba's avatar
Gus Grubba committed
843 844
    src/AutoPilotPlugins/Common/ESP8266Component.h \
    src/AutoPilotPlugins/Common/ESP8266ComponentController.h \
Don Gagne's avatar
Don Gagne committed
845
    src/AutoPilotPlugins/Common/MotorComponent.h \
Don Gagne's avatar
Don Gagne committed
846
    src/AutoPilotPlugins/Common/RadioComponentController.h \
847 848
    src/AutoPilotPlugins/Common/SyslinkComponent.h \
    src/AutoPilotPlugins/Common/SyslinkComponentController.h \
849
    src/AutoPilotPlugins/Generic/GenericAutoPilotPlugin.h \
850
    src/FirmwarePlugin/CameraMetaData.h \
851
    src/FirmwarePlugin/FirmwarePlugin.h \
Gus Grubba's avatar
Gus Grubba committed
852
    src/FirmwarePlugin/FirmwarePluginManager.h \
853
    src/Vehicle/ADSBVehicle.h \
854
    src/Vehicle/MultiVehicleManager.h \
855
    src/Vehicle/GPSRTKFactGroup.h \
856 857 858
    src/Vehicle/Vehicle.h \
    src/VehicleSetup/VehicleComponent.h \

859
!MobileBuild { !NoSerialBuild {
Gus Grubba's avatar
Gus Grubba committed
860 861 862 863 864
    HEADERS += \
        src/VehicleSetup/Bootloader.h \
        src/VehicleSetup/FirmwareImage.h \
        src/VehicleSetup/FirmwareUpgradeController.h \
        src/VehicleSetup/PX4FirmwareUpgradeThread.h \
865
}}
866 867 868

SOURCES += \
    src/AutoPilotPlugins/AutoPilotPlugin.cc \
Gus Grubba's avatar
Gus Grubba committed
869 870
    src/AutoPilotPlugins/Common/ESP8266Component.cc \
    src/AutoPilotPlugins/Common/ESP8266ComponentController.cc \
Don Gagne's avatar
Don Gagne committed
871
    src/AutoPilotPlugins/Common/MotorComponent.cc \
Don Gagne's avatar
Don Gagne committed
872
    src/AutoPilotPlugins/Common/RadioComponentController.cc \
873 874
    src/AutoPilotPlugins/Common/SyslinkComponent.cc \
    src/AutoPilotPlugins/Common/SyslinkComponentController.cc \
875
    src/AutoPilotPlugins/Generic/GenericAutoPilotPlugin.cc \
876
    src/FirmwarePlugin/CameraMetaData.cc \
877
    src/FirmwarePlugin/FirmwarePlugin.cc \
878
    src/FirmwarePlugin/FirmwarePluginManager.cc \
879
    src/Vehicle/ADSBVehicle.cc \
880
    src/Vehicle/MultiVehicleManager.cc \
881
    src/Vehicle/GPSRTKFactGroup.cc \
882 883 884
    src/Vehicle/Vehicle.cc \
    src/VehicleSetup/VehicleComponent.cc \

885
!MobileBuild { !NoSerialBuild {
886
    SOURCES += \
Gus Grubba's avatar
Gus Grubba committed
887 888 889 890
        src/VehicleSetup/Bootloader.cc \
        src/VehicleSetup/FirmwareImage.cc \
        src/VehicleSetup/FirmwareUpgradeController.cc \
        src/VehicleSetup/PX4FirmwareUpgradeThread.cc \
891
}}
892

893
# ArduPilot Specific
894

895 896
ArdupilotEnabled {
    HEADERS += \
897 898 899 900 901 902
        src/Settings/APMMavlinkStreamRateSettings.h \

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

903 904
# ArduPilot FirmwarePlugin

905
APMFirmwarePlugin {
906
    RESOURCES *= src/FirmwarePlugin/APM/APMResources.qrc
Gus Grubba's avatar
Gus Grubba committed
907

908 909 910 911 912 913
    INCLUDEPATH += \
        src/AutoPilotPlugins/APM \
        src/FirmwarePlugin/APM \

    HEADERS += \
        src/AutoPilotPlugins/APM/APMAirframeComponent.h \
Gus Grubba's avatar
Gus Grubba committed
914 915
        src/AutoPilotPlugins/APM/APMAirframeComponentController.h \
        src/AutoPilotPlugins/APM/APMAutoPilotPlugin.h \
916 917 918 919
        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
920
        src/AutoPilotPlugins/APM/APMHeliComponent.h \
Gus Grubba's avatar
Gus Grubba committed
921
        src/AutoPilotPlugins/APM/APMLightsComponent.h \
922
        src/AutoPilotPlugins/APM/APMSubFrameComponent.h \
923
        src/AutoPilotPlugins/APM/APMMotorComponent.h \
924 925 926 927 928 929
        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
930 931 932 933 934 935
        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 \
936 937 938 939

    SOURCES += \
        src/AutoPilotPlugins/APM/APMAirframeComponent.cc \
        src/AutoPilotPlugins/APM/APMAirframeComponentController.cc \
Gus Grubba's avatar
Gus Grubba committed
940
        src/AutoPilotPlugins/APM/APMAutoPilotPlugin.cc \
941 942 943 944
        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
945
        src/AutoPilotPlugins/APM/APMHeliComponent.cc \
Gus Grubba's avatar
Gus Grubba committed
946
        src/AutoPilotPlugins/APM/APMLightsComponent.cc \
947
        src/AutoPilotPlugins/APM/APMSubFrameComponent.cc \
948
        src/AutoPilotPlugins/APM/APMMotorComponent.cc \
949 950 951 952 953 954
        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
955 956 957 958 959 960
        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 \
961 962 963
}

APMFirmwarePluginFactory {
Gus Grubba's avatar
Gus Grubba committed
964 965
    HEADERS   += src/FirmwarePlugin/APM/APMFirmwarePluginFactory.h
    SOURCES   += src/FirmwarePlugin/APM/APMFirmwarePluginFactory.cc
966 967 968 969 970
}

# PX4 FirmwarePlugin

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

973 974 975 976 977 978 979 980
    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
981
        src/AutoPilotPlugins/PX4/CameraComponent.h \
982 983
        src/AutoPilotPlugins/PX4/FlightModesComponent.h \
        src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.h \
Gus Grubba's avatar
Gus Grubba committed
984 985 986
        src/AutoPilotPlugins/PX4/PX4AirframeLoader.h \
        src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.h \
        src/AutoPilotPlugins/PX4/PX4RadioComponent.h \
987
        src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.h \
Gus Grubba's avatar
Gus Grubba committed
988
        src/AutoPilotPlugins/PX4/PX4TuningComponent.h \
989 990 991 992 993
        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
994 995
        src/FirmwarePlugin/PX4/PX4FirmwarePlugin.h \
        src/FirmwarePlugin/PX4/PX4ParameterMetaData.h \
996 997 998 999 1000

    SOURCES += \
        src/AutoPilotPlugins/PX4/AirframeComponent.cc \
        src/AutoPilotPlugins/PX4/AirframeComponentAirframes.cc \
        src/AutoPilotPlugins/PX4/AirframeComponentController.cc \
Gus Grubba's avatar
Gus Grubba committed
1001
        src/AutoPilotPlugins/PX4/CameraComponent.cc \
1002 1003 1004
        src/AutoPilotPlugins/PX4/FlightModesComponent.cc \
        src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.cc \
        src/AutoPilotPlugins/PX4/PX4AirframeLoader.cc \
Gus Grubba's avatar
Gus Grubba committed
1005 1006
        src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.cc \
        src/AutoPilotPlugins/PX4/PX4RadioComponent.cc \
1007
        src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.cc \
Gus Grubba's avatar
Gus Grubba committed
1008
        src/AutoPilotPlugins/PX4/PX4TuningComponent.cc \
1009 1010 1011 1012 1013
        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
1014 1015
        src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc \
        src/FirmwarePlugin/PX4/PX4ParameterMetaData.cc \
1016 1017 1018
}

PX4FirmwarePluginFactory {
Gus Grubba's avatar
Gus Grubba committed
1019 1020
    HEADERS   += src/FirmwarePlugin/PX4/PX4FirmwarePluginFactory.h
    SOURCES   += src/FirmwarePlugin/PX4/PX4FirmwarePluginFactory.cc
1021 1022 1023 1024 1025 1026 1027 1028 1029 1030
}

# Fact System code

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

HEADERS += \
    src/FactSystem/Fact.h \
1031
    src/FactSystem/FactControls/FactPanelController.h \
Gus Grubba's avatar
Gus Grubba committed
1032
    src/FactSystem/FactGroup.h \
1033 1034
    src/FactSystem/FactMetaData.h \
    src/FactSystem/FactSystem.h \
1035
    src/FactSystem/FactValueSliderListModel.h \
1036
    src/FactSystem/ParameterManager.h \
1037
    src/FactSystem/SettingsFact.h \
1038 1039 1040

SOURCES += \
    src/FactSystem/Fact.cc \
1041
    src/FactSystem/FactControls/FactPanelController.cc \
Gus Grubba's avatar
Gus Grubba committed
1042
    src/FactSystem/FactGroup.cc \
1043 1044
    src/FactSystem/FactMetaData.cc \
    src/FactSystem/FactSystem.cc \
1045
    src/FactSystem/FactValueSliderListModel.cc \
1046
    src/FactSystem/ParameterManager.cc \
1047
    src/FactSystem/SettingsFact.cc \
1048

1049 1050 1051 1052 1053 1054 1055
#-------------------------------------------------------------------------------------
# Taisync
contains (DEFINES, QGC_GST_TAISYNC_ENABLED) {
    INCLUDEPATH += \
        src/Taisync

    HEADERS += \
1056
        src/Taisync/TaisyncManager.h \
1057 1058 1059 1060
        src/Taisync/TaisyncHandler.h \
        src/Taisync/TaisyncSettings.h \

    SOURCES += \
1061
        src/Taisync/TaisyncManager.cc \
1062 1063
        src/Taisync/TaisyncHandler.cc \
        src/Taisync/TaisyncSettings.cc \
1064 1065 1066 1067 1068 1069 1070 1071 1072 1073

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

        SOURCES += \
            src/Taisync/TaisyncTelemetry.cc \
            src/Taisync/TaisyncVideoReceiver.cc \
    }
1074 1075
}

1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092
#-------------------------------------------------------------------------------------
# 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 \
}

1093 1094 1095 1096
#-------------------------------------------------------------------------------------
# AirMap

contains (DEFINES, QGC_AIRMAP_ENABLED) {
1097 1098 1099 1100 1101 1102

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

    HEADERS += \
Gus Grubba's avatar
Gus Grubba committed
1103
        src/AirspaceManagement/AirspaceAdvisoryProvider.h \
Gus Grubba's avatar
Gus Grubba committed
1104
        src/AirspaceManagement/AirspaceFlightPlanProvider.h \
Gus Grubba's avatar
Gus Grubba committed
1105
        src/AirspaceManagement/AirspaceManager.h \
1106 1107 1108 1109
        src/AirspaceManagement/AirspaceRestriction.h \
        src/AirspaceManagement/AirspaceRestrictionProvider.h \
        src/AirspaceManagement/AirspaceRulesetsProvider.h \
        src/AirspaceManagement/AirspaceVehicleManager.h \
1110
        src/AirspaceManagement/AirspaceWeatherInfoProvider.h \
1111 1112

    SOURCES += \
Gus Grubba's avatar
Gus Grubba committed
1113
        src/AirspaceManagement/AirspaceAdvisoryProvider.cc \
Gus Grubba's avatar
Gus Grubba committed
1114
        src/AirspaceManagement/AirspaceFlightPlanProvider.cc \
Gus Grubba's avatar
Gus Grubba committed
1115
        src/AirspaceManagement/AirspaceManager.cc \
1116 1117 1118 1119
        src/AirspaceManagement/AirspaceRestriction.cc \
        src/AirspaceManagement/AirspaceRestrictionProvider.cc \
        src/AirspaceManagement/AirspaceRulesetsProvider.cc \
        src/AirspaceManagement/AirspaceVehicleManager.cc \
1120
        src/AirspaceManagement/AirspaceWeatherInfoProvider.cc \
1121 1122

    #-- This is the AirMap implementation of the above
1123 1124 1125 1126 1127 1128 1129
    RESOURCES += \
        src/Airmap/airmap.qrc

    INCLUDEPATH += \
        src/Airmap

    HEADERS += \
Gus Grubba's avatar
Gus Grubba committed
1130
        src/Airmap/AirMapAdvisoryManager.h \
1131
        src/Airmap/AirMapFlightManager.h \
Gus Grubba's avatar
Gus Grubba committed
1132
        src/Airmap/AirMapFlightPlanManager.h \
1133
        src/Airmap/AirMapManager.h \
1134 1135
        src/Airmap/AirMapRestrictionManager.h \
        src/Airmap/AirMapRulesetsManager.h \
1136
        src/Airmap/AirMapSettings.h \
1137 1138 1139 1140
        src/Airmap/AirMapSharedState.h \
        src/Airmap/AirMapTelemetry.h \
        src/Airmap/AirMapTrafficMonitor.h \
        src/Airmap/AirMapVehicleManager.h \
Gus Grubba's avatar
Gus Grubba committed
1141
        src/Airmap/AirMapWeatherInfoManager.h \
Gus Grubba's avatar
Gus Grubba committed
1142
        src/Airmap/LifetimeChecker.h \
1143 1144

    SOURCES += \
Gus Grubba's avatar
Gus Grubba committed
1145
        src/Airmap/AirMapAdvisoryManager.cc \
1146
        src/Airmap/AirMapFlightManager.cc \
Gus Grubba's avatar
Gus Grubba committed
1147
        src/Airmap/AirMapFlightPlanManager.cc \
1148
        src/Airmap/AirMapManager.cc \
1149 1150
        src/Airmap/AirMapRestrictionManager.cc \
        src/Airmap/AirMapRulesetsManager.cc \
1151
        src/Airmap/AirMapSettings.cc \
1152 1153 1154 1155
        src/Airmap/AirMapSharedState.cc \
        src/Airmap/AirMapTelemetry.cc \
        src/Airmap/AirMapTrafficMonitor.cc \
        src/Airmap/AirMapVehicleManager.cc \
Gus Grubba's avatar
Gus Grubba committed
1156
        src/Airmap/AirMapWeatherInfoManager.cc \
1157

Gus Grubba's avatar
Gus Grubba committed
1158 1159
    #-- Do we have an API key?
    exists(src/Airmap/Airmap_api_key.h) {
Stefan Dunca's avatar
Stefan Dunca committed
1160
        message("Using compile time Airmap API key")
Gus Grubba's avatar
Gus Grubba committed
1161 1162 1163 1164 1165
        HEADERS += \
            src/Airmap/Airmap_api_key.h
        DEFINES += QGC_AIRMAP_KEY_AVAILABLE
    }

1166 1167
    include(src/Airmap/QJsonWebToken/src/qjsonwebtoken.pri)

1168
} else {
1169 1170 1171
    #-- Dummies
    INCLUDEPATH += \
        src/Airmap/dummy
1172 1173
    RESOURCES += \
        src/Airmap/dummy/airmap_dummy.qrc
1174 1175 1176 1177
    HEADERS += \
        src/Airmap/dummy/AirspaceManager.h
    SOURCES += \
        src/Airmap/dummy/AirspaceManager.cc
1178 1179
}

1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191
#-------------------------------------------------------------------------------------
# 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 \
1192
    src/VideoStreaming/SubtitleWriter.h \
1193 1194 1195 1196 1197 1198

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

1201
contains (CONFIG, DISABLE_VIDEOSTREAMING) {
1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213
    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
1214 1215 1216 1217 1218
    contains (CONFIG, DISABLE_BUILTIN_ANDROID) {
        message("Skipping builtin support for Android")
    } else {
        include(android.pri)
    }
1219 1220
}

1221 1222 1223 1224 1225 1226 1227 1228
#-------------------------------------------------------------------------------------
#
# Localization
#

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

1229 1230 1231 1232 1233
#-------------------------------------------------------------------------------------
#
# Post link configuration
#

1234 1235 1236 1237 1238
contains (CONFIG, QGC_DISABLE_BUILD_SETUP) {
    message("Disable standard build setup")
} else {
    include(QGCSetup.pri)
}
1239 1240 1241 1242 1243

#
# Installer targets
#

1244 1245 1246 1247 1248
contains (CONFIG, QGC_DISABLE_INSTALLER_SETUP) {
    message("Disable standard installer setup")
} else {
    include(QGCInstaller.pri)
}