Commit 68461c3c authored by pixhawk's avatar pixhawk

Unified dev branches, enabled building of QGroundControl without OSG

parent 6f583e02
...@@ -38,8 +38,7 @@ release { ...@@ -38,8 +38,7 @@ release {
macx { macx {
HARDWARE_PLATFORM = $$system(uname -a) HARDWARE_PLATFORM = $$system(uname -a)
contains( HARDWARE_PLATFORM, 9.6.0 ) || contains( HARDWARE_PLATFORM, 9.7.0 ) || contains( HARDWARE_PLATFORM, 9.8.0 ) || || contains( HARDWARE_PLATFORM, 9.9.0 ) contains( HARDWARE_PLATFORM, 9.6.0 ) || contains( HARDWARE_PLATFORM, 9.7.0 ) || contains( HARDWARE_PLATFORM, 9.8.0 ) || || contains( HARDWARE_PLATFORM, 9.9.0 ) {
{
# x86 Mac OS X Leopard 10.5 and earlier # x86 Mac OS X Leopard 10.5 and earlier
CONFIG += x86 cocoa phonon CONFIG += x86 cocoa phonon
message(Building for Mac OS X 32bit/Leopard 10.5 and earlier) message(Building for Mac OS X 32bit/Leopard 10.5 and earlier)
...@@ -71,10 +70,24 @@ macx { ...@@ -71,10 +70,24 @@ macx {
-lm -lm
ICON = $$BASEDIR/images/icons/macx.icns ICON = $$BASEDIR/images/icons/macx.icns
# Copy audio files if needed
QMAKE_PRE_LINK += cp -r $$BASEDIR/audio $$DESTDIR/qgroundcontrol.app/Contents/MacOs/.
exists(/opt/local/lib/osg):exists("/opt/local/lib/osgEarth") {
message("Building support for OSGEARTH")
LIBS += -L/opt/local/lib/
INCLUDEPATH += /opt/local/include
# Include OpenSceneGraph and osgEarth libraries
LIBS += -losg \
-losgViewer \
-losgEarth
DEFINES += QGC_OSG_ENABLED
}
} }
# GNU/Linux # GNU/Linux
linux-g++ { linux-g++-32 {
CONFIG += debug CONFIG += debug
...@@ -113,6 +126,15 @@ linux-g++ { ...@@ -113,6 +126,15 @@ linux-g++ {
-lSDL \ -lSDL \
-lSDLmain -lSDLmain
exists(/usr/lib/osg):exists(/usr/lib/osgEarth) {
message("Building support for OSGEARTH")
# Include OpenSceneGraph and osgEarth libraries
LIBS += -losg \
-losgViewer \
-losgEarth
DEFINES += QGC_OSG_ENABLED
}
QMAKE_CXXFLAGS += -Wl,-E QMAKE_CXXFLAGS += -Wl,-E
#-lflite_cmu_us_rms \ #-lflite_cmu_us_rms \
...@@ -156,6 +178,15 @@ linux-g++-64 { ...@@ -156,6 +178,15 @@ linux-g++-64 {
-lflite \ -lflite \
-lSDL \ -lSDL \
-lSDLmain -lSDLmain
exists(/usr/lib/osg):exists(/usr/lib/osgEarth) {
message("Building support for OSGEARTH")
# Include OpenSceneGraph and osgEarth libraries
LIBS += -losg \
-losgViewer \
-losgEarth
DEFINES += QGC_OSG_ENABLED
}
} }
...@@ -185,6 +216,11 @@ win32 { ...@@ -185,6 +216,11 @@ win32 {
} }
RC_FILE = $$BASEDIR/qgroundcontrol.rc RC_FILE = $$BASEDIR/qgroundcontrol.rc
# Copy dependencies
QMAKE_PRE_LINK += copy /Y $$BASEDIR/lib/sdl/SDL.dll $$BUILDDIR/debug/ & copy /Y $$BASEDIR/lib/sdl/SDL.dll $$BUILDDIR/release/
QMAKE_PRE_LINK += copy /Y $$BASEDIR/lib/sdl/SDL.dll $$BUILDDIR/debug/ & copy /Y $$BASEDIR/lib/sdl/SDL.dll $$BUILDDIR/release/
QMAKE_PRE_LINK += copy /Y audio $$BUILDDIR\debug\
} }
# Windows (64bit) # Windows (64bit)
...@@ -213,5 +249,10 @@ win64 { ...@@ -213,5 +249,10 @@ win64 {
} }
RC_FILE = $$BASEDIR/qgroundcontrol.rc RC_FILE = $$BASEDIR/qgroundcontrol.rc
# Copy dependencies
QMAKE_PRE_LINK += copy /Y $$BASEDIR/lib/sdl/SDL.dll $$BUILDDIR/debug/ & copy /Y $$BASEDIR/lib/sdl/SDL.dll $$BUILDDIR/release/
QMAKE_PRE_LINK += copy /Y $$BASEDIR/lib/sdl/SDL.dll $$BUILDDIR/debug/ & copy /Y $$BASEDIR/lib/sdl/SDL.dll $$BUILDDIR/release/
QMAKE_PRE_LINK += copy /Y audio $$BUILDDIR\debug\
} }
...@@ -33,8 +33,8 @@ QT += network \ ...@@ -33,8 +33,8 @@ QT += network \
phonon phonon
TEMPLATE = app TEMPLATE = app
TARGET = qgroundcontrol TARGET = qgroundcontrol
BASEDIR = . BASEDIR = $$IN_PWD
BUILDDIR = build BUILDDIR = $$OUT_PWD/build
LANGUAGE = C++ LANGUAGE = C++
CONFIG += debug_and_release \ CONFIG += debug_and_release \
console console
...@@ -42,9 +42,17 @@ OBJECTS_DIR = $$BUILDDIR/obj ...@@ -42,9 +42,17 @@ OBJECTS_DIR = $$BUILDDIR/obj
MOC_DIR = $$BUILDDIR/moc MOC_DIR = $$BUILDDIR/moc
UI_HEADERS_DIR = src/ui/generated UI_HEADERS_DIR = src/ui/generated
MAVLINK_CONF = "" MAVLINK_CONF = ""
# 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
exists(user_config.pri) { exists(user_config.pri) {
message("----- USING USER QGROUNDCONTROL CONFIG FROM user_config.pri -----")
include(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("------------------------------------------------------------------------")
} }
INCLUDEPATH += $$BASEDIR/../mavlink/include/common INCLUDEPATH += $$BASEDIR/../mavlink/include/common
contains(MAVLINK_CONF, pixhawk) { contains(MAVLINK_CONF, pixhawk) {
...@@ -71,11 +79,14 @@ contains(MAVLINK_CONF, ualberta) { ...@@ -71,11 +79,14 @@ contains(MAVLINK_CONF, ualberta) {
INCLUDEPATH += $$BASEDIR/../mavlink/include/ualberta INCLUDEPATH += $$BASEDIR/../mavlink/include/ualberta
DEFINES += QGC_USE_UALBERTA_MESSAGES DEFINES += QGC_USE_UALBERTA_MESSAGES
} }
contains(MAVLINK_CONF, ardupilotmega) {
# Remove the default set - it is included anyway
INCLUDEPATH -= $$BASEDIR/../mavlink/include/common
# Include OpenSceneGraph and osgEarth libraries # UALBERTA SPECIAL MESSAGES
LIBS += -losg \ INCLUDEPATH += $$BASEDIR/../mavlink/include/ardupilotmega
-losgViewer \ DEFINES += QGC_USE_ARDUPILOTMEGA_MESSAGES
-losgEarth }
# } # }
# Include general settings for MAVGround # Include general settings for MAVGround
...@@ -218,12 +229,18 @@ HEADERS += src/MG.h \ ...@@ -218,12 +229,18 @@ HEADERS += src/MG.h \
src/ui/RadioCalibration/SwitchCalibrator.h \ src/ui/RadioCalibration/SwitchCalibrator.h \
src/ui/RadioCalibration/CurveCalibrator.h \ src/ui/RadioCalibration/CurveCalibrator.h \
src/ui/RadioCalibration/AbstractCalibrator.h \ src/ui/RadioCalibration/AbstractCalibrator.h \
src/ui/map3D/Q3DWidget.h \ src/comm/QGCMAVLink.h
contains(DEPENDENCIES_PRESENT, osgearth) {
message("Including headers for OSGEARTH")
# Enable only if OpenSceneGraph is available
HEADERS += src/ui/map3D/Q3DWidget.h \
src/ui/map3D/PixhawkCheetahGeode.h \ src/ui/map3D/PixhawkCheetahGeode.h \
src/comm/QGCMAVLink.h \
src/ui/map3D/Pixhawk3DWidget.h \ src/ui/map3D/Pixhawk3DWidget.h \
src/ui/map3D/Q3DWidgetFactory.h \ src/ui/map3D/Q3DWidgetFactory.h \
src/ui/map3D/GCManipulator.h src/ui/map3D/GCManipulator.h
}
SOURCES += src/main.cc \ SOURCES += src/main.cc \
src/Core.cc \ src/Core.cc \
src/uas/UASManager.cc \ src/uas/UASManager.cc \
...@@ -294,12 +311,17 @@ SOURCES += src/main.cc \ ...@@ -294,12 +311,17 @@ SOURCES += src/main.cc \
src/ui/RadioCalibration/AbstractCalibrator.cc \ src/ui/RadioCalibration/AbstractCalibrator.cc \
src/ui/RadioCalibration/RadioCalibrationData.cc \ src/ui/RadioCalibration/RadioCalibrationData.cc \
#src/ui/WaypointGlobalView.cc \ #src/ui/WaypointGlobalView.cc \
src/ui/map3D/Q3DWidget.cc \
contains(DEPENDENCIES_PRESENT, osgearth) {
message("Including sources for OSGEARTH")
# Enable only if OpenSceneGraph is available
SOURCES += src/ui/map3D/Q3DWidget.cc \
src/ui/map3D/PixhawkCheetahGeode.cc \ src/ui/map3D/PixhawkCheetahGeode.cc \
src/ui/map3D/Pixhawk3DWidget.cc \ src/ui/map3D/Pixhawk3DWidget.cc \
src/ui/map3D/Q3DWidgetFactory.cc \ src/ui/map3D/Q3DWidgetFactory.cc \
src/ui/map3D/GCManipulator.cc src/ui/map3D/GCManipulator.cc
RESOURCES = mavground.qrc }
RESOURCES += mavground.qrc
# Include RT-LAB Library # Include RT-LAB Library
win32:exists(src/lib/opalrt/OpalApi.h):exists(C:\OPAL-RT\RT-LAB7.2.4\Common\bin) { win32:exists(src/lib/opalrt/OpalApi.h):exists(C:\OPAL-RT\RT-LAB7.2.4\Common\bin) {
......
...@@ -45,8 +45,8 @@ This file is part of the QGROUNDCONTROL project ...@@ -45,8 +45,8 @@ This file is part of the QGROUNDCONTROL project
#include <ualberta.h> #include <ualberta.h>
#endif #endif
#ifdef QGC_USE_ARDUPILOT_MESSAGES #ifdef QGC_USE_ARDUPILOTMEGA_MESSAGES
#include <ardupilot.h> #include <ardupilotmega.h>
#endif #endif
......
...@@ -45,7 +45,10 @@ This file is part of the QGROUNDCONTROL project ...@@ -45,7 +45,10 @@ This file is part of the QGROUNDCONTROL project
#include "MainWindow.h" #include "MainWindow.h"
#include "JoystickWidget.h" #include "JoystickWidget.h"
#include "GAudioOutput.h" #include "GAudioOutput.h"
#ifdef QGC_OSG_ENABLED
#include "Q3DWidgetFactory.h" #include "Q3DWidgetFactory.h"
#endif
// FIXME Move // FIXME Move
#include "PxQuadMAV.h" #include "PxQuadMAV.h"
...@@ -132,7 +135,9 @@ void MainWindow::buildWidgets() ...@@ -132,7 +135,9 @@ void MainWindow::buildWidgets()
mapWidget = new MapWidget(this); mapWidget = new MapWidget(this);
protocolWidget = new XMLCommProtocolWidget(this); protocolWidget = new XMLCommProtocolWidget(this);
dataplotWidget = new QGCDataPlot2D(this); dataplotWidget = new QGCDataPlot2D(this);
#ifdef QGC_OSG_ENABLED
_3DWidget = Q3DWidgetFactory::get("PIXHAWK"); _3DWidget = Q3DWidgetFactory::get("PIXHAWK");
#endif
// Dock widgets // Dock widgets
controlDockWidget = new QDockWidget(tr("Control"), this); controlDockWidget = new QDockWidget(tr("Control"), this);
...@@ -224,7 +229,9 @@ void MainWindow::arrangeCenterStack() ...@@ -224,7 +229,9 @@ void MainWindow::arrangeCenterStack()
if (linechartWidget) centerStack->addWidget(linechartWidget); if (linechartWidget) centerStack->addWidget(linechartWidget);
if (protocolWidget) centerStack->addWidget(protocolWidget); if (protocolWidget) centerStack->addWidget(protocolWidget);
if (mapWidget) centerStack->addWidget(mapWidget); if (mapWidget) centerStack->addWidget(mapWidget);
#ifdef QGC_OSG_ENABLED
if (_3DWidget) centerStack->addWidget(_3DWidget); if (_3DWidget) centerStack->addWidget(_3DWidget);
#endif
if (hudWidget) centerStack->addWidget(hudWidget); if (hudWidget) centerStack->addWidget(hudWidget);
if (dataplotWidget) centerStack->addWidget(dataplotWidget); if (dataplotWidget) centerStack->addWidget(dataplotWidget);
...@@ -664,6 +671,7 @@ void MainWindow::loadPixhawkView() ...@@ -664,6 +671,7 @@ void MainWindow::loadPixhawkView()
clearView(); clearView();
// Engineer view, used in EMAV2009 // Engineer view, used in EMAV2009
#ifdef QGC_OSG_ENABLED
// 3D map // 3D map
if (_3DWidget) if (_3DWidget)
{ {
...@@ -674,6 +682,7 @@ void MainWindow::loadPixhawkView() ...@@ -674,6 +682,7 @@ void MainWindow::loadPixhawkView()
centerStack->setCurrentWidget(_3DWidget); centerStack->setCurrentWidget(_3DWidget);
} }
} }
#endif
// UAS CONTROL // UAS CONTROL
if (controlDockWidget) if (controlDockWidget)
...@@ -952,6 +961,7 @@ void MainWindow::loadGlobalOperatorView() ...@@ -952,6 +961,7 @@ void MainWindow::loadGlobalOperatorView()
void MainWindow::load3DView() void MainWindow::load3DView()
{ {
#ifdef QGC_OSG_ENABLED
clearView(); clearView();
// 3D map // 3D map
...@@ -997,8 +1007,9 @@ void MainWindow::load3DView() ...@@ -997,8 +1007,9 @@ void MainWindow::load3DView()
hsiDockWidget->show(); hsiDockWidget->show();
} }
} }
#endif
this->show(); this->show();
} }
void MainWindow::loadEngineerView() void MainWindow::loadEngineerView()
......
...@@ -63,7 +63,9 @@ This file is part of the QGROUNDCONTROL project ...@@ -63,7 +63,9 @@ This file is part of the QGROUNDCONTROL project
#include "HSIDisplay.h" #include "HSIDisplay.h"
#include "QGCDataPlot2D.h" #include "QGCDataPlot2D.h"
#include "QGCRemoteControlView.h" #include "QGCRemoteControlView.h"
#ifdef QGC_OSG_ENABLED
#include "Q3DWidget.h" #include "Q3DWidget.h"
#endif
#include "LogCompressor.h" #include "LogCompressor.h"
...@@ -163,7 +165,9 @@ protected: ...@@ -163,7 +165,9 @@ protected:
QPointer<MapWidget> mapWidget; QPointer<MapWidget> mapWidget;
QPointer<XMLCommProtocolWidget> protocolWidget; QPointer<XMLCommProtocolWidget> protocolWidget;
QPointer<QGCDataPlot2D> dataplotWidget; QPointer<QGCDataPlot2D> dataplotWidget;
#ifdef QGC_OSG_ENABLED
QPointer<Q3DWidget> _3DWidget; QPointer<Q3DWidget> _3DWidget;
#endif
// Dock widgets // Dock widgets
QPointer<QDockWidget> controlDockWidget; QPointer<QDockWidget> controlDockWidget;
QPointer<QDockWidget> infoDockWidget; QPointer<QDockWidget> infoDockWidget;
......
...@@ -34,6 +34,7 @@ This file is part of the QGROUNDCONTROL project ...@@ -34,6 +34,7 @@ This file is part of the QGROUNDCONTROL project
#include <QtOpenGL> #include <QtOpenGL>
#include <osg/LineSegment> #include <osg/LineSegment>
#include <osg/PositionAttitudeTransform> #include <osg/PositionAttitudeTransform>
#include <osgGA/TrackballManipulator> #include <osgGA/TrackballManipulator>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment