CMakeLists.txt 4.19 KB
Newer Older
1

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 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 104 105 106 107 108 109 110 111 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

include_directories(
	.
	${CMAKE_CURRENT_BINARY_DIR}

	${Qt5Location_PRIVATE_INCLUDE_DIRS}

	qgcunittest
	Terrain
)

set(EXTRA_SRC)

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 $<TARGET_FILE:QGroundControl> --unittest:${test_name}
		)
		add_dependencies(check QGroundControl)
	endfunction()

	list(APPEND QGC_SRC

		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
	)

	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(BUILD_TESTING)
	list(APPEND QGC_RESOURCES
		UnitTest.qrc
	)
endif()

add_library(qgc

	${QGC_RESOURCES}
	${QGC_UI}

	${EXTRA_SRC}

	Terrain/TerrainQuery.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

137 138 139
	# UI
	QGCQmlWidgetHolder.ui

140 141 142 143
)

set_source_files_properties(QGCApplication.cc PROPERTIES COMPILE_DEFINITIONS GIT_VERSION="${git_tag}")

144 145
add_subdirectory(ui)

146
add_subdirectory(Airmap)
147
add_subdirectory(AnalyzeView)
148
add_subdirectory(api)
149
add_subdirectory(Audio)
150
add_subdirectory(AutoPilotPlugins)
151
add_subdirectory(Camera)
152
add_subdirectory(comm)
153
add_subdirectory(FactSystem)
154
add_subdirectory(FirmwarePlugin)
155
add_subdirectory(FlightDisplay)
156
add_subdirectory(FlightMap)
157
add_subdirectory(FollowMe)
158
add_subdirectory(GPS)
159
add_subdirectory(Joystick)
160
add_subdirectory(MissionManager)
161
add_subdirectory(PositionManager)
162
add_subdirectory(QmlControls)
163
add_subdirectory(QtLocationPlugin)
164
add_subdirectory(Settings)
165
add_subdirectory(uas)
166
add_subdirectory(Vehicle)
167
add_subdirectory(VehicleSetup)
168
add_subdirectory(VideoStreaming)
169
add_subdirectory(ViewWidgets)
170

171
target_link_libraries(qgc
172 173 174

	PUBLIC

175 176 177 178 179 180
	Qt5::Bluetooth
	Qt5::Concurrent
	Qt5::Core
	Qt5::Location
	Qt5::Multimedia
	Qt5::Positioning
181 182
	Qt5::Quick
	Qt5::QuickWidgets
183 184 185 186 187
	Qt5::Sql
	Qt5::Svg
	Qt5::Test
	Qt5::TextToSpeech
	Qt5::Widgets
188
	Qt5::Xml
189

190
	Airmap
191
	AnalyzeView
192
	api
193
	Audio
194
	AutoPilotPlugins
195
	Camera
196
	comm
197
	FactSystem
198
	FirmwarePlugin
199
	FlightDisplay
200
	FlightMap
201
	FollowMe
202
	gps
203
	Joystick
204
	MissionManager
205
	PositionManager
206
	QmlControls
207
	QtLocationPlugin
208
	qwt # LinechartWidget
209
	Settings
210
	uas
211
	ui
212
	Vehicle
213
	VehicleSetup
214
	VideoStreaming
215
	ViewWidgets
216 217 218 219
)

target_include_directories(qgc INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})