Skip to content
qgroundcontrol.pro 48.6 KiB
Newer Older
# -------------------------------------------------
# QGroundControl - Micro Air Vehicle Groundstation
# Please see our website at <http://qgroundcontrol.org>
# Maintainer:
# Lorenz Meier <lm@inf.ethz.ch>
# (c) 2009-2015 QGroundControl Developers
Lorenz Meier's avatar
Lorenz Meier committed
# License terms set in COPYING.md
# -------------------------------------------------

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

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

message(Qt version $$[QT_VERSION])

!equals(QT_MAJOR_VERSION, 5) | !greaterThan(QT_MINOR_VERSION, 8) {
    error("Unsupported Qt version, 5.9+ is required")
include(QGCCommon.pri)

Daniel Agar's avatar
Daniel Agar committed
TARGET   = QGroundControl
QGCROOT  = $$PWD

DebugBuild {
    DESTDIR  = $${OUT_PWD}/debug
    #DEFINES += SNAKE_SHOW_TIME
    #DEFINES += SNAKE_DEBUG
    DEFINES += SNAKE_SHOW_TIME
    DEFINES += DEBUG_CIRCULAR_SURVEY
    DEFINES += ROS_BRIDGE_DEBUG
    DESTDIR  = $${OUT_PWD}/release
    #DEFINES += ROS_BRIDGE_DEBUG
    DEFINES += SNAKE_SHOW_TIME
    #DEFINES += SNAKE_DEBUG
    DEFINES += NDEBUG
#
# OS Specific settings
#

MacBuild {
    QMAKE_INFO_PLIST    = Custom-Info.plist
    ICON                = $${BASEDIR}/resources/icons/macx.icns
    OTHER_FILES        += Custom-Info.plist
    equals(QT_MAJOR_VERSION, 5) | greaterThan(QT_MINOR_VERSION, 5) {
        LIBS           += -framework ApplicationServices
    }
}

LinuxBuild {
    CONFIG  += qesp_linux_udev
}

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

QGC_APP_NAME        = "QGCWima"
QGC_ORG_NAME        = "QGCWima.org"
QGC_ORG_DOMAIN      = "org.qgcwima"
QGC_APP_DESCRIPTION = "Open source ground control app provided by QGroundControl dev team"
QGC_APP_COPYRIGHT   = "Copyright (C) 2017 QGroundControl Development Team. All rights reserved."

WindowsBuild {
    QGC_INSTALLER_ICON          = "WindowsQGC.ico"
    QGC_INSTALLER_HEADER_BITMAP = "installheader.bmp"
}
# 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)))
}

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

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

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

# USB Camera and UVC Video Sources
contains (DEFINES, QGC_DISABLE_UVC) {
    message("Skipping support for UVC devices (manual override from command line)")
    DEFINES += QGC_DISABLE_UVC
} 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)")
    DEFINES += QGC_DISABLE_UVC
dogmaphobic's avatar
dogmaphobic committed
} 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
    }
LinuxBuild {
    CONFIG += link_pkgconfig
}

# Qt configuration

CONFIG += qt \
Valentin Platzgummer's avatar
Valentin Platzgummer committed
    c++14

DebugBuild {
    CONFIG -= qtquickcompiler
} else {
    CONFIG += qtquickcompiler
}

contains(DEFINES, ENABLE_VERBOSE_OUTPUT) {
    message("Enable verbose compiler output (manual override from command line)")
} else:exists(user_config.pri):infile(user_config.pri, DEFINES, ENABLE_VERBOSE_OUTPUT) {
    message("Enable verbose compiler output (manual override from user_config.pri)")
} else {
    CONFIG += silent

QT += \
    concurrent \
    gui \
    location \
    network \
    opengl \
    positioning \
    qml \
    quick \
    quickwidgets \
    sql \
    svg \
    widgets \
    xml \
    texttospeech

# Multimedia only used if QVC is enabled
!contains (DEFINES, QGC_DISABLE_UVC) {
    QT += \
        multimedia
}
AndroidBuild || iOSBuild {
    # Android and iOS don't unclude these
} else {
    QT += \
        printsupport \
        serialport \
        charts \
dogmaphobic's avatar
dogmaphobic committed
contains(DEFINES, QGC_ENABLE_BLUETOOTH) {
dogmaphobic's avatar
dogmaphobic committed
QT += \
    bluetooth \
}

#  testlib is needed even in release flavor for QSignalSpy support
QT += testlib
ReleaseBuild {
    # We don't need the testlib console in release mode
    QT.testlib.CONFIG -= console
}
#
# Build-specific settings
#

DebugBuild {
!iOSBuild {
    CONFIG += console
}
}

#
# Our QtLocation "plugin"
#

include(src/QtLocationPlugin/QGCLocationPlugin.pri)

#
# External library configuration
#

include(QGCExternalLibs.pri)

#
# Resources (custom code can replace them)
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
    }
} else {
    DEFINES += QGC_APPLICATION_NAME=\"\\\"QGCWima\\\"\"
    DEFINES += QGC_ORG_NAME=\"\\\"QGCWima.org\\\"\"
    DEFINES += QGC_ORG_DOMAIN=\"\\\"org.qgcwima\\\"\"
    RESOURCES += \
        $$PWD/qgroundcontrol.qrc \
        $$PWD/qgcresources.qrc
}

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

#
# Main QGroundControl portion of project file
#
DebugBuild {
    # Unit Test resources
    RESOURCES += UnitTest.qrc
}

DEPENDPATH += \
    . \
    plugins

INCLUDEPATH += .

INCLUDEPATH += \
    include/ui \
    src \
Don Gagne's avatar
Don Gagne committed
    src/AnalyzeView \
    src/Camera \
    src/AutoPilotPlugins \
    src/FlightDisplay \
    src/FlightMap \
    src/FlightMap/Widgets \
Jimmy Johnson's avatar
Jimmy Johnson committed
    src/FollowMe \
Gus Grubba's avatar
Gus Grubba committed
    src/Joystick \
    src/MissionManager \
Gus Grubba's avatar
Gus Grubba committed
    src/PositionManager \
    src/QmlControls \
Gus Grubba's avatar
Gus Grubba committed
    src/QtLocationPlugin \
    src/QtLocationPlugin/QMLControl \
Don Gagne's avatar
Don Gagne committed
    src/Settings \
Gus Grubba's avatar
Gus Grubba committed
    src/VehicleSetup \
    src/ViewWidgets \
    src/Audio \
Gus Grubba's avatar
Gus Grubba committed
    src/comm \
Gus Grubba's avatar
Gus Grubba committed
    src/input \
    src/lib/qmapcontrol \
    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 \

FORMS += \
    src/ui/MainWindow.ui \
    src/QGCQmlWidgetHolder.ui \
    src/ui/linechart/Linechart.ui \
    src/ui/MultiVehicleDockWidget.ui \
    src/ui/QGCHilConfiguration.ui \
    src/ui/QGCHilFlightGearConfiguration.ui \
    src/ui/QGCHilJSBSimConfiguration.ui \
    src/ui/QGCHilXPlaneConfiguration.ui \
    src/ui/QGCMAVLinkInspector.ui \
    src/ui/QGCMAVLinkLogPlayer.ui \
Gus Grubba's avatar
Gus Grubba committed
    src/ui/QGCMapRCToParamDialog.ui \
    src/ui/QGCUASFileView.ui \
    src/ui/QGCUASFileViewMulti.ui \
Gus Grubba's avatar
Gus Grubba committed
    src/ui/uas/QGCUnconnectedInfoWidget.ui \
Gus Grubba's avatar
Gus Grubba committed
#
# Plugin API
#

HEADERS += \
    src/Wima/CircularSurvey.h \
    src/Wima/Geometry/GenericCircle.h \
    src/Wima/RoutingThread.h \
    src/Wima/Snake/clipper/clipper.hpp \
    src/Wima/Snake/mapbox/feature.hpp \
    src/Wima/Snake/mapbox/geometry.hpp \
    src/Wima/Snake/mapbox/geometry/box.hpp \
    src/Wima/Snake/mapbox/geometry/empty.hpp \
    src/Wima/Snake/mapbox/geometry/envelope.hpp \
    src/Wima/Snake/mapbox/geometry/for_each_point.hpp \
    src/Wima/Snake/mapbox/geometry/geometry.hpp \
    src/Wima/Snake/mapbox/geometry/line_string.hpp \
    src/Wima/Snake/mapbox/geometry/multi_line_string.hpp \
    src/Wima/Snake/mapbox/geometry/multi_point.hpp \
    src/Wima/Snake/mapbox/geometry/multi_polygon.hpp \
    src/Wima/Snake/mapbox/geometry/point.hpp \
    src/Wima/Snake/mapbox/geometry/point_arithmetic.hpp \
    src/Wima/Snake/mapbox/geometry/polygon.hpp \
    src/Wima/Snake/mapbox/geometry_io.hpp \
    src/Wima/Snake/mapbox/optional.hpp \
    src/Wima/Snake/mapbox/polylabel.hpp \
    src/Wima/Snake/mapbox/recursive_wrapper.hpp \
    src/Wima/Snake/mapbox/variant.hpp \
    src/Wima/Snake/mapbox/variant_io.hpp \
    src/Wima/Snake/snake.h \
    src/Wima/Geometry/GenericPolygon.h \
    src/Wima/Geometry/GenericPolygonArray.h \
    src/Wima/Geometry/GeoPoint3D.h \
