diff --git a/qgcunittest.pro b/qgcunittest.pro
index b8b8a5d564e2a318327f50c45d160f652e402aa2..f7f3ed26e0ccd462f3f1ed8c00e84588713d14af 100644
--- a/qgcunittest.pro
+++ b/qgcunittest.pro
@@ -18,607 +18,18 @@
 # -------------------------------------------------
 
 
-# Qt configuration
-CONFIG += qt \
-    thread \
-    console
-QT += network \
-    opengl \
-    svg \
-    xml \
-    phonon \
-    webkit \
-    sql \
-    testlib \
-
-TEMPLATE = app
 TARGET = qgcunittest
-BASEDIR = $${IN_PWD}
-TESTDIR = $$BASEDIR/src/qgcunittest
-linux-g++|linux-g++-64{
-    debug {
-        TARGETDIR = $${OUT_PWD}/debug
-        BUILDDIR = $${OUT_PWD}/build-debug
-    }
-    release {
-        TARGETDIR = $${OUT_PWD}/release
-        BUILDDIR = $${OUT_PWD}/build-release
-    }
-} else {
-    TARGETDIR = $${OUT_PWD}
-    BUILDDIR = $${OUT_PWD}/build
-}
-LANGUAGE = C++
-OBJECTS_DIR = $${BUILDDIR}/obj
-MOC_DIR = $${BUILDDIR}/moc
-UI_DIR = $${BUILDDIR}/ui
-RCC_DIR = $${BUILDDIR}/rcc
-MAVLINK_CONF = ""
-MAVLINKPATH = $$BASEDIR/libs/mavlink/include/mavlink/v1.0
-DEFINES += MAVLINK_NO_DATA
-
-win32 {
-    QMAKE_INCDIR_QT = $$(QTDIR)/include
-    QMAKE_LIBDIR_QT = $$(QTDIR)/lib
-    QMAKE_UIC = "$$(QTDIR)/bin/uic.exe"
-    QMAKE_MOC = "$$(QTDIR)/bin/moc.exe"
-    QMAKE_RCC = "$$(QTDIR)/bin/rcc.exe"
-    QMAKE_QMAKE = "$$(QTDIR)/bin/qmake.exe"
-	# Build QAX for GoogleEarth API access
-	!exists( $(QTDIR)/src/activeqt/Makefile ) {
-		message( Making QAx (ONE TIME) )
-		system( cd $$(QTDIR)\\src\\activeqt && $$(QTDIR)\\bin\\qmake.exe )
-		system( cd $$(QTDIR)\\src\\activeqt\\container && $$(QTDIR)\\bin\\qmake.exe )
-		system( cd $$(QTDIR)\\src\\activeqt\\control && $$(QTDIR)\\bin\\qmake.exe )
-	}
-}
-
-
-
-#################################################################
-# EXTERNAL LIBRARY CONFIGURATION
-
-# EIGEN matrix library (header-only)
-INCLUDEPATH += libs/eigen
-
-# 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
-
-# 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) { 
-    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 += $$MAVLINKPATH
-isEmpty(MAVLINK_CONF) { 
-    INCLUDEPATH += $$MAVLINKPATH/common
-} else {
-    INCLUDEPATH += $$MAVLINKPATH/$$MAVLINK_CONF
-    #DEFINES += 'MAVLINK_CONF="$${MAVLINK_CONF}.h"'
-    DEFINES += $$sprintf('QGC_USE_%1_MESSAGES', $$upper($$MAVLINK_CONF))
-}
-
-# Include general settings for QGroundControl
-# necessary as last include to override any non-acceptable settings
-# done by the plugins above
-include(qgroundcontrol.pri)
-# Reset QMAKE_POST_LINK to prevent file copy operations
-QMAKE_POST_LINK = ""
-
-# Include MAVLink generator
-# has been deprecated
-DEPENDPATH += \
-    src/apps/mavlinkgen
-
-INCLUDEPATH += \
-    src/apps/mavlinkgen \
-    src/apps/mavlinkgen/ui \
-    src/apps/mavlinkgen/generator
-
-include(src/apps/mavlinkgen/mavlinkgen.pri)
-
+QT += testlib
 
+QGCS_UNITTEST_OVERRIDE = true
+include (qgroundcontrol.pro)
 
