diff --git a/CMakeLists.txt b/CMakeLists.txt index 1307350ae097dcd077cab7a59ce229718faae12c..b2144484876ba9360592d9715e34d2e84c58ef67 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -175,589 +175,52 @@ elseif (WIN32) endif() - -set(QGC_SRC) -list(APPEND QGC_SRC - - src/AnalyzeView/ExifParser.cc - src/AnalyzeView/GeoTagController.cc - src/AnalyzeView/LogDownloadController.cc - src/AnalyzeView/MavlinkConsoleController.cc - src/AnalyzeView/PX4LogParser.cc - src/AnalyzeView/ULogParser.cc - - src/api/QGCCorePlugin.cc - src/api/QGCOptions.cc - src/api/QGCSettings.cc - src/api/QmlComponentInfo.cc - - src/Audio/AudioOutput.cc - - src/AutoPilotPlugins/APM/APMAirframeComponent.cc - src/AutoPilotPlugins/APM/APMAirframeComponentAirframes.cc - src/AutoPilotPlugins/APM/APMAirframeComponentController.cc - src/AutoPilotPlugins/APM/APMAirframeLoader.cc - src/AutoPilotPlugins/APM/APMAutoPilotPlugin.cc - src/AutoPilotPlugins/APM/APMCameraComponent.cc - src/AutoPilotPlugins/APM/APMCompassCal.cc - src/AutoPilotPlugins/APM/APMFlightModesComponent.cc - src/AutoPilotPlugins/APM/APMFlightModesComponentController.cc - src/AutoPilotPlugins/APM/APMLightsComponent.cc - src/AutoPilotPlugins/APM/APMMotorComponent.cc - src/AutoPilotPlugins/APM/APMPowerComponent.cc - src/AutoPilotPlugins/APM/APMRadioComponent.cc - src/AutoPilotPlugins/APM/APMSafetyComponent.cc - src/AutoPilotPlugins/APM/APMSensorsComponent.cc - src/AutoPilotPlugins/APM/APMSensorsComponentController.cc - src/AutoPilotPlugins/APM/APMSubFrameComponent.cc - src/AutoPilotPlugins/APM/APMTuningComponent.cc - src/AutoPilotPlugins/APM/APMHeliComponent.cc - - src/AutoPilotPlugins/Common/ESP8266Component.cc - src/AutoPilotPlugins/Common/ESP8266ComponentController.cc - src/AutoPilotPlugins/Common/MotorComponent.cc - src/AutoPilotPlugins/Common/RadioComponentController.cc - src/AutoPilotPlugins/Common/SyslinkComponent.cc - src/AutoPilotPlugins/Common/SyslinkComponentController.cc - - src/AutoPilotPlugins/PX4/AirframeComponent.cc - src/AutoPilotPlugins/PX4/AirframeComponentAirframes.cc - src/AutoPilotPlugins/PX4/AirframeComponentController.cc - src/AutoPilotPlugins/PX4/CameraComponent.cc - src/AutoPilotPlugins/PX4/FlightModesComponent.cc - src/AutoPilotPlugins/PX4/PowerComponent.cc - src/AutoPilotPlugins/PX4/PowerComponentController.cc - src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.cc - src/AutoPilotPlugins/PX4/PX4AirframeLoader.cc - src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.cc - src/AutoPilotPlugins/PX4/PX4RadioComponent.cc - src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.cc - src/AutoPilotPlugins/PX4/PX4TuningComponent.cc - src/AutoPilotPlugins/PX4/SafetyComponent.cc - src/AutoPilotPlugins/PX4/SensorsComponent.cc - src/AutoPilotPlugins/PX4/SensorsComponentController.cc - - src/AutoPilotPlugins/AutoPilotPlugin.cc - src/AutoPilotPlugins/Generic/GenericAutoPilotPlugin.cc - - src/Camera/QGCCameraControl.cc - src/Camera/QGCCameraIO.cc - src/Camera/QGCCameraManager.cc - - #src/comm/BluetoothLink.cc - src/comm/LinkConfiguration.cc - src/comm/LinkInterface.cc - src/comm/LinkManager.cc - src/comm/LogReplayLink.cc - src/comm/MavlinkMessagesTimer.cc - src/comm/MAVLinkProtocol.cc - src/comm/QGCFlightGearLink.cc - src/comm/QGCJSBSimLink.cc - src/comm/QGCMAVLink.cc - src/comm/QGCSerialPortInfo.cc - src/comm/QGCXPlaneLink.cc - src/comm/SerialLink.cc - src/comm/TCPLink.cc - src/comm/UDPLink.cc - - src/FactSystem/Fact.cc - src/FactSystem/FactControls/FactPanelController.cc - src/FactSystem/FactGroup.cc - src/FactSystem/FactMetaData.cc - src/FactSystem/FactSystem.cc - src/FactSystem/FactValueSliderListModel.cc - src/FactSystem/ParameterManager.cc - src/FactSystem/SettingsFact.cc - - src/FirmwarePlugin/APM/APMFirmwarePlugin.cc - src/FirmwarePlugin/APM/APMFirmwarePluginFactory.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 - - src/FirmwarePlugin/CameraMetaData.cc - src/FirmwarePlugin/FirmwarePlugin.cc - src/FirmwarePlugin/FirmwarePluginManager.cc - - src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc - src/FirmwarePlugin/PX4/PX4FirmwarePluginFactory.cc - src/FirmwarePlugin/PX4/PX4ParameterMetaData.cc - - src/FlightDisplay/VideoManager.cc - - src/FlightMap/Widgets/ValuesWidgetController.cc - - src/FollowMe/FollowMe.cc - - src/Joystick/Joystick.cc - src/Joystick/JoystickManager.cc - src/Joystick/JoystickSDL.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 - - src/PositionManager/PositionManager.cpp - src/PositionManager/SimulatedPosition.cc - - src/QmlControls/AppMessages.cc - src/QmlControls/CoordinateVector.cc - src/QmlControls/EditPositionDialogController.cc - src/QmlControls/ParameterEditorController.cc - src/QmlControls/QGCFileDialogController.cc - src/QmlControls/QGCGeoBoundingCube.cc - src/QmlControls/QGCImageProvider.cc - src/QmlControls/QGroundControlQmlGlobal.cc - src/QmlControls/QmlObjectListModel.cc - src/QmlControls/QmlTestWidget.cc - src/QmlControls/RCChannelMonitorController.cc - src/QmlControls/ScreenToolsController.cc - - src/QtLocationPlugin/QGCMapEngine.cpp - src/QtLocationPlugin/QGCMapTileSet.cpp - src/QtLocationPlugin/QGCMapUrlEngine.cpp - src/QtLocationPlugin/QGCTileCacheWorker.cpp - src/QtLocationPlugin/QGeoCodeReplyQGC.cpp - src/QtLocationPlugin/QGeoCodingManagerEngineQGC.cpp - src/QtLocationPlugin/QGeoMapReplyQGC.cpp - src/QtLocationPlugin/QGeoServiceProviderPluginQGC.cpp - src/QtLocationPlugin/QGeoTiledMappingManagerEngineQGC.cpp - src/QtLocationPlugin/QGeoTileFetcherQGC.cpp - src/QtLocationPlugin/QMLControl/QGCMapEngineManager.cc - - src/Settings/AppSettings.cc - src/Settings/AutoConnectSettings.cc - src/Settings/BrandImageSettings.cc - src/Settings/FlightMapSettings.cc - src/Settings/GuidedSettings.cc - src/Settings/RTKSettings.cc - src/Settings/SettingsGroup.cc - src/Settings/SettingsManager.cc - src/Settings/UnitsSettings.cc - src/Settings/VideoSettings.cc - - src/Terrain/TerrainQuery.cc - - src/uas/FileManager.cc - src/uas/UAS.cc - src/uas/UASMessageHandler.cc - - src/ui/HILDockWidget.cc - src/ui/linechart/ChartPlot.cc - src/ui/linechart/IncrementalPlot.cc - src/ui/linechart/LinechartPlot.cc - src/ui/linechart/Linecharts.cc - src/ui/linechart/LinechartWidget.cc - src/ui/linechart/Scrollbar.cc - src/ui/linechart/ScrollZoomer.cc - src/ui/MainWindow.cc - src/ui/MAVLinkDecoder.cc - src/ui/MultiVehicleDockWidget.cc - src/ui/QGCHilConfiguration.cc - src/ui/QGCHilFlightGearConfiguration.cc - src/ui/QGCHilJSBSimConfiguration.cc - src/ui/QGCHilXPlaneConfiguration.cc - src/ui/QGCMapRCToParamDialog.cpp - src/ui/QGCMAVLinkInspector.cc - src/ui/QGCMAVLinkLogPlayer.cc - src/ui/QGCPluginHost.cc - src/ui/QGCUASFileView.cc - src/ui/QGCUASFileViewMulti.cc - src/ui/uas/QGCUnconnectedInfoWidget.cc - - src/Vehicle/ADSBVehicle.cc - src/Vehicle/GPSRTKFactGroup.cc - src/Vehicle/MAVLinkLogManager.cc - src/Vehicle/MultiVehicleManager.cc - src/Vehicle/Vehicle.cc - - src/VehicleSetup/Bootloader.cc - src/VehicleSetup/FirmwareImage.cc - src/VehicleSetup/FirmwareUpgradeController.cc - src/VehicleSetup/JoystickConfigController.cc - src/VehicleSetup/PX4FirmwareUpgradeThread.cc - src/VehicleSetup/VehicleComponent.cc - - src/VideoStreaming/VideoItem.cc - src/VideoStreaming/VideoReceiver.cc - src/VideoStreaming/VideoStreaming.cc - src/VideoStreaming/VideoSurface.cc - - src/ViewWidgets/CustomCommandWidget.cc - src/ViewWidgets/CustomCommandWidgetController.cc - src/ViewWidgets/ViewWidgetController.cc - - src/CmdLineOptParser.cc - src/JsonHelper.cc - src/KMLFileHelper.cc - src/LogCompressor.cc - src/main.cc - src/QGC.cc - src/QGCApplication.cc - src/QGCComboBox.cc - src/QGCDockWidget.cc - src/QGCFileDownload.cc - src/QGCGeo.cc - src/QGCLoggingCategory.cc - src/QGCMapPalette.cc - src/QGCPalette.cc - src/QGCQFileDialog.cc - src/QGCQGeoCoordinate.cc - src/QGCQmlWidgetHolder.cpp - src/QGCQuickWidget.cc - src/QGCTemporaryFile.cc - src/QGCToolbox.cc - src/RunGuard.cc - src/TerrainTile.cc - src/UTM.cpp - - # HEADERS - # shouldn't be listed here, but aren't named properly for AUTOMOC - src/comm/QGCFlightGearLink.h - src/comm/QGCHilLink.h - src/comm/QGCJSBSimLink.h - src/MissionManager/Section.h - src/QtLocationPlugin/QGCMapEngineData.h - src/uas/UAS.h - src/uas/UASInterface.h - src/ui/QGCHilFlightGearConfiguration.h - src/ui/QGCHilJSBSimConfiguration.h -) - -if(QGC_AIRMAP) - - list(APPEND QGC_SRC - src/Airmap/AirMapAdvisoryManager.cc - src/Airmap/AirMapFlightManager.cc - src/Airmap/AirMapFlightPlanManager.cc - src/Airmap/AirMapManager.cc - src/Airmap/AirMapRestrictionManager.cc - src/Airmap/AirMapRulesetsManager.cc - src/Airmap/AirMapSettings.cc - src/Airmap/AirMapSharedState.cc - src/Airmap/AirMapTelemetry.cc - src/Airmap/AirMapTrafficMonitor.cc - src/Airmap/AirMapVehicleManager.cc - src/Airmap/AirMapWeatherInfoManager.cc - - src/AirspaceManagement/AirspaceAdvisoryProvider.cc - src/AirspaceManagement/AirspaceFlightPlanProvider.cc - src/AirspaceManagement/AirspaceManager.cc - src/AirspaceManagement/AirspaceRestriction.cc - src/AirspaceManagement/AirspaceRestrictionProvider.cc - src/AirspaceManagement/AirspaceRulesetsProvider.cc - src/AirspaceManagement/AirspaceVehicleManager.cc - src/AirspaceManagement/AirspaceWeatherInfoProvider.cc - ) -else() - list(APPEND QGC_SRC - src/Airmap/dummy/AirspaceManager.cc - ) - include_directories(src/Airmap/dummy) -endif() - -set_source_files_properties(${CMAKE_SOURCE_DIR}/src/QGCApplication.cc PROPERTIES COMPILE_DEFINITIONS GIT_VERSION="${git_tag}") - -if(MOBILE) - list(APPEND QGC_SRC - src/MobileScreenMgr.cc - ) - - if (ANDROID) - list(APPEND QGC_SRC - libs/qtandroidserialport/src/qserialport.cpp - libs/qtandroidserialport/src/qserialport_android.cpp - libs/qtandroidserialport/src/qserialportinfo.cpp - libs/qtandroidserialport/src/qserialportinfo_android.cpp - - src/Joystick/JoystickAndroid.cc - ) - endif() -endif() - -if(BUILD_TESTING) - - add_custom_target(check - COMMAND ctest --output-on-failure . - USES_TERMINAL - ) - - function (add_qgc_test test_name) - add_test( - NAME ${test_name} - COMMAND $ --unittest:${test_name} - ) - add_dependencies(check QGroundControl) - endfunction() - - list(APPEND QGC_SRC - src/AnalyzeView/LogDownloadTest.cc - - src/Audio/AudioOutputTest.cc - - src/comm/MockLink.cc - src/comm/MockLinkFileServer.cc - src/comm/MockLinkMissionItemHandler.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/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/FileDialogTest.cc - src/qgcunittest/FileManagerTest.cc - src/qgcunittest/FlightGearTest.cc - 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 - ) - - add_qgc_test(AudioOutputTest) - add_qgc_test(CameraCalcTest) - add_qgc_test(CameraSectionTest) - add_qgc_test(CorridorScanComplexItemTest) - add_qgc_test(FactSystemTestGeneric) - add_qgc_test(FactSystemTestPX4) - add_qgc_test(FileDialogTest) - add_qgc_test(FileManagerTest) - add_qgc_test(FlightGearUnitTest) - add_qgc_test(GeoTest) - add_qgc_test(LinkManagerTest) - add_qgc_test(LogDownloadTest) - add_qgc_test(MessageBoxTest) - add_qgc_test(MissionCommandTreeTest) - add_qgc_test(MissionControllerTest) - add_qgc_test(MissionItemTest) - add_qgc_test(MissionManagerTest) - add_qgc_test(MissionSettingsTest) - add_qgc_test(ParameterManagerTest) - add_qgc_test(PlanMasterControllerTest) - add_qgc_test(QGCMapPolygonTest) - add_qgc_test(QGCMapPolylineTest) - add_qgc_test(RadioConfigTest) - add_qgc_test(SendMavCommandTest) - add_qgc_test(SimpleMissionItemTest) - add_qgc_test(SpeedSectionTest) - add_qgc_test(StructureScanComplexItemTest) - add_qgc_test(SurveyComplexItemTest) - add_qgc_test(TCPLinkTest) - add_qgc_test(TransectStyleComplexItemTest) - -endif() - -if (VIDEO) - list(APPEND QGC_SRC - src/VideoStreaming/gstqtvideosink/delegates/basedelegate.cpp - src/VideoStreaming/gstqtvideosink/delegates/qtquick2videosinkdelegate.cpp - src/VideoStreaming/gstqtvideosink/delegates/qtvideosinkdelegate.cpp - src/VideoStreaming/gstqtvideosink/delegates/qwidgetvideosinkdelegate.cpp - src/VideoStreaming/gstqtvideosink/gstqtglvideosink.cpp - src/VideoStreaming/gstqtvideosink/gstqtglvideosinkbase.cpp - src/VideoStreaming/gstqtvideosink/gstqtquick2videosink.cpp - src/VideoStreaming/gstqtvideosink/gstqtvideosink.cpp - src/VideoStreaming/gstqtvideosink/gstqtvideosinkbase.cpp - src/VideoStreaming/gstqtvideosink/gstqtvideosinkplugin.cpp - src/VideoStreaming/gstqtvideosink/gstqwidgetvideosink.cpp - src/VideoStreaming/gstqtvideosink/painters/genericsurfacepainter.cpp - src/VideoStreaming/gstqtvideosink/painters/openglsurfacepainter.cpp - src/VideoStreaming/gstqtvideosink/painters/videomaterial.cpp - src/VideoStreaming/gstqtvideosink/painters/videonode.cpp - src/VideoStreaming/gstqtvideosink/utils/bufferformat.cpp - src/VideoStreaming/gstqtvideosink/utils/utils.cpp - ) -endif() - -set(QGC_RESOURCES) -list(APPEND QGC_RESOURCES - #HackAndroidFileDialog.qrc - HackFileDialog.qrc - qgcresources.qrc - qgroundcontrol.qrc - src/FirmwarePlugin/APM/APMResources.qrc - src/FirmwarePlugin/PX4/PX4Resources.qrc - - src/Airmap/airmap.qrc -) - -if(BUILD_TESTING) - list(APPEND QGC_RESOURCES - UnitTest.qrc - ) -endif() - # TODO: get qtquick compiler working #qtquick_compiler_add_resources(QGC_RESOURCES ${QGC_RESOURCES} #find_package(Qt5QuickCompiler) -set(QGC_UI) -list(APPEND QGC_UI - #src/ui/Linechart.ui - src/QGCQmlWidgetHolder.ui - src/ui/MainWindow.ui - src/ui/MultiVehicleDockWidget.ui - src/ui/QGCHilConfiguration.ui - src/ui/QGCHilFlightGearConfiguration.ui - src/ui/QGCHilJSBSimConfiguration.ui - src/ui/QGCHilXPlaneConfiguration.ui - src/ui/QGCMapRCToParamDialog.ui - src/ui/QGCMAVLinkInspector.ui - src/ui/QGCMAVLinkLogPlayer.ui - src/ui/QGCPluginHost.ui - src/ui/QGCUASFileView.ui - src/ui/QGCUASFileViewMulti.ui - src/ui/QMap3D.ui - src/ui/uas/QGCUnconnectedInfoWidget.ui -) - include_directories( - - src/QtLocationPlugin/QMLControl - ${Qt5Location_PRIVATE_INCLUDE_DIRS} - libs/eigen libs/mavlink/include/mavlink/v2.0 libs/mavlink/include/mavlink/v2.0/ardupilotmega libs/mavlink/include/mavlink/v2.0/common - - src - - src/AnalyzeView - src/api - src/Audio - src/AutoPilotPlugins - src/AutoPilotPlugins/APM - src/AutoPilotPlugins/Common - src/AutoPilotPlugins/PX4 - src/Camera - src/comm - src/FactSystem - src/FactSystem/FactControls - src/FirmwarePlugin - src/FirmwarePlugin/APM - src/FlightDisplay - src/FlightMap/Widgets - src/FollowMe - src/Joystick - src/MissionManager - src/PositionManager - src/qgcunittest - src/QmlControls - src/QtLocationPlugin - src/Settings - src/Terrain - src/uas - src/ui - src/ui/linechart - src/Vehicle - src/VehicleSetup - src/VideoStreaming - src/ViewWidgets ) add_subdirectory(libs) add_subdirectory(src) if(ANDROID) - add_library(QGroundControl SHARED ${QGC_SRC} ${QGC_RESOURCES} ${QGC_UI}) + add_library(QGroundControl SHARED) else() - add_executable(QGroundControl ${QGC_SRC} ${QGC_RESOURCES} ${QGC_UI}) + add_executable(QGroundControl + #HackAndroidFileDialog.qrc + HackFileDialog.qrc + qgcresources.qrc + qgroundcontrol.qrc +) endif() target_link_libraries(QGroundControl - Qt5::Bluetooth - Qt5::Concurrent - Qt5::Core - Qt5::Quick - Qt5::QuickWidgets - Qt5::Location - Qt5::Multimedia - Qt5::Positioning - Qt5::Sql - Qt5::Svg - Qt5::Test - Qt5::TextToSpeech - Qt5::Xml - Qt5::Widgets - ) + PUBLIC + qgc -target_link_libraries(QGroundControl - gps - qwt + AnalyzeView + gps + qwt ) if(NOT QT_MKSPEC MATCHES "winrt") target_link_libraries(QGroundControl - Qt5::SerialPort + PUBLIC + Qt5::SerialPort ) endif() if(LINUX) - target_link_libraries(QGroundControl ${SDL2_LIBRARIES}) + target_link_libraries(QGroundControl PRIVATE ${SDL2_LIBRARIES}) elseif(APPLE) - target_link_libraries(QGroundControl -F${CMAKE_SOURCE_DIR}/libs/lib/Frameworks "-framework SDL2") + target_link_libraries(QGroundControl PRIVATE -F${CMAKE_SOURCE_DIR}/libs/lib/Frameworks "-framework SDL2") set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE YES diff --git a/src/AnalyzeView/CMakeLists.txt b/src/AnalyzeView/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..6636ae386ca781d3f854f188952e53c44a5ae801 --- /dev/null +++ b/src/AnalyzeView/CMakeLists.txt @@ -0,0 +1,30 @@ + +set(EXTRA_SRC) +if(BUILD_TESTING) + list(APPEND EXTRA_SRC + LogDownloadTest.cc + ) +endif() + +add_library(AnalyzeView + ExifParser.cc + GeoTagController.cc + LogDownloadController.cc + MavlinkConsoleController.cc + PX4LogParser.cc + ULogParser.cc + ${EXTRA_SRC} +) + +target_link_libraries(AnalyzeView + PUBLIC + Qt5::Location + Qt5::SerialPort + Qt5::TextToSpeech + Qt5::Widgets + + qgc +) + +target_include_directories(AnalyzeView INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e7fee39749a109de0daa0578990adaf23bd55b30..2317bf2ad10a3ff8aaf2dfb2f4809d4126e74b91 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,3 +1,551 @@ + +include_directories( + . + ${CMAKE_CURRENT_BINARY_DIR} + + QtLocationPlugin/QMLControl + ${Qt5Location_PRIVATE_INCLUDE_DIRS} + + AnalyzeView + api + Audio + AutoPilotPlugins + AutoPilotPlugins/APM + AutoPilotPlugins/Common + AutoPilotPlugins/PX4 + Camera + comm + FactSystem + FactSystem/FactControls + FirmwarePlugin + FirmwarePlugin/APM + FlightDisplay + FlightMap/Widgets + FollowMe + Joystick + MissionManager + PositionManager + qgcunittest + QmlControls + QtLocationPlugin + Settings + Terrain + uas + ui + ui/linechart + Vehicle + VehicleSetup + VideoStreaming + ViewWidgets +) + +set(EXTRA_SRC) + +if(QGC_AIRMAP) + + list(APPEND EXTRA_SRC + Airmap/AirMapAdvisoryManager.cc + Airmap/AirMapFlightManager.cc + Airmap/AirMapFlightPlanManager.cc + Airmap/AirMapManager.cc + Airmap/AirMapRestrictionManager.cc + Airmap/AirMapRulesetsManager.cc + Airmap/AirMapSettings.cc + Airmap/AirMapSharedState.cc + Airmap/AirMapTelemetry.cc + Airmap/AirMapTrafficMonitor.cc + Airmap/AirMapVehicleManager.cc + Airmap/AirMapWeatherInfoManager.cc + + AirspaceManagement/AirspaceAdvisoryProvider.cc + AirspaceManagement/AirspaceFlightPlanProvider.cc + AirspaceManagement/AirspaceManager.cc + AirspaceManagement/AirspaceRestriction.cc + AirspaceManagement/AirspaceRestrictionProvider.cc + AirspaceManagement/AirspaceRulesetsProvider.cc + AirspaceManagement/AirspaceVehicleManager.cc + AirspaceManagement/AirspaceWeatherInfoProvider.cc + ) +else() + list(APPEND EXTRA_SRC + Airmap/dummy/AirspaceManager.cc + ) + include_directories(Airmap/dummy) +endif() + +if(MOBILE) + list(APPEND EXTRA_SRC + MobileScreenMgr.cc + ) + + if (ANDROID) + list(APPEND EXTRA_SRC + libs/qtandroidserialport/src/qserialport.cpp + libs/qtandroidserialport/src/qserialport_android.cpp + libs/qtandroidserialport/src/qserialportinfo.cpp + libs/qtandroidserialport/src/qserialportinfo_android.cpp + + Joystick/JoystickAndroid.cc + ) + endif() +endif() + +if(BUILD_TESTING) + + add_custom_target(check + COMMAND ctest --output-on-failure . + USES_TERMINAL + ) + + function (add_qgc_test test_name) + add_test( + NAME ${test_name} + COMMAND $ --unittest:${test_name} + ) + add_dependencies(check QGroundControl) + endfunction() + + list(APPEND QGC_SRC + Audio/AudioOutputTest.cc + + comm/MockLink.cc + comm/MockLinkFileServer.cc + comm/MockLinkMissionItemHandler.cc + + FactSystem/FactSystemTestBase.cc + FactSystem/FactSystemTestGeneric.cc + FactSystem/FactSystemTestPX4.cc + FactSystem/ParameterManagerTest.cc + + MissionManager/CameraCalcTest.cc + MissionManager/CameraSectionTest.cc + MissionManager/CorridorScanComplexItemTest.cc + MissionManager/MissionCommandTreeTest.cc + MissionManager/MissionControllerManagerTest.cc + MissionManager/MissionControllerTest.cc + MissionManager/MissionItemTest.cc + MissionManager/MissionManagerTest.cc + MissionManager/MissionSettingsTest.cc + MissionManager/PlanMasterControllerTest.cc + MissionManager/QGCMapPolygonTest.cc + MissionManager/QGCMapPolylineTest.cc + MissionManager/SectionTest.cc + MissionManager/SimpleMissionItemTest.cc + MissionManager/SpeedSectionTest.cc + MissionManager/StructureScanComplexItemTest.cc + MissionManager/SurveyComplexItemTest.cc + MissionManager/TransectStyleComplexItemTest.cc + MissionManager/VisualMissionItemTest.cc + + qgcunittest/FileDialogTest.cc + qgcunittest/FileManagerTest.cc + qgcunittest/FlightGearTest.cc + qgcunittest/GeoTest.cc + qgcunittest/LinkManagerTest.cc + qgcunittest/MainWindowTest.cc + qgcunittest/MavlinkLogTest.cc + qgcunittest/MessageBoxTest.cc + qgcunittest/MultiSignalSpy.cc + qgcunittest/RadioConfigTest.cc + qgcunittest/TCPLinkTest.cc + qgcunittest/TCPLoopBackServer.cc + qgcunittest/UnitTest.cc + qgcunittest/UnitTestList.cc + + Vehicle/SendMavCommandTest.cc + ) + + add_qgc_test(AudioOutputTest) + add_qgc_test(CameraCalcTest) + add_qgc_test(CameraSectionTest) + add_qgc_test(CorridorScanComplexItemTest) + add_qgc_test(FactSystemTestGeneric) + add_qgc_test(FactSystemTestPX4) + add_qgc_test(FileDialogTest) + add_qgc_test(FileManagerTest) + add_qgc_test(FlightGearUnitTest) + add_qgc_test(GeoTest) + add_qgc_test(LinkManagerTest) + add_qgc_test(LogDownloadTest) + add_qgc_test(MessageBoxTest) + add_qgc_test(MissionCommandTreeTest) + add_qgc_test(MissionControllerTest) + add_qgc_test(MissionItemTest) + add_qgc_test(MissionManagerTest) + add_qgc_test(MissionSettingsTest) + add_qgc_test(ParameterManagerTest) + add_qgc_test(PlanMasterControllerTest) + add_qgc_test(QGCMapPolygonTest) + add_qgc_test(QGCMapPolylineTest) + add_qgc_test(RadioConfigTest) + add_qgc_test(SendMavCommandTest) + add_qgc_test(SimpleMissionItemTest) + add_qgc_test(SpeedSectionTest) + add_qgc_test(StructureScanComplexItemTest) + add_qgc_test(SurveyComplexItemTest) + add_qgc_test(TCPLinkTest) + add_qgc_test(TransectStyleComplexItemTest) + +endif() + +if (VIDEO) + list(APPEND QGC_SRC + VideoStreaming/gstqtvideosink/delegates/basedelegate.cpp + VideoStreaming/gstqtvideosink/delegates/qtquick2videosinkdelegate.cpp + VideoStreaming/gstqtvideosink/delegates/qtvideosinkdelegate.cpp + VideoStreaming/gstqtvideosink/delegates/qwidgetvideosinkdelegate.cpp + VideoStreaming/gstqtvideosink/gstqtglvideosink.cpp + VideoStreaming/gstqtvideosink/gstqtglvideosinkbase.cpp + VideoStreaming/gstqtvideosink/gstqtquick2videosink.cpp + VideoStreaming/gstqtvideosink/gstqtvideosink.cpp + VideoStreaming/gstqtvideosink/gstqtvideosinkbase.cpp + VideoStreaming/gstqtvideosink/gstqtvideosinkplugin.cpp + VideoStreaming/gstqtvideosink/gstqwidgetvideosink.cpp + VideoStreaming/gstqtvideosink/painters/genericsurfacepainter.cpp + VideoStreaming/gstqtvideosink/painters/openglsurfacepainter.cpp + VideoStreaming/gstqtvideosink/painters/videomaterial.cpp + VideoStreaming/gstqtvideosink/painters/videonode.cpp + VideoStreaming/gstqtvideosink/utils/bufferformat.cpp + VideoStreaming/gstqtvideosink/utils/utils.cpp + ) +endif() + +set(QGC_RESOURCES) +list(APPEND QGC_RESOURCES + FirmwarePlugin/APM/APMResources.qrc + FirmwarePlugin/PX4/PX4Resources.qrc + + Airmap/airmap.qrc +) + +if(BUILD_TESTING) + list(APPEND QGC_RESOURCES + UnitTest.qrc + ) +endif() + + +set(QGC_UI) +list(APPEND QGC_UI + #src/ui/Linechart.ui + QGCQmlWidgetHolder.ui + ui/MainWindow.ui + ui/MultiVehicleDockWidget.ui + ui/QGCHilConfiguration.ui + ui/QGCHilFlightGearConfiguration.ui + ui/QGCHilJSBSimConfiguration.ui + ui/QGCHilXPlaneConfiguration.ui + ui/QGCMapRCToParamDialog.ui + ui/QGCMAVLinkInspector.ui + ui/QGCMAVLinkLogPlayer.ui + ui/QGCPluginHost.ui + ui/QGCUASFileView.ui + ui/QGCUASFileViewMulti.ui + ui/QMap3D.ui + ui/uas/QGCUnconnectedInfoWidget.ui +) + +add_library(qgc + + ${QGC_RESOURCES} + ${QGC_UI} + + ${EXTRA_SRC} + + api/QGCCorePlugin.cc + api/QGCOptions.cc + api/QGCSettings.cc + api/QmlComponentInfo.cc + + Audio/AudioOutput.cc + + AutoPilotPlugins/APM/APMAirframeComponent.cc + AutoPilotPlugins/APM/APMAirframeComponentAirframes.cc + AutoPilotPlugins/APM/APMAirframeComponentController.cc + AutoPilotPlugins/APM/APMAirframeLoader.cc + AutoPilotPlugins/APM/APMAutoPilotPlugin.cc + AutoPilotPlugins/APM/APMCameraComponent.cc + AutoPilotPlugins/APM/APMCompassCal.cc + AutoPilotPlugins/APM/APMFlightModesComponent.cc + AutoPilotPlugins/APM/APMFlightModesComponentController.cc + AutoPilotPlugins/APM/APMLightsComponent.cc + AutoPilotPlugins/APM/APMPowerComponent.cc + AutoPilotPlugins/APM/APMRadioComponent.cc + AutoPilotPlugins/APM/APMSafetyComponent.cc + AutoPilotPlugins/APM/APMSensorsComponent.cc + AutoPilotPlugins/APM/APMSensorsComponentController.cc + AutoPilotPlugins/APM/APMSubFrameComponent.cc + AutoPilotPlugins/APM/APMTuningComponent.cc + AutoPilotPlugins/APM/APMHeliComponent.cc + + AutoPilotPlugins/Common/ESP8266Component.cc + AutoPilotPlugins/Common/ESP8266ComponentController.cc + AutoPilotPlugins/Common/MotorComponent.cc + AutoPilotPlugins/Common/RadioComponentController.cc + AutoPilotPlugins/Common/SyslinkComponent.cc + AutoPilotPlugins/Common/SyslinkComponentController.cc + + AutoPilotPlugins/PX4/AirframeComponent.cc + AutoPilotPlugins/PX4/AirframeComponentAirframes.cc + AutoPilotPlugins/PX4/AirframeComponentController.cc + AutoPilotPlugins/PX4/CameraComponent.cc + AutoPilotPlugins/PX4/FlightModesComponent.cc + AutoPilotPlugins/PX4/PowerComponent.cc + AutoPilotPlugins/PX4/PowerComponentController.cc + AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.cc + AutoPilotPlugins/PX4/PX4AirframeLoader.cc + AutoPilotPlugins/PX4/PX4AutoPilotPlugin.cc + AutoPilotPlugins/PX4/PX4RadioComponent.cc + AutoPilotPlugins/PX4/PX4SimpleFlightModesController.cc + AutoPilotPlugins/PX4/PX4TuningComponent.cc + AutoPilotPlugins/PX4/SafetyComponent.cc + AutoPilotPlugins/PX4/SensorsComponent.cc + AutoPilotPlugins/PX4/SensorsComponentController.cc + + AutoPilotPlugins/AutoPilotPlugin.cc + AutoPilotPlugins/Generic/GenericAutoPilotPlugin.cc + + Camera/QGCCameraControl.cc + Camera/QGCCameraIO.cc + Camera/QGCCameraManager.cc + + #src/comm/BluetoothLink.cc + comm/LinkConfiguration.cc + comm/LinkInterface.cc + comm/LinkManager.cc + comm/LogReplayLink.cc + comm/MavlinkMessagesTimer.cc + comm/MAVLinkProtocol.cc + comm/QGCFlightGearLink.cc + comm/QGCJSBSimLink.cc + comm/QGCMAVLink.cc + comm/QGCSerialPortInfo.cc + comm/QGCXPlaneLink.cc + comm/SerialLink.cc + comm/TCPLink.cc + comm/UDPLink.cc + + FactSystem/Fact.cc + FactSystem/FactControls/FactPanelController.cc + FactSystem/FactGroup.cc + FactSystem/FactMetaData.cc + FactSystem/FactSystem.cc + FactSystem/FactValueSliderListModel.cc + FactSystem/ParameterManager.cc + FactSystem/SettingsFact.cc + + FirmwarePlugin/APM/APMFirmwarePlugin.cc + FirmwarePlugin/APM/APMFirmwarePluginFactory.cc + FirmwarePlugin/APM/APMParameterMetaData.cc + FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc + FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.cc + FirmwarePlugin/APM/ArduRoverFirmwarePlugin.cc + FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc + + FirmwarePlugin/CameraMetaData.cc + FirmwarePlugin/FirmwarePlugin.cc + FirmwarePlugin/FirmwarePluginManager.cc + + FirmwarePlugin/PX4/PX4FirmwarePlugin.cc + FirmwarePlugin/PX4/PX4FirmwarePluginFactory.cc + FirmwarePlugin/PX4/PX4ParameterMetaData.cc + + FlightDisplay/VideoManager.cc + + FlightMap/Widgets/ValuesWidgetController.cc + + FollowMe/FollowMe.cc + + Joystick/Joystick.cc + Joystick/JoystickManager.cc + Joystick/JoystickSDL.cc + + MissionManager/CameraCalc.cc + MissionManager/CameraSection.cc + MissionManager/CameraSpec.cc + MissionManager/ComplexMissionItem.cc + MissionManager/CorridorScanComplexItem.cc + MissionManager/FixedWingLandingComplexItem.cc + MissionManager/GeoFenceController.cc + MissionManager/GeoFenceManager.cc + MissionManager/KML.cc + MissionManager/MissionCommandList.cc + MissionManager/MissionCommandTree.cc + MissionManager/MissionCommandUIInfo.cc + MissionManager/MissionController.cc + MissionManager/MissionItem.cc + MissionManager/MissionManager.cc + MissionManager/MissionSettingsItem.cc + MissionManager/PlanElementController.cc + MissionManager/PlanManager.cc + MissionManager/PlanMasterController.cc + MissionManager/QGCFenceCircle.cc + MissionManager/QGCFencePolygon.cc + MissionManager/QGCMapCircle.cc + MissionManager/QGCMapPolygon.cc + MissionManager/QGCMapPolyline.cc + MissionManager/RallyPoint.cc + MissionManager/RallyPointController.cc + MissionManager/RallyPointManager.cc + MissionManager/SimpleMissionItem.cc + MissionManager/SpeedSection.cc + MissionManager/StructureScanComplexItem.cc + MissionManager/SurveyComplexItem.cc + MissionManager/TransectStyleComplexItem.cc + MissionManager/VisualMissionItem.cc + + PositionManager/PositionManager.cpp + PositionManager/SimulatedPosition.cc + + QmlControls/AppMessages.cc + QmlControls/CoordinateVector.cc + QmlControls/EditPositionDialogController.cc + QmlControls/ParameterEditorController.cc + QmlControls/QGCFileDialogController.cc + QmlControls/QGCGeoBoundingCube.cc + QmlControls/QGCImageProvider.cc + QmlControls/QGroundControlQmlGlobal.cc + QmlControls/QmlObjectListModel.cc + QmlControls/QmlTestWidget.cc + QmlControls/RCChannelMonitorController.cc + QmlControls/ScreenToolsController.cc + + QtLocationPlugin/QGCMapEngine.cpp + QtLocationPlugin/QGCMapTileSet.cpp + QtLocationPlugin/QGCMapUrlEngine.cpp + QtLocationPlugin/QGCTileCacheWorker.cpp + QtLocationPlugin/QGeoCodeReplyQGC.cpp + QtLocationPlugin/QGeoCodingManagerEngineQGC.cpp + QtLocationPlugin/QGeoMapReplyQGC.cpp + QtLocationPlugin/QGeoServiceProviderPluginQGC.cpp + QtLocationPlugin/QGeoTiledMappingManagerEngineQGC.cpp + QtLocationPlugin/QGeoTileFetcherQGC.cpp + QtLocationPlugin/QMLControl/QGCMapEngineManager.cc + + Settings/AppSettings.cc + Settings/AutoConnectSettings.cc + Settings/BrandImageSettings.cc + Settings/FlightMapSettings.cc + Settings/GuidedSettings.cc + Settings/RTKSettings.cc + Settings/SettingsGroup.cc + Settings/SettingsManager.cc + Settings/UnitsSettings.cc + Settings/VideoSettings.cc + + Terrain/TerrainQuery.cc + + uas/FileManager.cc + uas/UAS.cc + uas/UASMessageHandler.cc + + ui/HILDockWidget.cc + ui/linechart/ChartPlot.cc + ui/linechart/IncrementalPlot.cc + ui/linechart/LinechartPlot.cc + ui/linechart/Linecharts.cc + ui/linechart/LinechartWidget.cc + ui/linechart/Scrollbar.cc + ui/linechart/ScrollZoomer.cc + ui/MainWindow.cc + ui/MAVLinkDecoder.cc + ui/MultiVehicleDockWidget.cc + ui/QGCHilConfiguration.cc + ui/QGCHilFlightGearConfiguration.cc + ui/QGCHilJSBSimConfiguration.cc + ui/QGCHilXPlaneConfiguration.cc + ui/QGCMapRCToParamDialog.cpp + ui/QGCMAVLinkInspector.cc + ui/QGCMAVLinkLogPlayer.cc + ui/QGCPluginHost.cc + ui/QGCUASFileView.cc + ui/QGCUASFileViewMulti.cc + ui/uas/QGCUnconnectedInfoWidget.cc + + Vehicle/ADSBVehicle.cc + Vehicle/GPSRTKFactGroup.cc + Vehicle/MAVLinkLogManager.cc + Vehicle/MultiVehicleManager.cc + Vehicle/Vehicle.cc + + VehicleSetup/Bootloader.cc + VehicleSetup/FirmwareImage.cc + VehicleSetup/FirmwareUpgradeController.cc + VehicleSetup/JoystickConfigController.cc + VehicleSetup/PX4FirmwareUpgradeThread.cc + VehicleSetup/VehicleComponent.cc + + VideoStreaming/VideoItem.cc + VideoStreaming/VideoReceiver.cc + VideoStreaming/VideoStreaming.cc + VideoStreaming/VideoSurface.cc + + ViewWidgets/CustomCommandWidget.cc + ViewWidgets/CustomCommandWidgetController.cc + ViewWidgets/ViewWidgetController.cc + + CmdLineOptParser.cc + JsonHelper.cc + KMLFileHelper.cc + LogCompressor.cc + QGC.cc + QGCApplication.cc + QGCComboBox.cc + QGCDockWidget.cc + QGCFileDownload.cc + QGCGeo.cc + QGCLoggingCategory.cc + QGCMapPalette.cc + QGCPalette.cc + QGCQFileDialog.cc + QGCQGeoCoordinate.cc + QGCQmlWidgetHolder.cpp + QGCQuickWidget.cc + QGCTemporaryFile.cc + QGCToolbox.cc + RunGuard.cc + TerrainTile.cc + UTM.cpp + main.cc + + # HEADERS + # shouldn't be listed here, but aren't named properly for AUTOMOC + comm/QGCFlightGearLink.h + comm/QGCHilLink.h + comm/QGCJSBSimLink.h + MissionManager/Section.h + QtLocationPlugin/QGCMapEngineData.h + uas/UAS.h + uas/UASInterface.h + ui/QGCHilFlightGearConfiguration.h + ui/QGCHilJSBSimConfiguration.h +) + +set_source_files_properties(QGCApplication.cc PROPERTIES COMPILE_DEFINITIONS GIT_VERSION="${git_tag}") + +target_link_libraries(qgc + Qt5::Bluetooth + Qt5::Concurrent + Qt5::Core + Qt5::Quick + Qt5::QuickWidgets + Qt5::Location + Qt5::Multimedia + Qt5::Positioning + Qt5::Sql + Qt5::Svg + Qt5::Test + Qt5::TextToSpeech + Qt5::Xml + Qt5::Widgets + + gps + qwt # LinechartWidget +) + +target_include_directories(qgc INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) + +add_subdirectory(AnalyzeView) add_subdirectory(GPS)