Valentin Platzgummer's avatar
Valentin Platzgummer committed
    src/Wima/Snake/NemoInterface.h \
    src/Wima/Snake/QNemoHeartbeat.h \
    src/Wima/Snake/QNemoProgress.h \
    src/Wima/Snake/QNemoProgress.h \
    src/Wima/Snake/SnakeTile.h \
    src/Wima/Snake/SnakeTileLocal.h \
    src/Wima/Snake/SnakeTiles.h \
    src/Wima/Snake/SnakeTilesLocal.h \
    src/Wima/StateMachine.h \
    src/Wima/WaypointManager/AreaInterface.h \
    src/Wima/WaypointManager/DefaultManager.h \
    src/Wima/WaypointManager/EmptyManager.h \
    src/Wima/WaypointManager/GenericWaypointManager.h \
    src/Wima/WaypointManager/RTLManager.h \
    src/Wima/WaypointManager/Settings.h \
    src/Wima/WaypointManager/Slicer.h \
    src/Wima/WaypointManager/Utils.h \
    src/api/QGCCorePlugin.h \
    src/api/QGCOptions.h \
Gus Grubba's avatar
Gus Grubba committed
    src/api/QGCSettings.h \
    src/api/QmlComponentInfo.h \
    src/comm/MavlinkMessagesTimer.h \
    src/GPS/Drivers/src/base_station.h \
    src/Wima/Geometry/WimaArea.h \
    src/Wima/Geometry/WimaServiceArea.h \
    src/Wima/Geometry/WimaTrackerPolyline.h \
    src/Wima/WimaController.h \
    src/Wima/Geometry/WimaMeasurementArea.h \
    src/Wima/Geometry/WimaCorridor.h \
    src/Wima/Geometry/WimaAreaData.h \
    src/Wima/Geometry/WimaServiceAreaData.h \
    src/Wima/Geometry/WimaCorridorData.h \
    src/Wima/Geometry/WimaMeasurementAreaData.h \
    src/Wima/WimaPlanData.h \
    src/Wima/Geometry/WimaJoinedArea.h \
    src/Wima/Geometry/WimaJoinedAreaData.h \
    src/Wima/Geometry/PlanimetryCalculus.h \
    src/Wima/Geometry/PolygonCalculus.h \
    src/Wima/OptimisationTools.h \
    src/Wima/Geometry/GeoUtilities.h \
    src/Wima/Geometry/TestPolygonCalculus.h \
    src/Wima/Geometry/testplanimetrycalculus.h \
Valentin Platzgummer's avatar
Valentin Platzgummer committed
    src/QmlControls/QmlObjectVectorModel.h \
Valentin Platzgummer's avatar
Valentin Platzgummer committed
    src/comm/ros_bridge/include/RosBridgeClient.h \
    src/comm/ros_bridge/include/com_private.h \
    src/comm/ros_bridge/include/message_traits.h \
    src/comm/ros_bridge/include/messages/geographic_msgs/geopoint.h \
    src/comm/ros_bridge/include/messages/geometry_msgs/point32.h \
    src/comm/ros_bridge/include/messages/geometry_msgs/polygon.h \
    src/comm/ros_bridge/include/messages/geometry_msgs/polygon_stamped.h \
    src/comm/ros_bridge/include/messages/jsk_recognition_msgs/polygon_array.h \
    src/comm/ros_bridge/include/messages/nemo_msgs/heartbeat.h \
    src/comm/ros_bridge/include/messages/nemo_msgs/progress.h \
    src/comm/ros_bridge/include/messages/std_msgs/header.h \
    src/comm/ros_bridge/include/server.h \
    src/comm/ros_bridge/include/messages/std_msgs/time.h \
    src/comm/ros_bridge/include/topic_publisher.h \
    src/comm/ros_bridge/include/topic_subscriber.h \
Valentin Platzgummer's avatar
Valentin Platzgummer committed
    src/comm/utilities.h
    src/Wima/CircularSurvey.cc \
    src/Wima/RoutingThread.cpp \
    src/Wima/Snake/clipper/clipper.cpp \
    src/Wima/Snake/snake.cpp \
    src/Wima/Geometry/GeoPoint3D.cpp \