-# Include QWT plotting library
-include(libs/qwt/qwt.pri)
-DEPENDPATH += . \
-    plugins \
-    libs/thirdParty/qserialport/include \
-    libs/thirdParty/qserialport/include/QtSerialPort \
-    libs/thirdParty/qserialport \
-    libs/qextserialport
-
-INCLUDEPATH += . \
-    libs/thirdParty/qserialport/include \
-    libs/thirdParty/qserialport/include/QtSerialPort \
-    libs/thirdParty/qserialport/src \
-    libs/qextserialport
-
-# Include serial port library (QSerial)
-include(qserialport.pri)
-
-# Serial port detection (ripped-off from qextserialport library)
-macx|macx-g++|macx-g++42::SOURCES += libs/qextserialport/qextserialenumerator_osx.cpp
-linux-g++::SOURCES += libs/qextserialport/qextserialenumerator_unix.cpp
-linux-g++-64::SOURCES += libs/qextserialport/qextserialenumerator_unix.cpp
-win32::SOURCES += libs/qextserialport/qextserialenumerator_win.cpp
-win32-msvc2008|win32-msvc2010::SOURCES += libs/qextserialport/qextserialenumerator_win.cpp
-
-# Input
-FORMS += src/ui/MainWindow.ui \
-    src/ui/CommSettings.ui \
-    src/ui/SerialSettings.ui \
-    src/ui/UASControl.ui \
-    src/ui/UASList.ui \
-    src/ui/UASInfo.ui \
-    src/ui/Linechart.ui \
-    src/ui/UASView.ui \
-    src/ui/ParameterInterface.ui \
-    src/ui/WaypointList.ui \    
-    src/ui/ObjectDetectionView.ui \
-    src/ui/JoystickWidget.ui \
-    src/ui/DebugConsole.ui \
-    src/ui/HDDisplay.ui \
-    src/ui/MAVLinkSettingsWidget.ui \
-    src/ui/AudioOutputWidget.ui \
-    src/ui/QGCSensorSettingsWidget.ui \
-    src/ui/watchdog/WatchdogControl.ui \
-    src/ui/watchdog/WatchdogProcessView.ui \
-    src/ui/watchdog/WatchdogView.ui \
-    src/ui/QGCFirmwareUpdate.ui \
-    src/ui/QGCPxImuFirmwareUpdate.ui \
-    src/ui/QGCDataPlot2D.ui \
-    src/ui/QGCRemoteControlView.ui \
-    src/ui/QMap3D.ui \
-    src/ui/QGCWebView.ui \
-    src/ui/map3D/QGCGoogleEarthView.ui \
-    src/ui/SlugsDataSensorView.ui \
-    src/ui/SlugsHilSim.ui \
-    src/ui/SlugsPadCameraControl.ui \
-    src/ui/uas/QGCUnconnectedInfoWidget.ui \
-    src/ui/designer/QGCToolWidget.ui \
-    src/ui/designer/QGCParamSlider.ui \
-    src/ui/designer/QGCActionButton.ui \
-    src/ui/designer/QGCCommandButton.ui \
-    src/ui/QGCMAVLinkLogPlayer.ui \
-    src/ui/QGCWaypointListMulti.ui \
-    src/ui/QGCUDPLinkConfiguration.ui \
-    src/ui/QGCTCPLinkConfiguration.ui \
-    src/ui/QGCSettingsWidget.ui \
-    src/ui/UASControlParameters.ui \
-    src/ui/map/QGCMapTool.ui \
-    src/ui/map/QGCMapToolBar.ui \
-    src/ui/QGCMAVLinkInspector.ui \
-    src/ui/WaypointViewOnlyView.ui \    
-    src/ui/WaypointEditableView.ui \    
-    src/ui/UnconnectedUASInfoWidget.ui \
-    src/ui/mavlink/QGCMAVLinkMessageSender.ui \
-    src/ui/firmwareupdate/QGCFirmwareUpdateWidget.ui \
-    src/ui/QGCPluginHost.ui \
-    src/ui/firmwareupdate/QGCPX4FirmwareUpdate.ui \
-    src/ui/mission/QGCMissionOther.ui \
-    src/ui/mission/QGCMissionNavWaypoint.ui \
-    src/ui/mission/QGCMissionDoJump.ui \
-    src/ui/mission/QGCMissionConditionDelay.ui \
-    src/ui/mission/QGCMissionNavLoiterUnlim.ui \
-    src/ui/mission/QGCMissionNavLoiterTurns.ui \
-    src/ui/mission/QGCMissionNavLoiterTime.ui \
-    src/ui/mission/QGCMissionNavReturnToLaunch.ui \
-    src/ui/mission/QGCMissionNavLand.ui \
-    src/ui/mission/QGCMissionNavTakeoff.ui \
+TESTDIR = $$BASEDIR/src/qgcunittest
 
