Newer
Older
################################################################################
#
# (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
#
# QGroundControl is licensed according to the terms in the file
# COPYING.md in the root of the source code directory.
#
################################################################################
QMAKE_PROJECT_DEPTH = 0 # undocumented qmake flag to force absolute paths in makefiles
# These are disabled until proven correct
DEFINES += QGC_GST_TAISYNC_DISABLED
DEFINES += QGC_GST_MICROHARD_DISABLED
error("You must use shadow build (e.g. mkdir build; cd build; qmake ../qgroundcontrol.pro).")
!equals(QT_MAJOR_VERSION, 5) | !greaterThan(QT_MINOR_VERSION, 10) {
error("Unsupported Qt version, 5.11+ is required")
DebugBuild {
DESTDIR = $${OUT_PWD}/debug
#DEFINES += SNAKE_DEBUG
DEFINES += SNAKE_SHOW_TIME
DEFINES += DEBUG_CIRCULAR_SURVEY
DESTDIR = $${OUT_PWD}/release
DEFINES += SNAKE_SHOW_TIME
#DEFINES += SNAKE_DEBUG
QML_IMPORT_PATH += $$PWD/src/QmlControls
#
# OS Specific settings
#
MacBuild {
QMAKE_INFO_PLIST = Custom-Info.plist
ICON = $${SOURCE_DIR}/resources/icons/macx.icns
OTHER_FILES += Custom-Info.plist
LIBS += -framework ApplicationServices
}
LinuxBuild {
CONFIG += qesp_linux_udev
}
WindowsBuild {
RC_ICONS = resources/icons/qgroundcontrol.ico
}
#
# Branding
#
QGC_APP_NAME = "QGroundControl"
QGC_ORG_NAME = "QGroundControl.org"
QGC_ORG_DOMAIN = "org.qgroundcontrol"
QGC_APP_DESCRIPTION = "Open source ground control app provided by QGroundControl dev team"
QGC_APP_COPYRIGHT = "Copyright (C) 2019 QGroundControl Development Team. All rights reserved."
QGC_INSTALLER_ICON = "$$SOURCE_DIR\\WindowsQGC.ico"
QGC_INSTALLER_HEADER_BITMAP = "$$SOURCE_DIR\\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)))
}
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
#
# 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 $${SOURCE_DIR} && $${SOURCE_DIR}/tools/update_ios_version.sh $${SOURCE_DIR}/ios/iOSForAppStore-Info-Source.plist $${SOURCE_DIR}/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 = $${SOURCE_DIR}/ios/iOSForAppStore-Info.plist
OTHER_FILES += $${SOURCE_DIR}/ios/iOSForAppStore-Info.plist
QMAKE_INFO_PLIST = $${SOURCE_DIR}/ios/iOS-Info.plist
OTHER_FILES += $${SOURCE_DIR}/ios/iOS-Info.plist
}
QMAKE_ASSET_CATALOGS += ios/Images.xcassets
BUNDLE.files = ios/QGCLaunchScreen.xib $$QMAKE_INFO_PLIST
QMAKE_BUNDLE_DATA += BUNDLE
}
}
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
#
# 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
}
# 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) {
Loading
Loading full blame...