Valentin Platzgummer's avatar
Valentin Platzgummer committed
    src/Wima/Snake/NemoInterface.cpp \
    src/Wima/Snake/QNemoProgress.cc \
    src/Wima/Snake/SnakeTile.cpp \
    src/Wima/StateMachine.cpp \
    src/Wima/WaypointManager/AreaInterface.cpp \
    src/Wima/WaypointManager/DefaultManager.cpp \
    src/Wima/WaypointManager/EmptyManager.cpp \
    src/Wima/WaypointManager/GenericWaypointManager.cpp \
    src/Wima/WaypointManager/RTLManager.cpp \
    src/Wima/WaypointManager/Settings.cpp \
    src/Wima/WaypointManager/Slicer.cpp \
    src/Wima/WaypointManager/Utils.cpp \
    src/comm/ros_bridge/include/RosBridgeClient.cpp \
    src/comm/ros_bridge/include/com_private.cpp \
    src/comm/ros_bridge/include/messages/geographic_msgs/geopoint.cpp \
    src/comm/ros_bridge/include/messages/geometry_msgs/point32.cpp \
    src/comm/ros_bridge/include/messages/geometry_msgs/polygon.cpp \
    src/comm/ros_bridge/include/messages/geometry_msgs/polygon_stamped.cpp \
    src/comm/ros_bridge/include/messages/jsk_recognition_msgs/polygon_array.cpp \
    src/comm/ros_bridge/include/messages/nemo_msgs/heartbeat.cpp \
    src/comm/ros_bridge/include/messages/nemo_msgs/progress.cpp \
Valentin Platzgummer's avatar
Valentin Platzgummer committed
    src/comm/ros_bridge/include/messages/std_msgs/header.cpp \
    src/comm/ros_bridge/include/messages/std_msgs/time.cpp \
    src/comm/ros_bridge/include/server.cpp \
    src/comm/ros_bridge/include/topic_publisher.cpp \
    src/comm/ros_bridge/include/topic_subscriber.cpp \
    src/api/QGCCorePlugin.cc \
    src/api/QGCOptions.cc \
Gus Grubba's avatar
Gus Grubba committed
    src/api/QGCSettings.cc \
    src/api/QmlComponentInfo.cc \
    src/comm/MavlinkMessagesTimer.cc \
    src/Wima/Geometry/WimaArea.cc \
    src/Wima/Geometry/WimaServiceArea.cc \
    src/Wima/Geometry/WimaTrackerPolyline.cc \
    src/Wima/WimaController.cc \
    src/Wima/WimaPlaner.cc \
    src/Wima/Geometry/WimaMeasurementArea.cc \
    src/Wima/Geometry/WimaCorridor.cc \
    src/Wima/Geometry/WimaAreaData.cc \
    src/Wima/Geometry/WimaServiceAreaData.cc \
    src/Wima/Geometry/WimaCorridorData.cpp \
    src/Wima/Geometry/WimaMeasurementAreaData.cc \
    src/Wima/Geometry/WimaJoinedArea.cc \
    src/Wima/Geometry/WimaJoinedAreaData.cc \
    src/Wima/Geometry/PlanimetryCalculus.cc \
    src/Wima/OptimisationTools.cc \
    src/Wima/Geometry/GeoUtilities.cc \
    src/Wima/Geometry/PolygonCalculus.cc \
    src/Wima/Geometry/TestPolygonCalculus.cpp \
    src/Wima/Geometry/testplanimetrycalculus.cpp \
Valentin Platzgummer's avatar
Valentin Platzgummer committed
    src/QmlControls/QmlObjectVectorModel.cc \
    src/comm/ros_bridge/src/ros_bridge.cpp
#
# Unit Test specific configuration goes here (requires full debug build with all plugins)
#

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

    INCLUDEPATH += \
        src/qgcunittest

    HEADERS += \
        src/AnalyzeView/LogDownloadTest.h \
        src/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 \
Don Gagne's avatar
 
Don Gagne committed
        src/MissionManager/FWLandingPatternTest.h \
        src/MissionManager/MissionCommandTreeTest.h \
        src/MissionManager/MissionControllerManagerTest.h \
Gus Grubba's avatar
Gus Grubba committed
        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/FileDialogTest.h \
        src/qgcunittest/FileManagerTest.h \
        src/qgcunittest/FlightGearTest.h \