-INCLUDEPATH += src \
-    src/ui \
-    src/ui/linechart \
-    src/ui/uas \
-    src/ui/map \
-    src/uas \
-    src/comm \
-    include/ui \
-    src/input \
-    src/lib/qmapcontrol \
-    src/ui/mavlink \
-    src/ui/param \
-    src/ui/watchdog \
-    src/ui/map3D \
-    src/ui/mission \
-    src/ui/designer
-HEADERS += src/MG.h \
-    src/QGCCore.h \
-    src/uas/UASInterface.h \
-    src/uas/UAS.h \
-    src/uas/UASManager.h \
-    src/comm/LinkManager.h \
-    src/comm/LinkInterface.h \
-    src/comm/SerialLinkInterface.h \
-    src/comm/SerialLink.h \
-    src/comm/ProtocolInterface.h \
-    src/comm/MAVLinkProtocol.h \
-    src/comm/QGCFlightGearLink.h \
-    src/ui/CommConfigurationWindow.h \
-    src/ui/SerialConfigurationWindow.h \
-    src/ui/MainWindow.h \
-    src/ui/uas/UASControlWidget.h \
-    src/ui/uas/UASListWidget.h \
-    src/ui/uas/UASInfoWidget.h \
-    src/ui/HUD.h \
-    src/ui/linechart/LinechartWidget.h \
-    src/ui/linechart/LinechartPlot.h \
-    src/ui/linechart/Scrollbar.h \
-    src/ui/linechart/ScrollZoomer.h \
-    src/configuration.h \
-    src/ui/uas/UASView.h \
-    src/ui/CameraView.h \
-    src/comm/MAVLinkSimulationLink.h \
-    src/comm/UDPLink.h \
-    src/ui/ParameterInterface.h \
-    src/ui/WaypointList.h \
-    src/Waypoint.h \   
-    src/ui/ObjectDetectionView.h \
-    src/input/JoystickInput.h \
-    src/ui/JoystickWidget.h \
-    src/ui/DebugConsole.h \
-    src/ui/HDDisplay.h \
-    src/ui/MAVLinkSettingsWidget.h \
-    src/ui/AudioOutputWidget.h \
-    src/GAudioOutput.h \
-    src/LogCompressor.h \
-    src/ui/QGCParamWidget.h \
-    src/ui/QGCSensorSettingsWidget.h \
-    src/ui/linechart/Linecharts.h \
-    src/uas/SlugsMAV.h \
-    src/uas/PxQuadMAV.h \
-    src/uas/ArduPilotMegaMAV.h \
-    src/uas/senseSoarMAV.h \
-    src/ui/watchdog/WatchdogControl.h \
-    src/ui/watchdog/WatchdogProcessView.h \
-    src/ui/watchdog/WatchdogView.h \
-    src/uas/UASWaypointManager.h \
-    src/ui/HSIDisplay.h \
-    src/QGC.h \
-    src/ui/QGCFirmwareUpdate.h \
-    src/ui/QGCPxImuFirmwareUpdate.h \
-    src/ui/QGCDataPlot2D.h \
-    src/ui/linechart/IncrementalPlot.h \
-    src/ui/QGCRemoteControlView.h \
-    src/ui/RadioCalibration/RadioCalibrationData.h \
-    src/ui/RadioCalibration/RadioCalibrationWindow.h \
-    src/ui/RadioCalibration/AirfoilServoCalibrator.h \
-    src/ui/RadioCalibration/SwitchCalibrator.h \
-    src/ui/RadioCalibration/CurveCalibrator.h \
-    src/ui/RadioCalibration/AbstractCalibrator.h \
-    src/comm/QGCMAVLink.h \
-    src/ui/QGCWebView.h \
-    src/ui/map3D/QGCWebPage.h \
-    src/ui/map3D/PixhawkCheetahNode.cc \
-    src/ui/SlugsDataSensorView.h \
-    src/ui/SlugsHilSim.h \
-    src/ui/SlugsPadCameraControl.h \
-    src/ui/QGCMainWindowAPConfigurator.h \
-    src/comm/MAVLinkSwarmSimulationLink.h \
-    src/ui/uas/QGCUnconnectedInfoWidget.h \
-    src/ui/designer/QGCToolWidget.h \
-    src/ui/designer/QGCParamSlider.h \
-    src/ui/designer/QGCCommandButton.h \
-    src/ui/designer/QGCToolWidgetItem.h \
-    src/ui/QGCMAVLinkLogPlayer.h \
-    src/comm/MAVLinkSimulationWaypointPlanner.h \
-    src/comm/MAVLinkSimulationMAV.h \
-    src/uas/QGCMAVLinkUASFactory.h \
-    src/ui/QGCWaypointListMulti.h \
-    src/ui/QGCUDPLinkConfiguration.h \
-    src/ui/QGCTCPLinkConfiguration.h \
-    src/ui/QGCSettingsWidget.h \
-    src/ui/uas/UASControlParameters.h \
-    src/uas/QGCUASParamManager.h \
-    src/ui/map/QGCMapWidget.h \
-    src/ui/map/MAV2DIcon.h \
-    src/ui/map/Waypoint2DIcon.h \
-    src/ui/map/QGCMapTool.h \
-    src/ui/map/QGCMapToolBar.h \
-    src/ui/mission/QGCMissionOther.h \
-    src/ui/mission/QGCMissionConditionDelay.h \
-    src/ui/mission/QGCMissionDoJump.h \
-    src/ui/mission/QGCMissionNavReturnToLaunch.h \
-    src/ui/mission/QGCMissionNavLoiterUnlim.h \
-    src/ui/mission/QGCMissionNavLoiterTurns.h \
-    src/ui/mission/QGCMissionNavTakeoff.h \
-    src/ui/mission/QGCMissionNavLand.h \
-    src/ui/mission/QGCMissionNavWaypoint.h \
-    src/ui/mission/QGCMissionNavLoiterTime.h \
-    libs/qextserialport/qextserialenumerator.h \
-    src/QGCGeo.h \
-    src/ui/QGCToolBar.h \
-    src/ui/QGCMAVLinkInspector.h \
-    src/ui/MAVLinkDecoder.h \
-    src/ui/WaypointViewOnlyView.h \
-    src/ui/WaypointViewOnlyView.h \
-    src/ui/WaypointEditableView.h \    
-    src/ui/UnconnectedUASInfoWidget.h \
-    src/ui/QGCRGBDView.h \
-    src/ui/mavlink/QGCMAVLinkMessageSender.h \
-    src/ui/firmwareupdate/QGCFirmwareUpdateWidget.h \
-    src/ui/QGCPluginHost.h \
-    src/ui/firmwareupdate/QGCPX4FirmwareUpdate.h \
-    src/ui/mission/QGCMissionOther.h \
-    src/ui/mission/QGCMissionNavWaypoint.h \
-    src/ui/mission/QGCMissionDoJump.h \
-    src/ui/mission/QGCMissionConditionDelay.h \
-    src/ui/mission/QGCMissionNavLoiterUnlim.h \
-    src/ui/mission/QGCMissionNavLoiterTurns.h \
-    src/ui/mission/QGCMissionNavLoiterTime.h \
-    src/ui/mission/QGCMissionNavReturnToLaunch.h \
-    src/ui/mission/QGCMissionNavLand.h \
-    src/ui/mission/QGCMissionNavTakeoff.h \
+HEADERS += \
     $$TESTDIR/AutoTest.h \
     $$TESTDIR/UASUnitTest.h \
 
