diff options
author | Zhirui Dai | 2023-10-11 02:40:23 -0700 |
---|---|---|
committer | Zhirui Dai | 2023-10-11 02:40:23 -0700 |
commit | 0f87e031370fde6c63b7ae715c97e8088ef7fd39 (patch) | |
tree | 51848a1fd8ecb242b45236b11657c6d6c5eeb41e | |
download | aur-0f87e031370fde6c63b7ae715c97e8088ef7fd39.tar.gz |
0.0.11
-rw-r--r-- | .SRCINFO | 29 | ||||
-rw-r--r-- | 0.0.11.patch | 528 | ||||
-rw-r--r-- | FindQwt.cmake | 81 | ||||
-rw-r--r-- | PKGBUILD | 70 |
4 files changed, 708 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..5b1e29fd9cd5 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,29 @@ +pkgbase = ros-noetic-rqt-multiplot + pkgdesc = ROS - rqt_multiplot provides a GUI plugin for visualizing numeric values in multiple 2D plots using the Qwt plotting backend. + pkgver = 0.0.11 + pkgrel = 1 + url = https://wiki.ros.org/rqt_multiplot + arch = i686 + arch = x86_64 + arch = aarch64 + arch = armv7h + arch = armv6h + license = BSD + makedepends = cmake + makedepends = ros-build-tools + makedepends = ros-noetic-catkin + depends = ros-noetic-rosbag + depends = ros-noetic-roscpp + depends = ros-noetic-rqt-gui + depends = ros-noetic-rqt-gui-cpp + depends = ros-noetic-variant-topic-tools + depends = qwt + depends = qt5-base + source = ros-noetic-rqt-multiplot-0.0.11.tar.gz::https://github.com/ANYbotics/rqt_multiplot_plugin/archive/0.0.11.tar.gz + source = FindQwt.cmake + source = 0.0.11.patch + sha256sums = 79f0abc3fc26b31dd9d5e6eb01f6cfb5058b425e774c6455513ffe3f76de74b4 + sha256sums = SKIP + sha256sums = SKIP + +pkgname = ros-noetic-rqt-multiplot diff --git a/0.0.11.patch b/0.0.11.patch new file mode 100644 index 000000000000..f30d368c44af --- /dev/null +++ b/0.0.11.patch @@ -0,0 +1,528 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f7c230a..eeea6a6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -2,7 +2,8 @@ cmake_minimum_required(VERSION 3.5.1) + project(rqt_multiplot) + + # Set compiler flags +-set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}") ++set(CMAKE_CXX_FLAGS "-std=c++17 ${CMAKE_CXX_FLAGS}") ++set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/") + + find_package(catkin REQUIRED + COMPONENTS +@@ -12,38 +13,8 @@ find_package(catkin REQUIRED + rqt_gui_cpp + variant_topic_tools + ) +- +-if("${qt_gui_cpp_USE_QT_MAJOR_VERSION} " STREQUAL "5 ") +- find_package(Qt5Widgets REQUIRED) +-else() +- find_package(Qt4 COMPONENTS QtCore QtGui REQUIRED) +- include(${QT_USE_FILE}) +-endif() +- +-find_path( +- QWT_INCLUDE_DIRS +- NAMES +- qwt_plot.h +- PATHS +- /usr/include/qwt-qt4 +- /usr/include/qwt +- /usr/local/include/qwt +-) +- +-if("${qt_gui_cpp_USE_QT_MAJOR_VERSION} " STREQUAL "5 ") +- find_library( +- QWT_LIBRARIES +- NAMES +- qwt-qt5 +- ) +-else() +- find_library( +- QWT_LIBRARIES +- NAMES +- qwt-qt4 +- qwt +- ) +-endif() ++find_package(Qwt REQUIRED) ++find_package(Qt5Widgets REQUIRED) + + catkin_python_setup() + +diff --git a/include/rqt_multiplot/PlotZoomer.h b/include/rqt_multiplot/PlotZoomer.h +index f83be0d..0e319ab 100644 +--- a/include/rqt_multiplot/PlotZoomer.h ++++ b/include/rqt_multiplot/PlotZoomer.h +@@ -19,6 +19,7 @@ + #ifndef RQT_MULTIPLOT_PLOT_ZOOMER_H + #define RQT_MULTIPLOT_PLOT_ZOOMER_H + ++#include <QPoint> + #include <qwt/qwt_plot_zoomer.h> + + class QwtPlotCanvas; +diff --git a/src/rqt_multiplot/CurveData.cpp b/src/rqt_multiplot/CurveData.cpp +index 1b7480c..88f27dc 100644 +--- a/src/rqt_multiplot/CurveData.cpp ++++ b/src/rqt_multiplot/CurveData.cpp +@@ -17,6 +17,7 @@ + ******************************************************************************/ + + #include "rqt_multiplot/CurveData.h" ++#include <cmath> + + namespace rqt_multiplot { + +@@ -39,36 +40,36 @@ double CurveData::getValue(size_t index, CurveConfig::Axis axis) const { + return getPoint(index).x(); + else if (axis == CurveConfig::Y) + return getPoint(index).y(); +- ++ + return std::numeric_limits<double>::quiet_NaN(); + } + + QVector<size_t> CurveData::getPointsInDistance(double x, double maxDistance) + const { + QVector<size_t> indexes; +- ++ + if (!isEmpty()) { + for (size_t index = 0; index < getNumPoints(); ++index) { +- double distance = fabs(x-getPoint(index).x()); +- ++ double distance = std::fabs(x-getPoint(index).x()); ++ + if (distance <= maxDistance) + indexes.append(index); + } + } +- ++ + return indexes; + } + + QPair<double, double> CurveData::getAxisBounds(CurveConfig::Axis axis) const { + BoundingRectangle bounds = getBounds(); +- ++ + if (axis == CurveConfig::X) + return QPair<double, double>(bounds.getMinimum().x(), + bounds.getMaximum().x()); + else if (axis == CurveConfig::Y) + return QPair<double, double>(bounds.getMinimum().y(), + bounds.getMaximum().y()); +- ++ + return QPair<double, double>(); + } + +@@ -100,10 +101,10 @@ void CurveData::writeFormatted(QStringList& formattedX, QStringList& + formattedY) const { + formattedX.clear(); + formattedY.clear(); +- ++ + for (size_t index = 0; index < getNumPoints(); ++index) { + QPointF point = getPoint(index); +- ++ + formattedX.append(QString::number(point.x(), 'g', 20)); + formattedY.append(QString::number(point.y(), 'g', 20)); + } +diff --git a/src/rqt_multiplot/CurveDataCircularBuffer.cpp b/src/rqt_multiplot/CurveDataCircularBuffer.cpp +index f380b21..7674955 100644 +--- a/src/rqt_multiplot/CurveDataCircularBuffer.cpp ++++ b/src/rqt_multiplot/CurveDataCircularBuffer.cpp +@@ -17,6 +17,7 @@ + ******************************************************************************/ + + #include "rqt_multiplot/CurveDataCircularBuffer.h" ++#include <cmath> + + namespace rqt_multiplot { + +@@ -49,34 +50,34 @@ size_t CurveDataCircularBuffer::getNumPoints() const { + + QPointF CurveDataCircularBuffer::getPoint(size_t index) const { + const Point& point = points_[index]; +- ++ + return QPointF(point.x_, point.y_); + } + + QVector<size_t> CurveDataCircularBuffer::getPointsInDistance(double x, + double maxDistance) const { + QVector<size_t> indexes; +- ++ + XCoordinateRefMinHeap::ordered_iterator it = std::lower_bound( + xMin_.ordered_begin(), xMin_.ordered_end(), x-maxDistance); +- ++ + while (it != xMin_.ordered_end()) { +- if (fabs(x-it->x_) <= maxDistance) { ++ if (std::fabs(x-it->x_) <= maxDistance) { + size_t index = it->index_; +- ++ + if (points_.array_two().second) { + index = (index < points_.array_two().second) ? + index+points_.array_one().second : + index-points_.array_two().second; + } +- ++ + indexes.push_back(index); + ++it; + } + else + break; + } +- ++ + return indexes; + } + +@@ -84,11 +85,11 @@ BoundingRectangle CurveDataCircularBuffer::getBounds() const { + if (!points_.empty()) { + QPointF minimum(xMin_.top().x_, yMin_.top()); + QPointF maximum(xMax_.top(), yMax_.top()); +- ++ + return BoundingRectangle(minimum, maximum); + } +- +- ++ ++ + return BoundingRectangle(); + } + +@@ -99,13 +100,13 @@ BoundingRectangle CurveDataCircularBuffer::getBounds() const { + void CurveDataCircularBuffer::appendPoint(const QPointF& point) { + if (points_.full()) { + const Point& firstPoint = points_[0]; +- ++ + xMin_.erase(firstPoint.xMinHandle_); + xMax_.erase(firstPoint.xMaxHandle_); + yMin_.erase(firstPoint.yMinHandle_); + yMax_.erase(firstPoint.yMaxHandle_); + } +- ++ + points_.push_back(point); + size_t index = points_.size()-1; + +@@ -113,16 +114,16 @@ void CurveDataCircularBuffer::appendPoint(const QPointF& point) { + index = (points_.array_one().first < points_.array_two().first) ? + &points_.back()-points_.array_one().first : + &points_.back()-points_.array_two().first; +- ++ + points_.back().xMinHandle_ = xMin_.push(XCoordinateRef(point.x(), index)); + points_.back().xMaxHandle_ = xMax_.push(point.x()); + points_.back().yMinHandle_ = yMin_.push(point.y()); +- points_.back().yMaxHandle_ = yMax_.push(point.y()); ++ points_.back().yMaxHandle_ = yMax_.push(point.y()); + } + + void CurveDataCircularBuffer::clearPoints() { + points_.clear(); +- ++ + xMin_.clear(); + xMax_.clear(); + yMin_.clear(); +diff --git a/src/rqt_multiplot/CurveDataVector.cpp b/src/rqt_multiplot/CurveDataVector.cpp +index 17c86b1..099d733 100644 +--- a/src/rqt_multiplot/CurveDataVector.cpp ++++ b/src/rqt_multiplot/CurveDataVector.cpp +@@ -17,6 +17,7 @@ + ******************************************************************************/ + + #include "rqt_multiplot/CurveDataVector.h" ++#include <cmath> + + namespace rqt_multiplot { + +@@ -45,18 +46,18 @@ QPointF CurveDataVector::getPoint(size_t index) const { + QVector<size_t> CurveDataVector::getPointsInDistance(double x, double + maxDistance) const { + QVector<size_t> indexes; +- ++ + XCoordinateRefSet::const_iterator it = x_.lower_bound(x-maxDistance); +- ++ + while (it != x_.end()) { +- if (fabs(x-it->x_) <= maxDistance) { ++ if (std::fabs(x-it->x_) <= maxDistance) { + indexes.push_back(it->index_); + ++it; + } + else + break; + } +- ++ + return indexes; + } + +@@ -70,22 +71,22 @@ BoundingRectangle CurveDataVector::getBounds() const { + + void CurveDataVector::appendPoint(const QPointF& point) { + bounds_ += point; +- ++ + if (points_.capacity() < points_.count()+1) + points_.reserve(points_.capacity() ? 2*points_.capacity() : 1); +- ++ + points_.append(point); +- ++ + if (x_.capacity() < x_.size()+1) + x_.reserve(x_.capacity() ? 2*x_.capacity() : 1); +- ++ + x_.insert(XCoordinateRef(point.x(), points_.size()-1)); + } + + void CurveDataVector::clearPoints() { + points_.clear(); + x_.clear(); +- ++ + bounds_.clear(); + } + +diff --git a/src/rqt_multiplot/PlotCursor.cpp b/src/rqt_multiplot/PlotCursor.cpp +index 0b9a7cf..c30c7f8 100644 +--- a/src/rqt_multiplot/PlotCursor.cpp ++++ b/src/rqt_multiplot/PlotCursor.cpp +@@ -24,11 +24,13 @@ + #include <QPainter> + #include <QPen> + #include <QResizeEvent> ++#include <QtMath> + + #include <qwt/qwt_plot.h> + #include <qwt/qwt_plot_canvas.h> + #include <qwt/qwt_plot_curve.h> + #include <qwt/qwt_scale_widget.h> ++#include <qwt/qwt_scale_map.h> + + #include <rqt_multiplot/CurveData.h> + #include <rqt_multiplot/PlotCursorMachine.h> +diff --git a/src/rqt_multiplot/PlotCursorMachine.cpp b/src/rqt_multiplot/PlotCursorMachine.cpp +index 0069463..97ef837 100644 +--- a/src/rqt_multiplot/PlotCursorMachine.cpp ++++ b/src/rqt_multiplot/PlotCursorMachine.cpp +@@ -17,6 +17,7 @@ + ******************************************************************************/ + + #include <QEvent> ++#include <QList> + + #include "rqt_multiplot/PlotCursorMachine.h" + +diff --git a/src/rqt_multiplot/PlotCurve.cpp b/src/rqt_multiplot/PlotCurve.cpp +index 68d65b1..84ac3bc 100644 +--- a/src/rqt_multiplot/PlotCurve.cpp ++++ b/src/rqt_multiplot/PlotCurve.cpp +@@ -16,6 +16,7 @@ + * along with this program. If not, see <http://www.gnu.org/licenses/>. * + ******************************************************************************/ + ++#include <QPen> + #include <rqt_multiplot/CurveDataCircularBuffer.h> + #include <rqt_multiplot/CurveDataList.h> + #include <rqt_multiplot/CurveDataListTimeFrame.h> +@@ -39,10 +40,10 @@ PlotCurve::PlotCurve(QObject* parent) : + dataSequencer_(new CurveDataSequencer(this)), + paused_(true) { + qRegisterMetaType<BoundingRectangle>("BoundingRectangle"); +- +- connect(dataSequencer_, SIGNAL(pointReceived(const QPointF&)), ++ ++ connect(dataSequencer_, SIGNAL(pointReceived(const QPointF&)), + this, SLOT(dataSequencerPointReceived(const QPointF&))); +- ++ + setData(data_); + } + +@@ -69,12 +70,12 @@ void PlotCurve::setConfig(CurveConfig* config) { + SLOT(configStyleConfigChanged())); + disconnect(config_->getDataConfig(), SIGNAL(changed()), this, + SLOT(configDataConfigChanged())); +- ++ + dataSequencer_->setConfig(0); + } +- ++ + config_ = config; +- ++ + if (config) { + connect(config, SIGNAL(titleChanged(const QString&)), this, + SLOT(configTitleChanged(const QString&))); +@@ -89,14 +90,14 @@ void PlotCurve::setConfig(CurveConfig* config) { + SLOT(configStyleConfigChanged())); + connect(config->getDataConfig(), SIGNAL(changed()), this, + SLOT(configDataConfigChanged())); +- ++ + configTitleChanged(config->getTitle()); + configAxisConfigChanged(); + configColorConfigCurrentColorChanged(config->getColorConfig()-> + getCurrentColor()); + configStyleConfigChanged(); + configDataConfigChanged(); +- ++ + dataSequencer_->setConfig(config); + } + } +@@ -109,7 +110,7 @@ CurveConfig* PlotCurve::getConfig() const { + void PlotCurve::setBroker(MessageBroker* broker) { + if (broker != broker_) { + broker_ = broker; +- ++ + dataSequencer_->setBroker(broker); + } + } +@@ -129,11 +130,11 @@ CurveDataSequencer* PlotCurve::getDataSequencer() const { + QPair<double, double> PlotCurve::getPreferredAxisScale(CurveConfig::Axis axis) + const { + QPair<double, double> axisBounds(0.0, -1.0); +- ++ + if (config_) { + CurveAxisScaleConfig* axisScaleConfig = config_->getAxisConfig(axis)-> + getScaleConfig(); +- ++ + if (axisScaleConfig->getType() == CurveAxisScaleConfig::Absolute) { + axisBounds.first = axisScaleConfig->getAbsoluteMinimum(); + axisBounds.second = axisScaleConfig->getAbsoluteMaximum(); +@@ -141,7 +142,7 @@ QPair<double, double> PlotCurve::getPreferredAxisScale(CurveConfig::Axis axis) + else if (axisScaleConfig->getType() == CurveAxisScaleConfig::Relative) { + if (!data_->isEmpty()) { + size_t index = data_->getNumPoints()-1; +- ++ + axisBounds.first = data_->getValue(index, axis)+axisScaleConfig-> + getRelativeMinimum(); + axisBounds.second = data_->getValue(index, axis)+axisScaleConfig-> +@@ -151,7 +152,7 @@ QPair<double, double> PlotCurve::getPreferredAxisScale(CurveConfig::Axis axis) + else + axisBounds = data_->getAxisBounds(axis); + } +- ++ + return axisBounds; + } + +@@ -200,7 +201,7 @@ void PlotCurve::pause() { + + void PlotCurve::clear() { + data_->clearPoints(); +- ++ + emit replotRequested(); + } + +@@ -218,25 +219,25 @@ void PlotCurve::configAxisConfigChanged() { + + void PlotCurve::configColorConfigCurrentColorChanged(const QColor& color) { + setPen(color); +- ++ + emit replotRequested(); + } + + void PlotCurve::configStyleConfigChanged() { + rqt_multiplot::CurveStyleConfig* styleConfig = config_->getStyleConfig(); +- ++ + if (styleConfig->getType() == rqt_multiplot::CurveStyleConfig::Sticks) { + setStyle(QwtPlotCurve::Sticks); +- ++ + setOrientation(styleConfig->getSticksOrientation()); + setBaseline(styleConfig->getSticksBaseline()); + } + else if (styleConfig->getType() == rqt_multiplot::CurveStyleConfig:: + Steps) { + setStyle(QwtPlotCurve::Steps); +- ++ + setCurveAttribute(QwtPlotCurve::Inverted, styleConfig-> +- areStepsInverted()); ++ areStepsInverted()); + } + else if (styleConfig->getType() == rqt_multiplot::CurveStyleConfig:: + Points) { +@@ -244,21 +245,21 @@ void PlotCurve::configStyleConfigChanged() { + } + else { + setStyle(QwtPlotCurve::Lines); +- ++ + setCurveAttribute(QwtPlotCurve::Fitted, styleConfig-> +- areLinesInterpolated()); ++ areLinesInterpolated()); + } +- ++ + QPen pen = QwtPlotCurve::pen(); + + pen.setWidth(styleConfig->getPenWidth()); + pen.setStyle(styleConfig->getPenStyle()); +- ++ + setPen(pen); +- ++ + setRenderHint(QwtPlotItem::RenderAntialiased, styleConfig-> + isRenderAntialiased()); +- ++ + emit replotRequested(); + } + +@@ -273,20 +274,20 @@ void PlotCurve::configDataConfigChanged() { + data_ = new CurveDataListTimeFrame(config->getTimeFrameLength()); + else + data_ = new CurveDataVector(); +- ++ + setData(data_); +- ++ + emit replotRequested(); + } + + void PlotCurve::dataSequencerPointReceived(const QPointF& point) { + if (!paused_) { + BoundingRectangle oldBounds = getPreferredScale(); +- ++ + data_->appendPoint(point); +- ++ + BoundingRectangle bounds = getPreferredScale(); +- ++ + if (bounds != oldBounds) + emit preferredScaleChanged(bounds); + diff --git a/FindQwt.cmake b/FindQwt.cmake new file mode 100644 index 000000000000..aeeff0a62bae --- /dev/null +++ b/FindQwt.cmake @@ -0,0 +1,81 @@ +# - try to find Qwt libraries and include files +# QWT_INCLUDE_DIR where to find qwt_global.h, etc. +# QWT_LIBRARIES libraries to link against +# QWT_FOUND If false, do not try to use Qwt +# qwt_global.h holds a string with the QWT version; +# test to make sure it's at least 5.2 +FIND_PACKAGE(PkgConfig REQUIRED) +pkg_check_modules(PC_QWT "Qt5Qwt6") +set(QWT_QT_VERSION qt5) +find_path(QWT_INCLUDE_DIRS + NAMES qwt_global.h + HINTS + ${PC_QWT_INCLUDEDIR} + ${CMAKE_INSTALL_PREFIX}/include/qwt + ${CMAKE_PREFIX_PATH}/include/qwt + PATHS + /usr/local/include/qwt-${QWT_QT_VERSION} + /usr/local/include/qwt + /usr/include/qwt6 + /usr/include/qt5/qwt + /usr/include/qwt-${QWT_QT_VERSION} + /usr/include/qwt + /usr/include/${QWT_QT_VERSION}/qwt + /usr/include/qwt5 + /opt/local/include/qwt + /sw/include/qwt + /usr/local/lib/qwt.framework/Headers +) + +find_library(QWT_LIBRARIES + NAMES ${PC_QWT_LIBRARIES} qwt6-${QWT_QT_VERSION} qwt-${QWT_QT_VERSION} qwt5 libqwt5.so + HINTS + ${PC_QWT_LIBDIR} + ${CMAKE_INSTALL_PREFIX}/lib + ${CMAKE_INSTALL_PREFIX}/lib64 + ${CMAKE_PREFIX_PATH}/lib + PATHS + /usr/local/lib + /usr/lib + /opt/local/lib + /sw/lib + /usr/local/lib/qwt.framework +) + +set(QWT_FOUND FALSE) + +if(QWT_INCLUDE_DIRS) + file(STRINGS "${QWT_INCLUDE_DIRS}/qwt_global.h" + QWT_STRING_VERSION REGEX "QWT_VERSION_STR") + set(QWT_WRONG_VERSION True) + set(QWT_VERSION "No Version") + string(REGEX MATCH "[0-9]+.[0-9]+.[0-9]+" QWT_VERSION ${QWT_STRING_VERSION}) + string(COMPARE LESS ${QWT_VERSION} "5.2.0" QWT_WRONG_VERSION) + string(COMPARE GREATER ${QWT_VERSION} "6.2.0" QWT_WRONG_VERSION) + + message(STATUS "QWT Version: ${QWT_VERSION}") + + if(NOT QWT_WRONG_VERSION) + set(QWT_FOUND TRUE) + else(NOT QWT_WRONG_VERSION) + message(STATUS "QWT Version must be >= 5.2 and <= 6.2.0, Found ${QWT_VERSION}") + endif(NOT QWT_WRONG_VERSION) +endif(QWT_INCLUDE_DIRS) + +if(QWT_FOUND) + message("qwt: found") + + # handle the QUIETLY and REQUIRED arguments and set QWT_FOUND to TRUE if + # all listed variables are TRUE + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(Qwt DEFAULT_MSG QWT_LIBRARIES QWT_INCLUDE_DIRS) + MARK_AS_ADVANCED(QWT_LIBRARIES QWT_INCLUDE_DIRS) + + if(Qwt_FOUND AND NOT TARGET qwt::qwt) + add_library(qwt::qwt INTERFACE IMPORTED) + set_target_properties(qwt::qwt PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${QWT_INCLUDE_DIRS}" + INTERFACE_LINK_LIBRARIES "${QWT_LIBRARIES}" + ) + endif() +endif(QWT_FOUND) diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..8e4f3ebea0f1 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,70 @@ +pkgdesc="ROS - rqt_multiplot provides a GUI plugin for visualizing numeric values in multiple 2D plots using the Qwt plotting backend." +url="https://wiki.ros.org/rqt_multiplot" + +pkgname=ros-noetic-rqt-multiplot +pkgver='0.0.11' +pkgrel=1 +arch=('i686' 'x86_64' 'aarch64' 'armv7h' 'armv6h') +license=('BSD') + +ros_makedepends=( + ros-noetic-catkin +) + +makedepends=( + cmake + ros-build-tools + ${ros_makedepends[@]} +) + +ros_depends=( + ros-noetic-rosbag + ros-noetic-roscpp + ros-noetic-rqt-gui + ros-noetic-rqt-gui-cpp + ros-noetic-variant-topic-tools +) + +depends=( + ${ros_depends[@]} + qwt + qt5-base +) + +_dir="rqt_multiplot_plugin-${pkgver}" +source=( + "${pkgname}-${pkgver}.tar.gz::https://github.com/ANYbotics/rqt_multiplot_plugin/archive/${pkgver}.tar.gz" + "FindQwt.cmake" + "0.0.11.patch" +) +sha256sums=('79f0abc3fc26b31dd9d5e6eb01f6cfb5058b425e774c6455513ffe3f76de74b4' 'SKIP' 'SKIP') + +prepare() { + [ -d ${srcdir}/${_dir}/cmake ] || mkdir ${srcdir}/${_dir}/cmake + cp ${srcdir}/FindQwt.cmake ${srcdir}/${_dir}/cmake/ + cd ${srcdir}/${_dir} + patch -Np1 -i ${srcdir}/0.0.11.patch +} + +build() { + # Use ROS environment variables + source /usr/share/ros-build-tools/clear-ros-env.sh + [ -f /opt/ros/noetic/setup.bash ] && source /opt/ros/noetic/setup.bash + + # Create build directory + [ -d ${srcdir}/build ] || mkdir ${srcdir}/build + cd ${srcdir}/build + + # Build project + cmake ${srcdir}/${_dir} \ + -DCATKIN_BUILD_BINARY_PACKAGE=ON \ + -DCMAKE_INSTALL_PREFIX=/opt/ros/noetic \ + -DPYTHON_EXECUTABLE=/usr/bin/python \ + -DSETUPTOOLS_DEB_LAYOUT=OFF + make +} + +package() { + cd "${srcdir}/build" + make DESTDIR="${pkgdir}/" install +} |