Commit 909727e3 authored by Lorenz Meier's avatar Lorenz Meier

Added auto-fixing of OpenSceneGraph library dependencies on Mac OS X

parent e889f908
...@@ -93,7 +93,66 @@ macx|macx-g++42|macx-g++: { ...@@ -93,7 +93,66 @@ macx|macx-g++42|macx-g++: {
# Copy parameter tooltip files # Copy parameter tooltip files
QMAKE_POST_LINK += && cp -rf $$BASEDIR/files $$TARGETDIR/qgroundcontrol.app/Contents/MacOS QMAKE_POST_LINK += && cp -rf $$BASEDIR/files $$TARGETDIR/qgroundcontrol.app/Contents/MacOS
# Copy libraries # Copy libraries
QMAKE_POST_LINK += && cp -rf $$BASEDIR/lib/mac64/lib/* $$TARGETDIR/qgroundcontrol.app/Contents/MacOS QMAKE_POST_LINK += && mkdir -p $$TARGETDIR/qgroundcontrol.app/Contents/libs
QMAKE_POST_LINK += && cp -rf $$BASEDIR/lib/mac64/lib/* $$TARGETDIR/qgroundcontrol.app/Contents/libs
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# CORE OSG LIBRARY
QMAKE_POST_LINK += && install_name_tool -change libOpenThreads.dylib "@executable_path/../libs/libOpenThreads.dylib" $$TARGETDIR/qgroundcontrol.app/Contents/libs/libosg.dylib
# Copy model files # Copy model files
#QMAKE_POST_LINK += && cp -f $$BASEDIR/models/*.dae $$TARGETDIR/qgroundcontrol.app/Contents/MacOs #QMAKE_POST_LINK += && cp -f $$BASEDIR/models/*.dae $$TARGETDIR/qgroundcontrol.app/Contents/MacOs
......
...@@ -50,7 +50,8 @@ void ArduPilotMegaMAV::receiveMessage(LinkInterface* link, mavlink_message_t mes ...@@ -50,7 +50,8 @@ void ArduPilotMegaMAV::receiveMessage(LinkInterface* link, mavlink_message_t mes
if (message.sysid == uasId) { if (message.sysid == uasId) {
// Handle your special messages // Handle your special messages
switch (message.msgid) { switch (message.msgid) {
case MAVLINK_MSG_ID_HEARTBEAT: { case MAVLINK_MSG_ID_HEARTBEAT:
{
//qDebug() << "ARDUPILOT RECEIVED HEARTBEAT"; //qDebug() << "ARDUPILOT RECEIVED HEARTBEAT";
break; break;
} }
......
...@@ -164,7 +164,8 @@ void UAS::updateState() ...@@ -164,7 +164,8 @@ void UAS::updateState()
void UAS::setSelected() void UAS::setSelected()
{ {
if (UASManager::instance()->getActiveUAS() != this) { if (UASManager::instance()->getActiveUAS() != this)
{
UASManager::instance()->setActiveUAS(this); UASManager::instance()->setActiveUAS(this);
emit systemSelected(true); emit systemSelected(true);
} }
...@@ -175,24 +176,6 @@ bool UAS::getSelected() const ...@@ -175,24 +176,6 @@ bool UAS::getSelected() const
return (UASManager::instance()->getActiveUAS() == this); return (UASManager::instance()->getActiveUAS() == this);
} }
//void UAS::receiveMessageNamedValue(const mavlink_message_t& message)
//{
// if (message.msgid == MAVLINK_MSG_ID_NAMED_VALUE_FLOAT)
// {
// mavlink_named_value_float_t val;
// mavlink_msg_named_value_float_decode(&message, &val);
// QByteArray bytes(val.name, MAVLINK_MSG_NAMED_VALUE_FLOAT_FIELD_NAME_LEN);
// emit valueChanged(this->getUASID(), QString(bytes), tr("raw"), val.value, getUnixTime());
// }
// else if (message.msgid == MAVLINK_MSG_ID_NAMED_VALUE_INT)
// {
// mavlink_named_value_int_t val;
// mavlink_msg_named_value_int_decode(&message, &val);
// QByteArray bytes(val.name, MAVLINK_MSG_NAMED_VALUE_INT_FIELD_NAME_LEN);
// emit valueChanged(this->getUASID(), QString(bytes), tr("raw"), val.value, getUnixTime());
// }
//}
void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message) void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message)
{ {
if (!link) return; if (!link) return;
...@@ -201,10 +184,6 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message) ...@@ -201,10 +184,6 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message)
addLink(link); addLink(link);
// qDebug() << __FILE__ << __LINE__ << "ADDED LINK!" << link->getName(); // qDebug() << __FILE__ << __LINE__ << "ADDED LINK!" << link->getName();
} }
// else
// {
// qDebug() << __FILE__ << __LINE__ << "DID NOT ADD LINK" << link->getName() << "ALREADY IN LIST";
// }
// qDebug() << "UAS RECEIVED from" << message.sysid << "component" << message.compid << "msg id" << message.msgid << "seq no" << message.seq; // qDebug() << "UAS RECEIVED from" << message.sysid << "component" << message.compid << "msg id" << message.msgid << "seq no" << message.seq;
...@@ -429,6 +408,7 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message) ...@@ -429,6 +408,7 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message)
// compass = 0.0f; // compass = 0.0f;
// } // }
attitudeKnown = true; attitudeKnown = true;
emit attitudeChanged(this, roll, pitch, yaw, time); emit attitudeChanged(this, roll, pitch, yaw, time);
emit attitudeSpeedChanged(uasId, attitude.rollspeed, attitude.pitchspeed, attitude.yawspeed, time); emit attitudeSpeedChanged(uasId, attitude.rollspeed, attitude.pitchspeed, attitude.yawspeed, time);
......
...@@ -287,7 +287,11 @@ void LinechartPlot::appendData(QString dataname, quint64 ms, double value) ...@@ -287,7 +287,11 @@ void LinechartPlot::appendData(QString dataname, quint64 ms, double value)
if(ms > maxTime) maxTime = ms; if(ms > maxTime) maxTime = ms;
storageInterval = maxTime - minTime; storageInterval = maxTime - minTime;
if(time > lastTime) lastTime = time; if(time > lastTime)
{
qDebug() << "UPDATED LAST TIME!" << dataname << time << lastTime;
lastTime = time;
}
// //
if (value < minValue) minValue = value; if (value < minValue) minValue = value;
...@@ -524,8 +528,10 @@ bool LinechartPlot::isVisible(QString id) ...@@ -524,8 +528,10 @@ bool LinechartPlot::isVisible(QString id)
bool LinechartPlot::anyCurveVisible() bool LinechartPlot::anyCurveVisible()
{ {
bool visible = false; bool visible = false;
foreach (QString key, curves.keys()) { foreach (QString key, curves.keys())
if (curves.value(key)->isVisible()) { {
if (curves.value(key)->isVisible())
{
visible = true; visible = true;
} }
} }
...@@ -599,7 +605,8 @@ void LinechartPlot::setPlotInterval(int interval) ...@@ -599,7 +605,8 @@ void LinechartPlot::setPlotInterval(int interval)
{ {
plotInterval = interval; plotInterval = interval;
QMap<QString, TimeSeriesData*>::iterator j; QMap<QString, TimeSeriesData*>::iterator j;
for(j = data.begin(); j != data.end(); ++j) { for(j = data.begin(); j != data.end(); ++j)
{
TimeSeriesData* d = data.value(j.key()); TimeSeriesData* d = data.value(j.key());
d->setInterval(interval); d->setInterval(interval);
} }
...@@ -644,7 +651,8 @@ void LinechartPlot::setLinearScaling() ...@@ -644,7 +651,8 @@ void LinechartPlot::setLinearScaling()
void LinechartPlot::setAverageWindow(int windowSize) void LinechartPlot::setAverageWindow(int windowSize)
{ {
this->averageWindowSize = windowSize; this->averageWindowSize = windowSize;
foreach(TimeSeriesData* series, data) { foreach(TimeSeriesData* series, data)
{
series->setAverageWindowSize(windowSize); series->setAverageWindowSize(windowSize);
} }
} }
...@@ -664,7 +672,8 @@ void LinechartPlot::paintRealtime() ...@@ -664,7 +672,8 @@ void LinechartPlot::paintRealtime()
#endif #endif
// Update plot window value to new max time if the last time was also the max time // Update plot window value to new max time if the last time was also the max time
windowLock.lock(); windowLock.lock();
if (automaticScrollActive) { if (automaticScrollActive)
{
// FIXME Check, but commenting this out should have been // FIXME Check, but commenting this out should have been
// beneficial (does only add complexity) // beneficial (does only add complexity)
...@@ -741,7 +750,8 @@ void LinechartPlot::removeAllData() ...@@ -741,7 +750,8 @@ void LinechartPlot::removeAllData()
datalock.lock(); datalock.lock();
// Delete curves // Delete curves
QMap<QString, QwtPlotCurve*>::iterator i; QMap<QString, QwtPlotCurve*>::iterator i;
for(i = curves.begin(); i != curves.end(); ++i) { for(i = curves.begin(); i != curves.end(); ++i)
{
// Remove from curve list // Remove from curve list
QwtPlotCurve* curve = curves.take(i.key()); QwtPlotCurve* curve = curves.take(i.key());
// Delete the object // Delete the object
...@@ -755,7 +765,8 @@ void LinechartPlot::removeAllData() ...@@ -755,7 +765,8 @@ void LinechartPlot::removeAllData()
// Delete data // Delete data
QMap<QString, TimeSeriesData*>::iterator j; QMap<QString, TimeSeriesData*>::iterator j;
for(j = data.begin(); j != data.end(); ++j) { for(j = data.begin(); j != data.end(); ++j)
{
// Remove from data list // Remove from data list
TimeSeriesData* d = data.take(j.key()); TimeSeriesData* d = data.take(j.key());
// Delete the object // Delete the object
......
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