-# Google Earth is only supported on Mac OS and Windows with Visual Studio Compiler
-macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010::HEADERS += src/ui/map3D/QGCGoogleEarthView.h
-
-contains(DEPENDENCIES_PRESENT, osg) { 
-    message("Including headers for OpenSceneGraph")
-    
-    # Enable only if OpenSceneGraph is available
-    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/PixhawkCheetahGeode.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
-}
-contains(DEPENDENCIES_PRESENT, protobuf):contains(MAVLINK_CONF, pixhawk) {
-    message("Including headers for Protocol Buffers")
-
-    # Enable only if protobuf is available
-    HEADERS += libs/mavlink/include/v1.0/pixhawk/pixhawk.pb.h \
-        src/ui/map3D/ObstacleGroupNode.h \
-        src/ui/map3D/GLOverlayGeode.h
-}
-contains(DEPENDENCIES_PRESENT, libfreenect) { 
-    message("Including headers for libfreenect")
-    
-    # Enable only if libfreenect is available
-    HEADERS += src/input/Freenect.h
-}
-
-SOURCES += src/QGCCore.cc \
-    src/uas/UASManager.cc \
-    src/uas/UAS.cc \
-    src/comm/LinkManager.cc \
-    src/comm/LinkInterface.cpp \
-    src/comm/SerialLink.cc \
-    src/comm/MAVLinkProtocol.cc \
-    src/comm/QGCFlightGearLink.cc \
-    src/ui/CommConfigurationWindow.cc \
-    src/ui/SerialConfigurationWindow.cc \
-    src/ui/MainWindow.cc \
-    src/ui/uas/UASControlWidget.cc \
-    src/ui/uas/UASListWidget.cc \
-    src/ui/uas/UASInfoWidget.cc \
-    src/ui/HUD.cc \
-    src/ui/linechart/LinechartWidget.cc \
-    src/ui/linechart/LinechartPlot.cc \
-    src/ui/linechart/Scrollbar.cc \
-    src/ui/linechart/ScrollZoomer.cc \
-    src/ui/uas/UASView.cc \
-    src/ui/CameraView.cc \
-    src/comm/MAVLinkSimulationLink.cc \
-    src/comm/UDPLink.cc \
-    src/ui/ParameterInterface.cc \
-    src/ui/WaypointList.cc \
-    src/Waypoint.cc \
-    src/ui/ObjectDetectionView.cc \
-    src/input/JoystickInput.cc \
-    src/ui/JoystickWidget.cc \
-    src/ui/DebugConsole.cc \
-    src/ui/HDDisplay.cc \
-    src/ui/MAVLinkSettingsWidget.cc \
-    src/ui/AudioOutputWidget.cc \
-    src/GAudioOutput.cc \
-    src/LogCompressor.cc \
-    src/ui/QGCParamWidget.cc \
-    src/ui/QGCSensorSettingsWidget.cc \
-    src/ui/linechart/Linecharts.cc \
-    src/uas/SlugsMAV.cc \
-    src/uas/PxQuadMAV.cc \
-    src/uas/ArduPilotMegaMAV.cc \
-    src/uas/senseSoarMAV.cpp \
-    src/ui/watchdog/WatchdogControl.cc \
-    src/ui/watchdog/WatchdogProcessView.cc \
-    src/ui/watchdog/WatchdogView.cc \
-    src/uas/UASWaypointManager.cc \
-    src/ui/HSIDisplay.cc \
-    src/QGC.cc \
-    src/ui/QGCFirmwareUpdate.cc \
-    src/ui/QGCPxImuFirmwareUpdate.cc \
-    src/ui/QGCDataPlot2D.cc \
-    src/ui/linechart/IncrementalPlot.cc \
-    src/ui/QGCRemoteControlView.cc \
-    src/ui/RadioCalibration/RadioCalibrationWindow.cc \
-    src/ui/RadioCalibration/AirfoilServoCalibrator.cc \
-    src/ui/RadioCalibration/SwitchCalibrator.cc \
-    src/ui/RadioCalibration/CurveCalibrator.cc \
-    src/ui/RadioCalibration/AbstractCalibrator.cc \
-    src/ui/RadioCalibration/RadioCalibrationData.cc \
-    src/ui/QGCWebView.cc \
-    src/ui/map3D/QGCWebPage.cc \
-    src/ui/SlugsDataSensorView.cc \
-    src/ui/SlugsHilSim.cc \
-    src/ui/SlugsPadCameraControl.cpp \
-    src/ui/QGCMainWindowAPConfigurator.cc \
-    src/comm/MAVLinkSwarmSimulationLink.cc \
-    src/ui/uas/QGCUnconnectedInfoWidget.cc \
-    src/ui/designer/QGCToolWidget.cc \
-    src/ui/designer/QGCParamSlider.cc \
-    src/ui/designer/QGCCommandButton.cc \
-    src/ui/designer/QGCToolWidgetItem.cc \
-    src/ui/QGCMAVLinkLogPlayer.cc \
-    src/comm/MAVLinkSimulationWaypointPlanner.cc \
-    src/comm/MAVLinkSimulationMAV.cc \
-    src/uas/QGCMAVLinkUASFactory.cc \
-    src/ui/QGCWaypointListMulti.cc \
-    src/ui/QGCUDPLinkConfiguration.cc \
-    src/ui/QGCTCPLinkConfiguration.cc \
-    src/ui/QGCSettingsWidget.cc \
-    src/ui/uas/UASControlParameters.cpp \
-    src/uas/QGCUASParamManager.cc \
-    src/ui/map/QGCMapWidget.cc \
-    src/ui/map/MAV2DIcon.cc \
-    src/ui/map/Waypoint2DIcon.cc \
-    src/ui/map/QGCMapTool.cc \
-    src/ui/map/QGCMapToolBar.cc \
-    src/ui/mission/QGCMissionOther.cc \
-    src/ui/mission/QGCMissionConditionDelay.cc \
-    src/ui/mission/QGCMissionDoJump.cc \
-    src/ui/mission/QGCMissionNavReturnToLaunch.cc \
-    src/ui/mission/QGCMissionNavLoiterUnlim.cc \
-    src/ui/mission/QGCMissionNavLoiterTurns.cc \
-    src/ui/mission/QGCMissionNavTakeoff.cc \
-    src/ui/mission/QGCMissionNavLand.cc \
-    src/ui/mission/QGCMissionNavWaypoint.cc \
-    src/ui/mission/QGCMissionNavLoiterTime.cc \
-    src/ui/QGCToolBar.cc \
-    src/ui/QGCMAVLinkInspector.cc \
-    src/ui/MAVLinkDecoder.cc \
-    src/ui/WaypointViewOnlyView.cc \
-    src/ui/WaypointEditableView.cc \
-    src/ui/UnconnectedUASInfoWidget.cc \
-    src/ui/QGCRGBDView.cc \
-    src/ui/mavlink/QGCMAVLinkMessageSender.cc \
-    src/ui/firmwareupdate/QGCFirmwareUpdateWidget.cc \
-    src/ui/QGCPluginHost.cc \
-    src/ui/firmwareupdate/QGCPX4FirmwareUpdate.cc \
+SOURCES += \
     $$TESTDIR/testSuite.cc \