Gus Grubba's avatar
Gus Grubba committed
        src/qgcunittest/GeoTest.h \
        src/qgcunittest/LinkManagerTest.h \
        src/qgcunittest/MainWindowTest.h \
        src/qgcunittest/MavlinkLogTest.h \
        src/qgcunittest/MessageBoxTest.h \
        src/qgcunittest/MultiSignalSpy.h \
        src/qgcunittest/RadioConfigTest.h \
        src/qgcunittest/TCPLinkTest.h \
        src/qgcunittest/TCPLoopBackServer.h \
        src/qgcunittest/UnitTest.h \
        src/Vehicle/SendMavCommandTest.h \

    SOURCES += \
        src/AnalyzeView/LogDownloadTest.cc \
        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 \
Don Gagne's avatar
 
Don Gagne committed
        src/MissionManager/FWLandingPatternTest.cc \
        src/MissionManager/MissionCommandTreeTest.cc \
        src/MissionManager/MissionControllerManagerTest.cc \
Gus Grubba's avatar
Gus Grubba committed
        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/FileDialogTest.cc \
        src/qgcunittest/FileManagerTest.cc \
        src/qgcunittest/FlightGearTest.cc \
Gus Grubba's avatar
Gus Grubba committed
        src/qgcunittest/GeoTest.cc \
        src/qgcunittest/LinkManagerTest.cc \
        src/qgcunittest/MainWindowTest.cc \
        src/qgcunittest/MavlinkLogTest.cc \
        src/qgcunittest/MessageBoxTest.cc \
        src/qgcunittest/MultiSignalSpy.cc \
        src/qgcunittest/RadioConfigTest.cc \
        src/qgcunittest/TCPLinkTest.cc \
        src/qgcunittest/TCPLoopBackServer.cc \
        src/qgcunittest/UnitTest.cc \
        src/qgcunittest/UnitTestList.cc \
        src/Vehicle/SendMavCommandTest.cc \
} } } } } }

# Main QGC Headers and Source files

Gus Grubba's avatar
Gus Grubba committed
    src/AnalyzeView/ExifParser.h \
    src/AnalyzeView/LogDownloadController.h \
    src/AnalyzeView/PX4LogParser.h \
    src/AnalyzeView/ULogParser.h \
    src/Audio/AudioOutput.h \
    src/Camera/QGCCameraControl.h \
    src/Camera/QGCCameraIO.h \
    src/Camera/QGCCameraManager.h \
    src/CmdLineOptParser.h \
    src/FirmwarePlugin/PX4/px4_custom_mode.h \
    src/FlightDisplay/VideoManager.h \
    src/FlightMap/Widgets/ValuesWidgetController.h \
Gus Grubba's avatar
Gus Grubba committed
    src/FollowMe/FollowMe.h \
    src/Joystick/Joystick.h \
    src/Joystick/JoystickManager.h \
Don Gagne's avatar
Don Gagne committed
    src/JsonHelper.h \
    src/KMLFileHelper.h \
    src/LogCompressor.h \
    src/MG.h \
    src/MissionManager/CameraCalc.h \
    src/MissionManager/CameraSection.h \
    src/MissionManager/CameraSpec.h \
    src/MissionManager/ComplexMissionItem.h \
    src/MissionManager/CorridorScanComplexItem.h \
    src/MissionManager/FixedWingLandingComplexItem.h \
    src/MissionManager/GeoFenceController.h \
    src/MissionManager/GeoFenceManager.h \
    src/MissionManager/KML.h \
    src/MissionManager/MissionCommandList.h \
    src/MissionManager/MissionCommandTree.h \
    src/MissionManager/MissionCommandUIInfo.h \
    src/MissionManager/MissionController.h \
    src/MissionManager/MissionItem.h \
    src/MissionManager/MissionManager.h \
    src/MissionManager/MissionSettingsItem.h \
    src/MissionManager/PlanElementController.h \
    src/MissionManager/PlanManager.h \
    src/MissionManager/PlanMasterController.h \
    src/MissionManager/QGCFenceCircle.h \
    src/MissionManager/QGCFencePolygon.h \
    src/MissionManager/QGCMapCircle.h \
    src/MissionManager/QGCMapPolygon.h \
    src/MissionManager/QGCMapPolyline.h \
    src/MissionManager/RallyPoint.h \
    src/MissionManager/RallyPointController.h \
    src/MissionManager/RallyPointManager.h \
    src/MissionManager/SimpleMissionItem.h \
    src/MissionManager/Section.h \
    src/MissionManager/SpeedSection.h \
    src/MissionManager/StructureScanComplexItem.h \
    src/MissionManager/SurveyComplexItem.h \
    src/MissionManager/TransectStyleComplexItem.h \
    src/MissionManager/VisualMissionItem.h \
