|
|
|
#
|
|
|
|
# Tell the Linux build to look in a few additional places for libs
|
|
|
|
#
|
|
|
|
|
|
|
|
LinuxBuild {
|
|
|
|
INCLUDEPATH += \
|
|
|
|
/usr/include \
|
|
|
|
/usr/local/include
|
|
|
|
|
|
|
|
LIBS += \
|
|
|
|
-L/usr/lib
|
|
|
|
|
|
|
|
linux-g++-64 {
|
|
|
|
LIBS += \
|
|
|
|
-L/usr/local/lib64 \
|
|
|
|
-L/usr/lib64
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
|
|
|
# Add in a few missing headers to windows
|
|
|
|
#
|
|
|
|
|
|
|
|
WindowsBuild {
|
|
|
|
INCLUDEPATH += libs/lib/msinttypes
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
|
|
|
# QUpgrade support.
|
|
|
|
#
|
|
|
|
# Allow the user to override QUpgrade compilation through a DISABLE_QUPGRADE
|
|
|
|
# define like: `qmake DEFINES=DISABLE_QUPGRADE`
|
|
|
|
contains(DEFINES, DISABLE_QUPGRADE) {
|
|
|
|
message("Skipping support for QUpgrade (manual override)")
|
|
|
|
}
|
|
|
|
# If the QUpgrade submodule has been initialized, build in support by default.
|
|
|
|
else:exists(qupgrade/.git) {
|
|
|
|
message("Including support for QUpgrade")
|
|
|
|
|
|
|
|
DEFINES += QUPGRADE_SUPPORT
|
|
|
|
|
|
|
|
INCLUDEPATH += qupgrade/src/apps/qupgrade
|
|
|
|
|
|
|
|
FORMS += \
|
|
|
|
qupgrade/src/apps/qupgrade/dialog_bare.ui \
|
|
|
|
qupgrade/src/apps/qupgrade/boardwidget.ui
|
|
|
|
|
|
|
|
HEADERS += \
|
|
|
|
qupgrade/src/apps/qupgrade/qgcfirmwareupgradeworker.h \
|
|
|
|
qupgrade/src/apps/qupgrade/uploader.h \
|
|
|
|
qupgrade/src/apps/qupgrade/dialog_bare.h \
|
|
|
|
qupgrade/src/apps/qupgrade/boardwidget.h
|
|
|
|
|
|
|
|
SOURCES += \
|
|
|
|
qupgrade/src/apps/qupgrade/qgcfirmwareupgradeworker.cpp \
|
|
|
|
qupgrade/src/apps/qupgrade/uploader.cpp \
|
|
|
|
qupgrade/src/apps/qupgrade/dialog_bare.cpp \
|
|
|
|
qupgrade/src/apps/qupgrade/boardwidget.cpp
|
|
|
|
|
|
|
|
RESOURCES += \
|
|
|
|
qupgrade/qupgrade.qrc
|
|
|
|
|
|
|
|
LinuxBuild:CONFIG += qesp_linux_udev
|
|
|
|
|
|
|
|
include(qupgrade/libs/qextserialport/src/qextserialport.pri)
|
|
|
|
}
|
|
|
|
# Otherwise notify the user and don't compile it.
|
|
|
|
else {
|
|
|
|
message("Skipping support for QUpgrade (missing submodule, see README)")
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
|
|
|
# MAVLink
|
|
|
|
#
|
|
|
|
|
|
|
|
MAVLINK_CONF = ""
|
|
|
|
MAVLINKPATH = $$BASEDIR/libs/mavlink/include/mavlink/v1.0
|
|
|
|
DEFINES += MAVLINK_NO_DATA
|
|
|
|
|
|
|
|
# If the user config file exists, it will be included.
|
|
|
|
# if the variable MAVLINK_CONF contains the name of an
|
|
|
|
# additional project, QGroundControl includes the support
|
|
|
|
# of custom MAVLink messages of this project. It will also
|
|
|
|
# create a QGC_USE_{AUTOPILOT_NAME}_MESSAGES macro for use
|
|
|
|
# within the actual code.
|
|
|
|
exists(user_config.pri) {
|
|
|
|
include(user_config.pri)
|
|
|
|
message("----- USING CUSTOM USER QGROUNDCONTROL CONFIG FROM user_config.pri -----")
|
|
|
|
message("Adding support for additional MAVLink messages for: " $$MAVLINK_CONF)
|
|
|
|
message("------------------------------------------------------------------------")
|
|
|
|
} else {
|
|
|
|
MAVLINK_CONF += ardupilotmega
|
|
|
|
}
|
|
|
|
INCLUDEPATH += $$MAVLINKPATH
|
|
|
|
isEmpty(MAVLINK_CONF) {
|
|
|
|
INCLUDEPATH += $$MAVLINKPATH/common
|
|
|
|
} else {
|
|
|
|
INCLUDEPATH += $$MAVLINKPATH/$$MAVLINK_CONF
|
|
|
|
DEFINES += $$sprintf('QGC_USE_%1_MESSAGES', $$upper($$MAVLINK_CONF))
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
|
|
|
# MAVLink generator (deprecated)
|
|
|
|
#
|
|
|
|
|
|
|
|
DEPENDPATH += \
|
|
|
|
src/apps/mavlinkgen
|
|
|
|
|
|
|
|
INCLUDEPATH += \
|
|
|
|
src/apps/mavlinkgen \
|
|
|
|
src/apps/mavlinkgen/ui \
|
|
|
|
src/apps/mavlinkgen/generator
|
|
|
|
|
|
|
|
include(src/apps/mavlinkgen/mavlinkgen.pri)
|
|
|
|
|
|
|
|
#
|
|
|
|
# OpenSceneGraph
|
|
|
|
#
|
|
|
|
|
|
|
|
MacBuild {
|
|
|
|
# GLUT and OpenSceneGraph are part of standard install on Mac
|
|
|
|
CONFIG += OSGDependency
|
|
|
|
|
|
|
|
INCLUDEPATH += \
|
|
|
|
$$BASEDIR/libs/lib/mac64/include
|
|
|
|
|
|
|
|
LIBS += \
|
|
|
|
-L$$BASEDIR/libs/lib/mac64/lib \
|
|
|
|
-losgWidget
|
|
|
|
}
|
|
|
|
|
|
|
|
LinuxBuild {
|
|
|
|
exists(/usr/include/osg) | exists(/usr/local/include/osg) {
|
|
|
|
CONFIG += OSGDependency
|
|
|
|
exists(/usr/include/osg/osgQt) | exists(/usr/include/osgQt) | exists(/usr/local/include/osg/osgQt) | exists(/usr/local/include/osgQt) {
|
|
|
|
message("Including support for Linux OpenSceneGraph Qt")
|
|
|
|
LIBS += -losgQt
|
|
|
|
DEFINES += QGC_OSG_QT_ENABLED
|
|
|
|
} else {
|
|
|
|
message("Skipping support for Linux OpenSceneGraph Qt")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
WindowsBuild {
|
|
|
|
exists($$BASEDIR/libs/lib/osg123) {
|
|
|
|
CONFIG += OSGDependency
|
|
|
|
|
|
|
|
INCLUDEPATH += \
|
|
|
|
$$BASEDIR/libs/lib/osgEarth/win32/include \
|
|
|
|
$$BASEDIR/libs/lib/osgEarth_3rdparty/win32/OpenSceneGraph-2.8.2/include
|
|
|
|
|
|
|
|
LIBS += -L$$BASEDIR/libs/lib/osgEarth_3rdparty/win32/OpenSceneGraph-2.8.2/lib
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
OSGDependency {
|
|
|
|
message("Including support for OpenSceneGraph")
|
|
|
|
|
|
|
|
DEFINES += QGC_OSG_ENABLED
|
|
|
|
|
|
|
|
LIBS += \
|
|
|
|
-losg \
|
|
|
|
-losgViewer \
|
|
|
|
-losgGA \
|
|
|
|
-losgDB \
|
|
|
|
-losgText \
|
|
|
|
-lOpenThreads
|
|
|
|
|
|
|
|
HEADERS += \
|
|
|
|
src/ui/map3D/gpl.h \
|
|
|
|
src/ui/map3D/CameraParams.h \
|
|
|
|
src/ui/map3D/ViewParamWidget.h \
|
|
|
|
src/ui/map3D/SystemContainer.h \
|
|
|
|
src/ui/map3D/SystemViewParams.h \
|
|
|
|
src/ui/map3D/GlobalViewParams.h \
|
|
|
|
src/ui/map3D/SystemGroupNode.h \
|
|
|
|
src/ui/map3D/Q3DWidget.h \
|
|
|
|
src/ui/map3D/GCManipulator.h \
|
|
|
|
src/ui/map3D/ImageWindowGeode.h \
|
|
|
|
src/ui/map3D/PixhawkCheetahNode.h \
|
|
|
|
src/ui/map3D/Pixhawk3DWidget.h \
|
|
|
|
src/ui/map3D/Q3DWidgetFactory.h \
|
|
|
|
src/ui/map3D/WebImageCache.h \
|
|
|
|
src/ui/map3D/WebImage.h \
|
|
|
|
src/ui/map3D/TextureCache.h \
|
|
|
|
src/ui/map3D/Texture.h \
|
|
|
|
src/ui/map3D/Imagery.h \
|
|
|
|
src/ui/map3D/HUDScaleGeode.h \
|
|
|
|
src/ui/map3D/WaypointGroupNode.h \
|
|
|
|
src/ui/map3D/TerrainParamDialog.h \
|
|
|
|
src/ui/map3D/ImageryParamDialog.h
|
|
|
|
|
|
|
|
SOURCES += \
|
|
|
|
src/ui/map3D/gpl.cc \
|
|
|
|
src/ui/map3D/CameraParams.cc \
|
|
|
|
src/ui/map3D/ViewParamWidget.cc \
|
|
|
|
src/ui/map3D/SystemContainer.cc \
|
|
|
|
src/ui/map3D/SystemViewParams.cc \
|
|
|
|
src/ui/map3D/GlobalViewParams.cc \
|
|
|
|
src/ui/map3D/SystemGroupNode.cc \
|
|
|
|
src/ui/map3D/Q3DWidget.cc \
|
|
|
|
src/ui/map3D/ImageWindowGeode.cc \
|
|
|
|
src/ui/map3D/GCManipulator.cc \
|
|
|
|
src/ui/map3D/PixhawkCheetahNode.cc \
|
|
|
|
src/ui/map3D/Pixhawk3DWidget.cc \
|
|
|
|
src/ui/map3D/Q3DWidgetFactory.cc \
|
|
|
|
src/ui/map3D/WebImageCache.cc \
|
|
|
|
src/ui/map3D/WebImage.cc \
|
|
|
|
src/ui/map3D/TextureCache.cc \
|
|
|
|
src/ui/map3D/Texture.cc \
|
|
|
|
src/ui/map3D/Imagery.cc \
|
|
|
|
src/ui/map3D/HUDScaleGeode.cc \
|
|
|
|
src/ui/map3D/WaypointGroupNode.cc \
|
|
|
|
src/ui/map3D/TerrainParamDialog.cc \
|
|
|
|
src/ui/map3D/ImageryParamDialog.cc
|
|
|
|
} else {
|
|
|
|
message("Skipping support for OpenSceneGraph")
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
|
|
|
# Google Earth
|
|
|
|
#
|
|
|
|
|
|
|
|
MacBuild | WindowsBuild {
|
|
|
|
message(Including support for Google Earth)
|
|
|
|
|
|
|
|
HEADERS += src/ui/map3D/QGCGoogleEarthView.h
|
|
|
|
SOURCES += src/ui/map3D/QGCGoogleEarthView.cc
|
|
|
|
WindowsBuild {
|
|
|
|
CONFIG += qaxcontainer
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
message(Skipping support for Google Earth)
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
|
|
|
# Protcol Buffers for PixHawk
|
|
|
|
#
|
|
|
|
|
|
|
|
LinuxBuild : contains(MAVLINK_CONF, pixhawk) {
|
|
|
|
exists(/usr/local/include/google/protobuf) | exists(/usr/include/google/protobuf) {
|
|
|
|
message("Including support for Protocol Buffers")
|
|
|
|
|
|
|
|
DEFINES += QGC_PROTOBUF_ENABLED
|
|
|
|
|
|
|
|
LIBS += \
|
|
|
|
-lprotobuf \
|
|
|
|
-lprotobuf-lite \
|
|
|
|
-lprotoc
|
|
|
|
|
|
|
|
HEADERS += \
|
|
|
|
libs/mavlink/include/mavlink/v1.0/pixhawk/pixhawk.pb.h \
|
|
|
|
src/ui/map3D/ObstacleGroupNode.h \
|
|
|
|
src/ui/map3D/GLOverlayGeode.h
|
|
|
|
|
|
|
|
SOURCES += \
|
|
|
|
libs/mavlink/share/mavlink/src/v1.0/pixhawk/pixhawk.pb.cc \
|
|
|
|
src/ui/map3D/ObstacleGroupNode.cc \
|
|
|
|
src/ui/map3D/GLOverlayGeode.cc
|
|
|
|
} else {
|
|
|
|
message("Skipping support for Protocol Buffers")
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
message("Skipping support for Protocol Buffers")
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
|
|
|
# libfreenect Kinect support
|
|
|
|
#
|
|
|
|
|
|
|
|
MacBuild | LinuxBuild {
|
|
|
|
exists(/opt/local/include/libfreenect) | exists(/usr/local/include/libfreenect) {
|
|
|
|
message("Including support for libfreenect")
|
|
|
|
|
|
|
|
#INCLUDEPATH += /usr/include/libusb-1.0
|
|
|
|
DEFINES += QGC_LIBFREENECT_ENABLED
|
|
|
|
LIBS += -lfreenect
|
|
|
|
HEADERS += src/input/Freenect.h
|
|
|
|
SOURCES += src/input/Freenect.cc
|
|
|
|
} else {
|
|
|
|
message("Skipping support for libfreenect")
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
message("Skipping support for libfreenect")
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
|
|
|
# EIGEN matrix library (NOMINMAX needed to make internal min/max work)
|
|
|
|
#
|
|
|
|
|
|
|
|
INCLUDEPATH += libs/eigen
|
|
|
|
DEFINES += NOMINMAX
|
|
|
|
|
|
|
|
#
|
|
|
|
# OPMapControl library (from OpenPilot)
|
|
|
|
#
|
|
|
|
|
|
|
|
include(libs/utils/utils_external.pri)
|
|
|
|
include(libs/opmapcontrol/opmapcontrol_external.pri)
|
|
|
|
|
|
|
|
DEPENDPATH += \
|
|
|
|
libs/utils \
|
|
|
|
libs/utils/src \
|
|
|
|
libs/opmapcontrol \
|
|
|
|
libs/opmapcontrol/src \
|
|
|
|
libs/opmapcontrol/src/mapwidget
|
|
|
|
|
|
|
|
INCLUDEPATH += \
|
|
|
|
libs/utils \
|
|
|
|
libs \
|
|
|
|
libs/opmapcontrol
|
|
|
|
|
|
|
|
#
|
|
|
|
# QWT plotting library
|
|
|
|
#
|
|
|
|
|
|
|
|
include(libs/qwt/qwt.pri)
|
|
|
|
|
|
|
|
#
|
|
|
|
# QSerialPort - serial port library
|
|
|
|
#
|
|
|
|
|
|
|
|
include(libs/serialport/qserialport.pri)
|
|
|
|
|
|
|
|
WindowsBuild {
|
|
|
|
# Used to enumerate serial ports by QSerialPort
|
|
|
|
LIBS += -lsetupapi
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
# XBee wireless
|
|
|
|
#
|
|
|
|
|
|
|
|
WindowsBuild | LinuxBuild {
|
|
|
|
message(Including support for XBee)
|
|
|
|
|
|
|
|
DEFINES += XBEELINK
|
|
|
|
|
|
|
|
INCLUDEPATH += libs/thirdParty/libxbee
|
|
|
|
|
|
|
|
HEADERS += \
|
|
|
|
src/comm/XbeeLinkInterface.h \
|
|
|
|
src/comm/XbeeLink.h \
|
|
|
|
src/comm/HexSpinBox.h \
|
|
|
|
src/ui/XbeeConfigurationWindow.h \
|
|
|
|
src/comm/CallConv.h
|
|
|
|
|
|
|
|
SOURCES += \
|
|
|
|
src/comm/XbeeLink.cpp \
|
|
|
|
src/comm/HexSpinBox.cpp \
|
|
|
|
src/ui/XbeeConfigurationWindow.cpp
|
|
|
|
|
|
|
|
WindowsBuild {
|
|
|
|
LIBS += -l$$BASEDIR/libs/thirdParty/libxbee/lib/libxbee
|
|
|
|
}
|
|
|
|
|
|
|
|
LinuxBuild {
|
|
|
|
LIBS += -L$$BASEDIR/libs/thirdParty/libxbee/lib \
|
|
|
|
-lxbee
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
message(Skipping support for XBee)
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
|
|
|
# 3DConnexion 3d Mice support
|
|
|
|
#
|
|
|
|
|
|
|
|
LinuxBuild : exists(/usr/local/lib/libxdrvlib.so) {
|
|
|
|
message("Including support for Magellan 3DxWare")
|
|
|
|
|
|
|
|
DEFINES +=
|
|
|
|
MOUSE_ENABLED_LINUX \
|
|
|
|
ParameterCheck # Hack: Has to be defined for magellan usage
|
|
|
|
|
|
|
|
INCLUDEPATH *= /usr/local/include
|
|
|
|
HEADERS += src/input/Mouse6dofInput.h
|
|
|
|
SOURCES += src/input/Mouse6dofInput.cpp
|
|
|
|
LIBS += -L/usr/local/lib/ -lxdrvlib
|
|
|
|
}
|
|
|
|
|
|
|
|
WindowsBuild {
|
|
|
|
message("Including support for Magellan 3DxWare")
|
|
|
|
|
|
|
|
DEFINES += MOUSE_ENABLED_WIN
|
|
|
|
|
|
|
|
INCLUDEPATH += libs/thirdParty/3DMouse/win
|
|
|
|
|
|
|
|
HEADERS += \
|
|
|
|
libs/thirdParty/3DMouse/win/I3dMouseParams.h \
|
|
|
|
libs/thirdParty/3DMouse/win/MouseParameters.h \
|
|
|
|
libs/thirdParty/3DMouse/win/Mouse3DInput.h \
|
|
|
|
src/input/Mouse6dofInput.h
|
|
|
|
|
|
|
|
SOURCES += \
|
|
|
|
libs/thirdParty/3DMouse/win/MouseParameters.cpp \
|
|
|
|
libs/thirdParty/3DMouse/win/Mouse3DInput.cpp \
|
|
|
|
src/input/Mouse6dofInput.cpp
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
|
|
|
# Opal RT-LAB Library
|
|
|
|
#
|
|
|
|
|
|
|
|
WindowsBuild : win32 : exists(src/lib/opalrt/OpalApi.h) : exists(C:/OPAL-RT/RT-LAB7.2.4/Common/bin) {
|
|
|
|
message("Including support for Opal-RT")
|
|
|
|
|
|
|
|
DEFINES += OPAL_RT
|
|
|
|
|
|
|
|
INCLUDEPATH +=
|
|
|
|
src/lib/opalrt
|
|
|
|
libs/lib/opal/include \
|
|
|
|
|
|
|
|
FORMS += src/ui/OpalLinkSettings.ui
|
|
|
|
|
|
|
|
HEADERS += \
|
|
|
|
src/comm/OpalRT.h \
|
|
|
|
src/comm/OpalLink.h \
|
|
|
|
src/comm/Parameter.h \
|
|
|
|
src/comm/QGCParamID.h \
|
|
|
|
src/comm/ParameterList.h \
|
|
|
|
src/ui/OpalLinkConfigurationWindow.h
|
|
|
|
|
|
|
|
SOURCES += \
|
|
|
|
src/comm/OpalRT.cc \
|
|
|
|
src/comm/OpalLink.cc \
|
|
|
|
src/comm/Parameter.cc \
|
|
|
|
src/comm/QGCParamID.cc \
|
|
|
|
src/comm/ParameterList.cc \
|
|
|
|
src/ui/OpalLinkConfigurationWindow.cc
|
|
|
|
|
|
|
|
LIBS += \
|
|
|
|
-LC:/OPAL-RT/RT-LAB7.2.4/Common/bin \
|
|
|
|
-lOpalApi
|
|
|
|
} else {
|
|
|
|
message("Skipping support for Opal-RT")
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
|
|
|
# SDL
|
|
|
|
#
|
|
|
|
|
|
|
|
MacBuild {
|
|
|
|
INCLUDEPATH += \
|
|
|
|
$$BASEDIR/libs/lib/Frameworks/SDL.framework/Headers
|
|
|
|
|
|
|
|
LIBS += \
|
|
|
|
-F$$BASEDIR/libs/lib/Frameworks \
|
|
|
|
-framework SDL
|
|
|
|
}
|
|
|
|
|
|
|
|
LinuxBuild {
|
|
|
|
LIBS += \
|
|
|
|
-lSDL \
|
|
|
|
-lSDLmain
|
|
|
|
}
|
|
|
|
|
|
|
|
WindowsBuild {
|
|
|
|
INCLUDEPATH += \
|
|
|
|
$$BASEDIR/libs/lib/sdl/msvc/include \
|
|
|
|
|
|
|
|
LIBS += \
|
|
|
|
-L$$BASEDIR/libs/lib/sdl/msvc/lib \
|
|
|
|
-lSDLmain \
|
|
|
|
-lSDL
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
|
|
|
# Festival Lite speech synthesis engine
|
|
|
|
#
|
|
|
|
|
|
|
|
LinuxBuild {
|
|
|
|
LIBS += \
|
|
|
|
-lflite_cmu_us_kal \
|
|
|
|
-lflite_usenglish \
|
|
|
|
-lflite_cmulex \
|
|
|
|
-lflite
|
|
|
|
}
|
|
|
|
|