-    $$TESTDIR/UASUnitTest.cc
-
-# Enable Google Earth only on Mac OS and Windows with Visual Studio compiler
-macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010::SOURCES += src/ui/map3D/QGCGoogleEarthView.cc
-
-# Enable OSG only if it has been found
-contains(DEPENDENCIES_PRESENT, osg) { 
-    message("Including sources for OpenSceneGraph")
-    
-    # Enable only if OpenSceneGraph is available
-    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
-
-    contains(DEPENDENCIES_PRESENT, osgearth) { 
-        message("Including sources for osgEarth")
-        
-        # Enable only if OpenSceneGraph is available
-        SOURCES += src/ui/map3D/QMap3D.cc
-    }
-}
-contains(DEPENDENCIES_PRESENT, protobuf):contains(MAVLINK_CONF, pixhawk) {
-    message("Including sources for Protocol Buffers")
-
-    # Enable only if protobuf is available
-    SOURCES += libs/mavlink/share/mavlink/src/v1.0/pixhawk/pixhawk.pb.cc \
-        src/ui/map3D/ObstacleGroupNode.cc \
-        src/ui/map3D/GLOverlayGeode.cc
-}
-contains(DEPENDENCIES_PRESENT, libfreenect) { 
-    message("Including sources for libfreenect")
-    
-    # Enable only if libfreenect is available
-    SOURCES += src/input/Freenect.cc
-}
-
-# Add icons and other resources
-RESOURCES += qgroundcontrol.qrc
-
-# Include RT-LAB Library
-win32:exists(src/lib/opalrt/OpalApi.h):exists(C:/OPAL-RT/RT-LAB7.2.4/Common/bin) { 
-    message("Building support for Opal-RT")
-    LIBS += -LC:/OPAL-RT/RT-LAB7.2.4/Common/bin \
-        -lOpalApi
-    INCLUDEPATH += src/lib/opalrt
-    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
-    FORMS += src/ui/OpalLinkSettings.ui
-    DEFINES += OPAL_RT
-}
-TRANSLATIONS += es-MX.ts \
-    en-US.ts
-
-# xbee support
-# libxbee only supported by linux and windows systems
-win32-msvc2008|win32-msvc2010|linux {
-    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
-    DEFINES += XBEELINK
-    INCLUDEPATH += libs/thirdParty/libxbee
-# TO DO: build library when it does not exist already
-    LIBS += -Llibs/thirdParty/libxbee/lib \
-        -llibxbee
-}
+    $$TESTDIR/UASUnitTest.cc
\ No newline at end of file
diff --git a/qgroundcontrol.pri b/qgroundcontrol.pri
index a7599d7c51d24cdd46968a7ff79667ba4636598f..859a4ee777432b931c2c2db8793e58bbb9858d20 100644
--- a/qgroundcontrol.pri
+++ b/qgroundcontrol.pri
@@ -56,76 +56,76 @@ macx|macx-g++42|macx-g++|macx-llvm: {
 	ICON = $$BASEDIR/files/images/icons/macx.icns
 
     # Copy application resources
-    for(COPY_DIR, COPY_RESOURCE_LIST):QMAKE_POST_LINK += && cp -rf $${COPY_DIR} $$TARGETDIR/qgroundcontrol.app/Contents/MacOS
+    for(COPY_DIR, COPY_RESOURCE_LIST):QMAKE_POST_LINK += && cp -rf $${COPY_DIR} $$TARGETDIR/$${TARGET}.app/Contents/MacOS
 
         # Copy MAVLink
-        QMAKE_POST_LINK += && cp -rf $$BASEDIR/libs/mavlink $$TARGETDIR/qgroundcontrol.app/Contents/MacOS
+        QMAKE_POST_LINK += && cp -rf $$BASEDIR/libs/mavlink $$TARGETDIR/$${TARGET}.app/Contents/MacOS
 	# Copy libraries
-        QMAKE_POST_LINK += && mkdir -p $$TARGETDIR/qgroundcontrol.app/Contents/libs
-        QMAKE_POST_LINK += && cp -rf $$BASEDIR/libs/lib/mac64/lib/* $$TARGETDIR/qgroundcontrol.app/Contents/libs
+        QMAKE_POST_LINK += && mkdir -p $$TARGETDIR/$${TARGET}.app/Contents/libs
+        QMAKE_POST_LINK += && cp -rf $$BASEDIR/libs/lib/mac64/lib/* $$TARGETDIR/$${TARGET}.app/Contents/libs
         # Copy frameworks
-        QMAKE_POST_LINK += && mkdir -p $$TARGETDIR/qgroundcontrol.app/Contents/Frameworks
-        QMAKE_POST_LINK += && cp -rf $$BASEDIR/libs/lib/Frameworks/* $$TARGETDIR/qgroundcontrol.app/Contents/Frameworks
+        QMAKE_POST_LINK += && mkdir -p $$TARGETDIR/$${TARGET}.app/Contents/Frameworks
+        QMAKE_POST_LINK += && cp -rf $$BASEDIR/libs/lib/Frameworks/* $$TARGETDIR/$${TARGET}.app/Contents/Frameworks
 
 
 	# Fix library paths inside executable
-        QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/MacOS/qgroundcontrol
-        QMAKE_POST_LINK += && install_name_tool -change libosg.dylib "@executable_path/../libs/libosg.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/MacOS/qgroundcontrol
-        QMAKE_POST_LINK += && install_name_tool -change libosgViewer.dylib "@executable_path/../libs/libosgViewer.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/MacOS/qgroundcontrol
-        QMAKE_POST_LINK += && install_name_tool -change libosgGA.dylib "@executable_path/../libs/libosgGA.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/MacOS/qgroundcontrol
-        QMAKE_POST_LINK += && install_name_tool -change libosgDB.dylib "@executable_path/../libs/libosgDB.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/MacOS/qgroundcontrol
-        QMAKE_POST_LINK += && install_name_tool -change libosgText.dylib "@executable_path/../libs/libosgText.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/MacOS/qgroundcontrol
-        QMAKE_POST_LINK += && install_name_tool -change libosgWidget.dylib "@executable_path/../libs/libosgWidget.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/MacOS/qgroundcontrol
+        QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/$${TARGET}.app/Contents/MacOS/$${TARGET}
+        QMAKE_POST_LINK += && install_name_tool -change libosg.dylib "@executable_path/../libs/libosg.dylib" $$TARGETDIR/$${TARGET}.app/Contents/MacOS/$${TARGET}
+        QMAKE_POST_LINK += && install_name_tool -change libosgViewer.dylib "@executable_path/../libs/libosgViewer.dylib" $$TARGETDIR/$${TARGET}.app/Contents/MacOS/$${TARGET}
+        QMAKE_POST_LINK += && install_name_tool -change libosgGA.dylib "@executable_path/../libs/libosgGA.dylib" $$TARGETDIR/$${TARGET}.app/Contents/MacOS/$${TARGET}
+        QMAKE_POST_LINK += && install_name_tool -change libosgDB.dylib "@executable_path/../libs/libosgDB.dylib" $$TARGETDIR/$${TARGET}.app/Contents/MacOS/$${TARGET}
+        QMAKE_POST_LINK += && install_name_tool -change libosgText.dylib "@executable_path/../libs/libosgText.dylib" $$TARGETDIR/$${TARGET}.app/Contents/MacOS/$${TARGET}
+        QMAKE_POST_LINK += && install_name_tool -change libosgWidget.dylib "@executable_path/../libs/libosgWidget.dylib" $$TARGETDIR/$${TARGET}.app/Contents/MacOS/$${TARGET}
 
 	# Fix library paths within libraries (inter-library dependencies)
 
 	# OSG GA LIBRARY
-        QMAKE_POST_LINK += && install_name_tool -change libosgGA.dylib "@executable_path/../libs/libosgGA.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgGA.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosgDB.dylib "@executable_path/../libs/libosgDB.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgGA.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosgUtil.dylib "@executable_path/../libs/libosgUtil.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgGA.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosg.dylib "@executable_path/../libs/libosg.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgGA.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgGA.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgGA.dylib "@executable_path/../libs/libosgGA.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgGA.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgDB.dylib "@executable_path/../libs/libosgDB.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgGA.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgUtil.dylib "@executable_path/../libs/libosgUtil.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgGA.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosg.dylib "@executable_path/../libs/libosg.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgGA.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgGA.dylib
 
 	# OSG DB LIBRARY
-        QMAKE_POST_LINK += && install_name_tool -change libosgDB.dylib "@executable_path/../libs/libosgDB.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgDB.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosgUtil.dylib "@executable_path/../libs/libosgUtil.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgDB.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosg.dylib "@executable_path/../libs/libosg.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgDB.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgDB.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgDB.dylib "@executable_path/../libs/libosgDB.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgDB.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgUtil.dylib "@executable_path/../libs/libosgUtil.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgDB.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosg.dylib "@executable_path/../libs/libosg.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgDB.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgDB.dylib
 
 	# OSG TEXT LIBRARY
-        QMAKE_POST_LINK += && install_name_tool -change libosgText.dylib "@executable_path/../libs/libosgText.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgText.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosgDB.dylib "@executable_path/../libs/libosgDB.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgText.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosgUtil.dylib "@executable_path/../libs/libosgUtil.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgText.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosg.dylib "@executable_path/../libs/libosg.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgText.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgText.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgText.dylib "@executable_path/../libs/libosgText.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgText.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgDB.dylib "@executable_path/../libs/libosgDB.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgText.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgUtil.dylib "@executable_path/../libs/libosgUtil.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgText.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosg.dylib "@executable_path/../libs/libosg.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgText.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgText.dylib
 
 	# OSG UTIL LIBRARY
-        QMAKE_POST_LINK += && install_name_tool -change libosg.dylib "@executable_path/../libs/libosg.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgUtil.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgUtil.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosg.dylib "@executable_path/../libs/libosg.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgUtil.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgUtil.dylib
 
 
 	# OSG VIEWER LIBRARY
-        QMAKE_POST_LINK += && install_name_tool -change libosgGA.dylib "@executable_path/../libs/libosgGA.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgViewer.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosgText.dylib "@executable_path/../libs/libosgText.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgViewer.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosgDB.dylib "@executable_path/../libs/libosgDB.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgViewer.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosgUtil.dylib "@executable_path/../libs/libosgUtil.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgViewer.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosg.dylib "@executable_path/../libs/libosg.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgViewer.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgViewer.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgGA.dylib "@executable_path/../libs/libosgGA.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgViewer.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgText.dylib "@executable_path/../libs/libosgText.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgViewer.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgDB.dylib "@executable_path/../libs/libosgDB.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgViewer.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgUtil.dylib "@executable_path/../libs/libosgUtil.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgViewer.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosg.dylib "@executable_path/../libs/libosg.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgViewer.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgViewer.dylib
 
 	# OSG WIDGET LIBRARY
-        QMAKE_POST_LINK += && install_name_tool -change libosgGA.dylib "@executable_path/../libs/libosgGA.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgWidget.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosgText.dylib "@executable_path/../libs/libosgText.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgWidget.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosgDB.dylib "@executable_path/../libs/libosgDB.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgWidget.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosgUtil.dylib "@executable_path/../libs/libosgUtil.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgWidget.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosg.dylib "@executable_path/../libs/libosg.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgWidget.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgWidget.dylib
-        QMAKE_POST_LINK += && install_name_tool -change libosgViewer.dylib "@executable_path/../libs/libosgViewer.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosgWidget.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgGA.dylib "@executable_path/../libs/libosgGA.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgWidget.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgText.dylib "@executable_path/../libs/libosgText.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgWidget.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgDB.dylib "@executable_path/../libs/libosgDB.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgWidget.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgUtil.dylib "@executable_path/../libs/libosgUtil.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgWidget.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosg.dylib "@executable_path/../libs/libosg.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgWidget.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgWidget.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libosgViewer.dylib "@executable_path/../libs/libosgViewer.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosgWidget.dylib
 
 	# CORE OSG LIBRARY
-        QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosg.dylib
+        QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/$${TARGET}.app/Contents/libs/libosg.dylib
 
         # SDL Framework
-        QMAKE_POST_LINK += && install_name_tool -change "@rpath/SDL.framework/Versions/A/SDL" "@executable_path/../Frameworks/SDL.framework/Versions/A/SDL" $$TARGETDIR/qgroundcontrol.app/Contents/MacOS/qgroundcontrol
+        QMAKE_POST_LINK += && install_name_tool -change "@rpath/SDL.framework/Versions/A/SDL" "@executable_path/../Frameworks/SDL.framework/Versions/A/SDL" $$TARGETDIR/$${TARGET}.app/Contents/MacOS/$${TARGET}
 
 	# No check for GLUT.framework since it's a MAC default
 	message("Building support for OpenSceneGraph")
@@ -393,8 +393,8 @@ win32-msvc2008|win32-msvc2010|win32-msvc2012 {
 		QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtXmlPatterns4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n))
 		QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtDeclarative4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n))
 		QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtScript4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n))
-		QMAKE_POST_LINK += $$quote(del /F "$$TARGETDIR_WIN\\release\\qgroundcontrol.exp"$$escape_expand(\\n))
-		QMAKE_POST_LINK += $$quote(del /F "$$TARGETDIR_WIN\\release\\qgroundcontrol.lib"$$escape_expand(\\n))
+		QMAKE_POST_LINK += $$quote(del /F "$$TARGETDIR_WIN\\release\\$${TARGET}.exp"$$escape_expand(\\n))
+		QMAKE_POST_LINK += $$quote(del /F "$$TARGETDIR_WIN\\release\\$${TARGET}"$$escape_expand(\\n))
 
 		# Copy Visual Studio DLLs
 		# Note that this is only done for release because the debugging versions of these DLLs cannot be redistributed.
diff --git a/qgroundcontrol.pro b/qgroundcontrol.pro
index 3f48dc0f24f79ea010624249b3d1fcc023294fae..42942e850dfd43282bb6871bf26c3a3d8f9b1727 100644
--- a/qgroundcontrol.pro
+++ b/qgroundcontrol.pro
@@ -32,8 +32,15 @@ QT += network \
     sql \
     declarative
 
-TEMPLATE = app
-TARGET = qgroundcontrol
+# Setting this variable allows you to include this .pro file in another such that
+# you can set your own TARGET and main() function. This is used by the unit test
+# build files to build unit test using all built parts of QGCS except for main.
+isEmpty(QGCS_UNITTEST_OVERRIDE) {
+    TEMPLATE = app
+    TARGET = qgroundcontrol
+    SOURCES += src/main.cc
+}
+
 BASEDIR = $${IN_PWD}
 linux-g++|linux-g++-64{
     debug {
@@ -556,7 +563,7 @@ contains(DEPENDENCIES_PRESENT, libfreenect) {
     # Enable only if libfreenect is available
     HEADERS += src/input/Freenect.h
 }
-SOURCES += src/main.cc \
+SOURCES += \
     src/QGCCore.cc \
     src/uas/UASManager.cc \
     src/uas/UAS.cc \
diff --git a/src/qgcunittest/UASUnitTest.cc b/src/qgcunittest/UASUnitTest.cc
index 11b95ccd746e9316b82f5c4d530f4372f3d463c0..7affa092ca719659a523ed2e88a9727134cfd768 100644
--- a/src/qgcunittest/UASUnitTest.cc
+++ b/src/qgcunittest/UASUnitTest.cc
@@ -178,28 +178,28 @@ void UASUnitTest::getSystemType_test()
 
 void UASUnitTest::getAirframe_test()
 {
-    //when uas is constructed, airframe is set to QGC_AIRFRAME_GENERIC which is 0
-    QCOMPARE(uas->getAirframe(), 0);
+    //when uas is constructed, airframe is set to QGC_AIRFRAME_GENERIC
+    QVERIFY(uas->getAirframe() == UASInterface::QGC_AIRFRAME_GENERIC);
 }
 
 void UASUnitTest::setAirframe_test()
 {
     //check at construction, that airframe=0 (GENERIC)
-    QVERIFY(uas->getAirframe() == 0);
+    QVERIFY(uas->getAirframe() == UASInterface::QGC_AIRFRAME_GENERIC);
 
     //check that set airframe works
-    uas->setAirframe(11);
-    QVERIFY(uas->getAirframe() == 11);
+    uas->setAirframe(UASInterface::QGC_AIRFRAME_HEXCOPTER);
+    QVERIFY(uas->getAirframe() == UASInterface::QGC_AIRFRAME_HEXCOPTER);
 
     //check that setAirframe will not assign a number to airframe, that is 
     //not defined in the enum 
-    uas->setAirframe(12);
-    QVERIFY(uas->getAirframe() == 11);
+    uas->setAirframe(UASInterface::QGC_AIRFRAME_END_OF_ENUM);
+    QVERIFY(uas->getAirframe() == UASInterface::QGC_AIRFRAME_HEXCOPTER);
 }
 
 void UASUnitTest::getWaypointList_test()
 {
-    QVector<Waypoint*> kk = uas->getWaypointManager()->getWaypointEditableList();
+    QList<Waypoint*> kk = uas->getWaypointManager()->getWaypointEditableList();
     QCOMPARE(kk.count(), 0);
 
     Waypoint* wp = new Waypoint(0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,false, false, MAV_FRAME_GLOBAL, MAV_CMD_MISSION_START, "blah");
@@ -232,7 +232,7 @@ void UASUnitTest::getWaypoint_test()
 
     uas->getWaypointManager()->addWaypointEditable(wp, true);
 
-    QVector<Waypoint*> wpList = uas->getWaypointManager()->getWaypointEditableList();
+    QList<Waypoint*> wpList = uas->getWaypointManager()->getWaypointEditableList();
 
     QCOMPARE(wpList.count(), 1);
     QCOMPARE(static_cast<quint16>(0), static_cast<Waypoint*>(wpList.at(0))->getId());
@@ -281,7 +281,7 @@ void UASUnitTest::signalWayPoint_test()
     QCOMPARE(spy2.count(), 1);
 
     uas->getWaypointManager()->clearWaypointList();
-    QVector<Waypoint*> wpList = uas->getWaypointManager()->getWaypointEditableList();
+    QList<Waypoint*> wpList = uas->getWaypointManager()->getWaypointEditableList();
     QCOMPARE(wpList.count(), 1);
     delete uas;
     uas = NULL;
@@ -292,7 +292,7 @@ void UASUnitTest::signalUASLink_test()
 {
 
     QSignalSpy spy(uas, SIGNAL(modeChanged(int,QString,QString)));
-    uas->setMode(2);
+    uas->setMode(2, 0);
     QCOMPARE(spy.count(), 0);// not solve for UAS not receiving message from UAS
 
     QSignalSpy spyS(LinkManager::instance(), SIGNAL(newLink(LinkInterface*)));
@@ -391,10 +391,10 @@ void UASUnitTest::signalIdUASLink_test()
     LinkInterface* b = static_cast<LinkInterface*>(links.at(1));
     LinkInterface* c = static_cast<LinkInterface*>(links.at(2));
     LinkInterface* d = static_cast<LinkInterface*>(links.at(3));
-    QCOMPARE(a->getName(), QString("serial port COM 17"));
-    QCOMPARE(b->getName(), QString("serial port COM 18"));
-    QCOMPARE(c->getName(), QString("serial port COM 19"));
-    QCOMPARE(d->getName(), QString("serial port COM 20"));
+    QCOMPARE(a->getName(), QString("COM 17"));
+    QCOMPARE(b->getName(), QString("COM 18"));
+    QCOMPARE(c->getName(), QString("COM 19"));
+    QCOMPARE(d->getName(), QString("COM 20"));
 
     LinkManager::instance()->removeLink(myLink4);
     delete myLink4;
diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc
index 8d5be0668ecbeba3ae3fcf56f13b41f0b20552bc..cc3daa6ad69140f8935f69ed69d613423e0d9d71 100644
--- a/src/uas/UAS.cc
+++ b/src/uas/UAS.cc
@@ -109,6 +109,11 @@ UAS::UAS(MAVLinkProtocol* protocol, int id) : UASInterface(),
     localX(0.0),
     localY(0.0),
     localZ(0.0),
+
+    latitude(0.0),
+    longitude(0.0),
+    altitude(0.0),
+
     globalEstimatorActive(false),
     latitude_gps(0.0),
     longitude_gps(0.0),
@@ -131,6 +136,10 @@ UAS::UAS(MAVLinkProtocol* protocol, int id) : UASInterface(),
     attitudeStamped(false),
     lastAttitude(0),
 
+    roll(0.0),
+    pitch(0.0),
+    yaw(0.0),
+
     paramsOnceRequested(false),
     simulation(0),