Gus Grubba's avatar
Gus Grubba committed
    src/PositionManager/PositionManager.h \
    src/PositionManager/SimulatedPosition.h \
    src/QGC.h \
    src/QGCApplication.h \
    src/QGCComboBox.h \
    src/QGCConfig.h \
    src/QGCDockWidget.h \
    src/QGCFileDownload.h \
    src/QGCGeo.h \
    src/QGCLoggingCategory.h \
Don Gagne's avatar
Don Gagne committed
    src/QGCMapPalette.h \
    src/QGCPalette.h \
    src/QGCQGeoCoordinate.h \
    src/QGCQmlWidgetHolder.h \
    src/QGCQuickWidget.h \
    src/QGCTemporaryFile.h \
    src/QGCToolbox.h \
    src/QmlControls/CoordinateVector.h \
    src/QmlControls/EditPositionDialogController.h \
    src/QmlControls/ParameterEditorController.h \
    src/QmlControls/QGCFileDialogController.h \
Gus Grubba's avatar
Gus Grubba committed
    src/QmlControls/QGCImageProvider.h \
    src/QmlControls/QGroundControlQmlGlobal.h \
    src/QmlControls/QmlObjectListModel.h \
    src/QmlControls/QGCGeoBoundingCube.h \
Gus Grubba's avatar
Gus Grubba committed
    src/QmlControls/RCChannelMonitorController.h \
    src/QmlControls/ScreenToolsController.h \
    src/QtLocationPlugin/QMLControl/QGCMapEngineManager.h \
Don Gagne's avatar
Don Gagne committed
    src/Settings/AppSettings.h \
    src/Settings/AutoConnectSettings.h \
    src/Settings/BrandImageSettings.h \
    src/Settings/FlightMapSettings.h \
Don Gagne's avatar
 
Don Gagne committed
    src/Settings/FlyViewSettings.h \
    src/Settings/PlanViewSettings.h \
Don Gagne's avatar
Don Gagne committed
    src/Settings/RTKSettings.h \
Don Gagne's avatar
Don Gagne committed
    src/Settings/SettingsGroup.h \
    src/Settings/SettingsManager.h \
    src/Settings/UnitsSettings.h \
    src/Settings/VideoSettings.h \
    src/ShapeFileHelper.h \
    src/SHPFileHelper.h \
    src/Terrain/TerrainQuery.h \
Andreas Bircher's avatar
Andreas Bircher committed
    src/TerrainTile.h \
Gus Grubba's avatar
Gus Grubba committed
    src/Vehicle/MAVLinkLogManager.h \
    src/VehicleSetup/JoystickConfigController.h \
    src/comm/LinkConfiguration.h \
    src/comm/LinkInterface.h \
    src/comm/LinkManager.h \
    src/comm/MAVLinkProtocol.h \
    src/comm/ProtocolInterface.h \
    src/comm/QGCMAVLink.h \
    src/comm/TCPLink.h \
    src/comm/UDPLink.h \
Willian Galvani's avatar
Willian Galvani committed
    src/comm/UdpIODevice.h \
    src/uas/UAS.h \
    src/uas/UASInterface.h \
    src/uas/UASMessageHandler.h \
AndroidBuild {
HEADERS += \
    src/Joystick/JoystickAndroid.h \
DebugBuild {
HEADERS += \
    src/comm/MockLink.h \
    src/comm/MockLinkFileServer.h \
    src/comm/MockLinkMissionItemHandler.h \
}

WindowsBuild {
    PRECOMPILED_HEADER += src/stable_headers.h
    HEADERS += src/stable_headers.h
Daniel Agar's avatar
Daniel Agar committed
    CONFIG -= silent
dogmaphobic's avatar
dogmaphobic committed
contains(DEFINES, QGC_ENABLE_BLUETOOTH) {
dogmaphobic's avatar
dogmaphobic committed
    HEADERS += \
    src/comm/BluetoothLink.h \
dogmaphobic's avatar
dogmaphobic committed
}
Gus Grubba's avatar
Gus Grubba committed
!NoSerialBuild {
    src/comm/QGCSerialPortInfo.h \
    src/comm/SerialLink.h \
}

!MobileBuild {
HEADERS += \
Don Gagne's avatar
Don Gagne committed
    src/AnalyzeView/GeoTagController.h \
    src/AnalyzeView/MavlinkConsoleController.h \
Gus Grubba's avatar
Gus Grubba committed
    src/GPS/Drivers/src/gps_helper.h \
    src/GPS/Drivers/src/rtcm.h \
    src/GPS/Drivers/src/ashtech.h \
Gus Grubba's avatar
Gus Grubba committed
    src/GPS/Drivers/src/ubx.h \
    src/GPS/Drivers/src/sbf.h \
Gus Grubba's avatar
Gus Grubba committed
    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 \
Gus Grubba's avatar
Gus Grubba committed
    src/QGCMessageBox.h \
    src/RunGuard.h \
Gus Grubba's avatar
Gus Grubba committed
    src/ViewWidgets/CustomCommandWidget.h \
    src/ViewWidgets/CustomCommandWidgetController.h \
    src/ViewWidgets/ViewWidgetController.h \
dogmaphobic's avatar
dogmaphobic committed
    src/comm/LogReplayLink.h \
    src/comm/QGCFlightGearLink.h \
    src/comm/QGCHilLink.h \
    src/comm/QGCJSBSimLink.h \
    src/comm/QGCXPlaneLink.h \
    src/uas/FileManager.h \
    src/ui/HILDockWidget.h \
    src/ui/MAVLinkDecoder.h \
Gus Grubba's avatar
Gus Grubba committed
    src/ui/MainWindow.h \
    src/ui/MultiVehicleDockWidget.h \
    src/ui/QGCHilConfiguration.h \
    src/ui/QGCHilFlightGearConfiguration.h \
    src/ui/QGCHilJSBSimConfiguration.h \
    src/ui/QGCHilXPlaneConfiguration.h \
    src/ui/QGCMAVLinkInspector.h \
Gus Grubba's avatar
Gus Grubba committed
    src/ui/QGCMAVLinkLogPlayer.h \
    src/ui/QGCMapRCToParamDialog.h \
    src/ui/QGCUASFileView.h \
    src/ui/QGCUASFileViewMulti.h \
Gus Grubba's avatar
Gus Grubba committed
    src/ui/linechart/ChartPlot.h \
    src/ui/linechart/IncrementalPlot.h \
    src/ui/linechart/LinechartPlot.h \
    src/ui/linechart/LinechartWidget.h \
    src/ui/linechart/Linecharts.h \
    src/ui/linechart/ScrollZoomer.h \
    src/ui/linechart/Scrollbar.h \
    src/ui/uas/QGCUnconnectedInfoWidget.h \
Don Gagne's avatar
Don Gagne committed
iOSBuild {
    OBJECTIVE_SOURCES += \
        src/MobileScreenMgr.mm \
}
Don Gagne's avatar
Don Gagne committed
AndroidBuild {
Don Gagne's avatar
Don Gagne committed
    SOURCES += src/MobileScreenMgr.cc \
    src/Joystick/JoystickAndroid.cc \
Gus Grubba's avatar
Gus Grubba committed
    src/AnalyzeView/ExifParser.cc \
    src/AnalyzeView/LogDownloadController.cc \
    src/AnalyzeView/PX4LogParser.cc \
    src/AnalyzeView/ULogParser.cc \
    src/Audio/AudioOutput.cc \
    src/Camera/QGCCameraControl.cc \
    src/Camera/QGCCameraIO.cc \
    src/Camera/QGCCameraManager.cc \
    src/CmdLineOptParser.cc \
    src/FlightDisplay/VideoManager.cc \
    src/FlightMap/Widgets/ValuesWidgetController.cc \
Gus Grubba's avatar
Gus Grubba committed
    src/FollowMe/FollowMe.cc \
    src/Joystick/Joystick.cc \
    src/Joystick/JoystickManager.cc \
Don Gagne's avatar
Don Gagne committed
    src/JsonHelper.cc \
    src/KMLFileHelper.cc \
    src/LogCompressor.cc \
    src/MissionManager/CameraCalc.cc \
    src/MissionManager/CameraSection.cc \
    src/MissionManager/CameraSpec.cc \
    src/MissionManager/ComplexMissionItem.cc \
    src/MissionManager/CorridorScanComplexItem.cc \
    src/MissionManager/FixedWingLandingComplexItem.cc \
    src/MissionManager/GeoFenceController.cc \
    src/MissionManager/GeoFenceManager.cc \
    src/MissionManager/KML.cc \
    src/MissionManager/MissionCommandList.cc \
    src/MissionManager/MissionCommandTree.cc \
    src/MissionManager/MissionCommandUIInfo.cc \
    src/MissionManager/MissionController.cc \
    src/MissionManager/MissionItem.cc \
    src/MissionManager/MissionManager.cc \
    src/MissionManager/MissionSettingsItem.cc \
    src/MissionManager/PlanElementController.cc \
    src/MissionManager/PlanManager.cc \
    src/MissionManager/PlanMasterController.cc \
    src/MissionManager/QGCFenceCircle.cc \
    src/MissionManager/QGCFencePolygon.cc \
    src/MissionManager/QGCMapCircle.cc \
    src/MissionManager/QGCMapPolygon.cc \
    src/MissionManager/QGCMapPolyline.cc \
    src/MissionManager/RallyPoint.cc \
    src/MissionManager/RallyPointController.cc \
    src/MissionManager/RallyPointManager.cc \
    src/MissionManager/SimpleMissionItem.cc \
    src/MissionManager/SpeedSection.cc \
    src/MissionManager/StructureScanComplexItem.cc \
    src/MissionManager/SurveyComplexItem.cc \
    src/MissionManager/TransectStyleComplexItem.cc \
    src/MissionManager/VisualMissionItem.cc \
Gus Grubba's avatar
Gus Grubba committed
    src/PositionManager/PositionManager.cpp \
    src/PositionManager/SimulatedPosition.cc \
    src/QGC.cc \
    src/QGCApplication.cc \
    src/QGCComboBox.cc \
    src/QGCDockWidget.cc \
    src/QGCFileDownload.cc \
Gus Grubba's avatar
Gus Grubba committed
    src/QGCGeo.cc \
    src/QGCLoggingCategory.cc \
Don Gagne's avatar
Don Gagne committed
    src/QGCMapPalette.cc \
    src/QGCPalette.cc \
    src/QGCQGeoCoordinate.cc \
    src/QGCQmlWidgetHolder.cpp \
Gus Grubba's avatar
Gus Grubba committed
    src/QGCQuickWidget.cc \
    src/QGCTemporaryFile.cc \
    src/QGCToolbox.cc \
    src/QmlControls/CoordinateVector.cc \
    src/QmlControls/EditPositionDialogController.cc \
    src/QmlControls/ParameterEditorController.cc \
    src/QmlControls/QGCFileDialogController.cc \
Gus Grubba's avatar
Gus Grubba committed
    src/QmlControls/QGCImageProvider.cc \
    src/QmlControls/QGroundControlQmlGlobal.cc \
    src/QmlControls/QmlObjectListModel.cc \
    src/QmlControls/QGCGeoBoundingCube.cc \
Gus Grubba's avatar
Gus Grubba committed
    src/QmlControls/RCChannelMonitorController.cc \
    src/QmlControls/ScreenToolsController.cc \
    src/QtLocationPlugin/QMLControl/QGCMapEngineManager.cc \
Don Gagne's avatar
Don Gagne committed
    src/Settings/AppSettings.cc \
    src/Settings/AutoConnectSettings.cc \
    src/Settings/BrandImageSettings.cc \
    src/Settings/FlightMapSettings.cc \
Don Gagne's avatar
 
Don Gagne committed
    src/Settings/FlyViewSettings.cc \
    src/Settings/PlanViewSettings.cc \
Don Gagne's avatar
Don Gagne committed
    src/Settings/RTKSettings.cc \
Don Gagne's avatar
Don Gagne committed
    src/Settings/SettingsGroup.cc \
    src/Settings/SettingsManager.cc \
    src/Settings/UnitsSettings.cc \
    src/Settings/VideoSettings.cc \
    src/ShapeFileHelper.cc \
    src/SHPFileHelper.cc \
    src/Terrain/TerrainQuery.cc \
Andreas Bircher's avatar
Andreas Bircher committed
    src/TerrainTile.cc\
Gus Grubba's avatar
Gus Grubba committed
    src/Vehicle/MAVLinkLogManager.cc \
    src/VehicleSetup/JoystickConfigController.cc \
    src/comm/LinkConfiguration.cc \
    src/comm/LinkInterface.cc \
Gus Grubba's avatar
Gus Grubba committed
    src/comm/LinkManager.cc \
    src/comm/MAVLinkProtocol.cc \
    src/comm/QGCMAVLink.cc \
    src/comm/TCPLink.cc \
    src/comm/UDPLink.cc \
Willian Galvani's avatar
Willian Galvani committed
    src/comm/UdpIODevice.cc \
Gus Grubba's avatar
Gus Grubba committed
    src/main.cc \
    src/uas/UAS.cc \
    src/uas/UASMessageHandler.cc \
DebugBuild {
SOURCES += \
    src/comm/MockLink.cc \
    src/comm/MockLinkFileServer.cc \
    src/comm/MockLinkMissionItemHandler.cc \
}

Gus Grubba's avatar
Gus Grubba committed
!NoSerialBuild {
    src/comm/QGCSerialPortInfo.cc \
    src/comm/SerialLink.cc \
}

dogmaphobic's avatar
dogmaphobic committed
contains(DEFINES, QGC_ENABLE_BLUETOOTH) {
dogmaphobic's avatar
dogmaphobic committed
    SOURCES += \