sci-libs/octomap: bump to 1.9.0 and port to qt5
authorAlexis Ballier <aballier@gentoo.org>
Sat, 13 Jan 2018 09:51:50 +0000 (10:51 +0100)
committerAlexis Ballier <aballier@gentoo.org>
Sat, 13 Jan 2018 12:16:22 +0000 (13:16 +0100)
Package-Manager: Portage-2.3.19, Repoman-2.3.6

sci-libs/octomap/Manifest
sci-libs/octomap/files/qglqt5.patch [new file with mode: 0644]
sci-libs/octomap/octomap-1.9.0.ebuild [new file with mode: 0644]
sci-libs/octomap/octomap-9999.ebuild

index 815e4e9dde58c7248b4571efe6a29b650010f5dc..b1420dcc0f1750840b3cd6d31f949f0daa087ff5 100644 (file)
@@ -1 +1,2 @@
 DIST octomap-1.8.1.tar.gz 1679526 BLAKE2B 89d71ca43ce4e353d8cf758420907c8bb1e11aa42854178174594d03aaf04ed753a35c6e4ffc60a5ebe0297307aedee92bd69138af8598a8b5ae7ac716193c44 SHA512 e35567da0d6741747abbc87de49733d0e92bae8aedfe66a63766740cc6566f3cfdbc3c986369177497cc9a8fb208ed9b727da496cec48e2ad23328df06fbc8d6
+DIST octomap-1.9.0.tar.gz 1682421 BLAKE2B a299b4a956d5f9b6a67b05548f2239ad1181a4a1e673e5868d56d6e2d8f0101b2c75b114d1b7995c244c138fe04c8972104c25ca2f4ca6f75639f7326f06d8d7 SHA512 335a4ee3fe20f456afd2d8491f8fe6cfc2527d6e26aa690a69a39c1468e41d312fd84c85a1247deb11f513b9d50b8c69d34b46876f8257c205b0a99bac826237
diff --git a/sci-libs/octomap/files/qglqt5.patch b/sci-libs/octomap/files/qglqt5.patch
new file mode 100644 (file)
index 0000000..3fad0a0
--- /dev/null
@@ -0,0 +1,231 @@
+Index: octomap-1.9.0/octovis/src/ViewerGui.cpp
+===================================================================
+--- octomap-1.9.0.orig/octovis/src/ViewerGui.cpp
++++ octomap-1.9.0/octovis/src/ViewerGui.cpp
+@@ -286,7 +286,7 @@ void ViewerGui::showOcTree() {
+   m_mapSizeStatus->setText(size);
+   //}
+-  m_glwidget->updateGL();
++  m_glwidget->update();
+   // generate cubes -> display
+   // timeval start;
+@@ -299,7 +299,7 @@ void ViewerGui::showOcTree() {
+   //    gettimeofday(&stop, NULL);  // stop timer
+   //    double time_to_generate = (stop.tv_sec - start.tv_sec) + 1.0e-6 *(stop.tv_usec - start.tv_usec);
+   //    fprintf(stderr, "setOcTree took %f sec\n", time_to_generate);
+-  m_glwidget->updateGL();
++  m_glwidget->update();
+ }
+@@ -983,7 +983,7 @@ void ViewerGui::on_actionSelection_box_t
+   m_glwidget->enableSelectionBox(checked);
+-  m_glwidget->updateGL();
++  m_glwidget->update();
+ }
+ void ViewerGui::on_actionHeight_map_toggled(bool checked){
+@@ -1040,7 +1040,7 @@ void ViewerGui::on_actionAxes_toggled(bo
+       it != m_octrees.end(); ++it) {
+     it->second.octree_drawer->enableAxes(checked);
+   }
+-  m_glwidget->updateGL();
++  m_glwidget->update();
+ }
+ void ViewerGui::on_actionHideBackground_toggled(bool checked) {
+@@ -1048,7 +1048,7 @@ void ViewerGui::on_actionHideBackground_
+   if (getOctreeRecord(DEFAULT_OCTREE_ID, r)) {
+     if (checked) m_glwidget->removeSceneObject(r->octree_drawer);
+     else         m_glwidget->addSceneObject(r->octree_drawer);
+-    m_glwidget->updateGL();
++    m_glwidget->update();
+   }
+ }
+@@ -1142,7 +1142,7 @@ void ViewerGui::on_actionOctree_cells_to
+       it != m_octrees.end(); ++it) {
+     it->second.octree_drawer->enableOcTreeCells(enabled);
+   }
+-  m_glwidget->updateGL();
++  m_glwidget->update();
+ }
+ void ViewerGui::on_actionOctree_structure_toggled(bool enabled) {
+@@ -1150,7 +1150,7 @@ void ViewerGui::on_actionOctree_structur
+       it != m_octrees.end(); ++it) {
+     it->second.octree_drawer->enableOcTree(enabled);
+   }
+-  m_glwidget->updateGL();
++  m_glwidget->update();
+ }
+ void ViewerGui::on_actionFree_toggled(bool enabled) {
+@@ -1158,7 +1158,7 @@ void ViewerGui::on_actionFree_toggled(bo
+       it != m_octrees.end(); ++it) {
+     it->second.octree_drawer->enableFreespace(enabled);
+   }
+-  m_glwidget->updateGL();
++  m_glwidget->update();
+ }
+@@ -1176,24 +1176,21 @@ void ViewerGui::on_actionSelected_toggle
+   //   } else{
+   //     m_octreeDrawer->clearOcTreeSelection();
+   //   }
+-  //   m_glwidget->updateGL();
++  //   m_glwidget->update();
+   // }
+ }
+ void ViewerGui::on_action_bg_black_triggered() {
+   m_glwidget->setBackgroundColor( QColor(0,0,0) );
+-  m_glwidget->qglClearColor( m_glwidget->backgroundColor() );
+ }
+ void ViewerGui::on_action_bg_white_triggered() {
+   m_glwidget->setBackgroundColor( QColor(255,255,255) );
+-  m_glwidget->qglClearColor( m_glwidget->backgroundColor() );
+ }
+ void ViewerGui::on_action_bg_gray_triggered() {
+   m_glwidget->setBackgroundColor( QColor(117,117,117) );
+-  m_glwidget->qglClearColor( m_glwidget->backgroundColor() );
+ }
+ void ViewerGui::on_savecampose_triggered() {
+Index: octomap-1.9.0/octovis/src/ViewerWidget.cpp
+===================================================================
+--- octomap-1.9.0.orig/octovis/src/ViewerWidget.cpp
++++ octomap-1.9.0/octovis/src/ViewerWidget.cpp
+@@ -67,13 +67,12 @@ void ViewerWidget::init() {
+   // background color defaults to white
+   this->setBackgroundColor( QColor(255,255,255) );
+-  this->qglClearColor( this->backgroundColor() );
+ }
+ void ViewerWidget::resetView(){
+   this->camera()->setOrientation((float) -M_PI_2, (float) M_PI_2);
+   this->showEntireScene();
+-  updateGL();
++  update();
+ }
+@@ -98,7 +97,7 @@ void ViewerWidget::enableHeightColorMode
+   for(std::vector<SceneObject*>::iterator it = m_sceneObjects.begin(); it != m_sceneObjects.end(); it++) {
+     (*it)->enableHeightColorMode(enabled);
+   }
+-  updateGL();
++  update();
+ }
+ void ViewerWidget::enablePrintoutMode(bool enabled) {
+@@ -106,7 +105,7 @@ void ViewerWidget::enablePrintoutMode(bo
+   for(std::vector<SceneObject*>::iterator it = m_sceneObjects.begin(); it != m_sceneObjects.end(); it++) {
+     (*it)->enablePrintoutMode(enabled);
+   }
+-  updateGL();
++  update();
+ }
+ void ViewerWidget::enableSemanticColoring (bool enabled) {
+@@ -114,12 +113,12 @@ void ViewerWidget::enableSemanticColorin
+   for(std::vector<SceneObject*>::iterator it = m_sceneObjects.begin(); it != m_sceneObjects.end(); it++) {
+     (*it)->enableSemanticColoring(enabled);
+   }
+-  updateGL();
++  update();
+ }
+ void ViewerWidget::enableSelectionBox(bool enabled) {
+   m_drawSelectionBox = enabled;
+-  updateGL();
++  update();
+ }
+@@ -145,7 +144,7 @@ void ViewerWidget::setCamPosition(double
+   camera()->setPosition(qglviewer::Vec(x, y, z));
+   camera()->lookAt(qglviewer::Vec(lookX, lookY, lookZ));
+   camera()->setUpVector(qglviewer::Vec(0.0, 0.0, 1.0));
+-  updateGL();
++  update();
+ }
+ void ViewerWidget::setCamPose(const octomath::Pose6D& pose){
+@@ -161,12 +160,12 @@ void ViewerWidget::jumpToCamFrame(int id
+   } else {
+     std::cerr << "Error: Could not jump to frame " << frame << " of " << kfi->numberOfKeyFrames() << std::endl;
+   }
+-  updateGL();
++  update();
+ }
+ void ViewerWidget::deleteCameraPath(int id) {
+   if(camera()->keyFrameInterpolator(id)) {
+-    disconnect(camera()->keyFrameInterpolator(id), SIGNAL(interpolated()), this, SLOT(updateGL()));
++    disconnect(camera()->keyFrameInterpolator(id), SIGNAL(interpolated()), this, SLOT(update()));
+     disconnect(camera()->keyFrameInterpolator(id), SIGNAL(interpolated()), this, SLOT(cameraPathInterpolated()));
+     disconnect(camera()->keyFrameInterpolator(id), SIGNAL(endReached()), this, SLOT(cameraPathFinished()));
+     camera()->deletePath(id);
+@@ -243,7 +242,7 @@ void ViewerWidget::playCameraPath(int id
+     m_current_camera_frame = start_frame;
+     kfi->setInterpolationTime(kfi->keyFrameTime(start_frame));
+     std::cout << "Playing path of length " << kfi->numberOfKeyFrames() << ", start time " << kfi->keyFrameTime(start_frame) << std::endl;
+-    connect(kfi, SIGNAL(interpolated()), this, SLOT(updateGL()));
++    connect(kfi, SIGNAL(interpolated()), this, SLOT(update()));
+     connect(kfi, SIGNAL(interpolated()), this, SLOT(cameraPathInterpolated()));
+     connect(kfi, SIGNAL(endReached()), this, SLOT(cameraPathFinished()));
+     kfi->startInterpolation();
+@@ -252,7 +251,7 @@ void ViewerWidget::playCameraPath(int id
+ void ViewerWidget::stopCameraPath(int id) {
+   if(camera()->keyFrameInterpolator(id) && camera()->keyFrameInterpolator(id)->interpolationIsStarted()) {
+-    disconnect(camera()->keyFrameInterpolator(id), SIGNAL(interpolated()), this, SLOT(updateGL()));
++    disconnect(camera()->keyFrameInterpolator(id), SIGNAL(interpolated()), this, SLOT(update()));
+     disconnect(camera()->keyFrameInterpolator(id), SIGNAL(interpolated()), this, SLOT(cameraPathInterpolated()));
+     disconnect(camera()->keyFrameInterpolator(id), SIGNAL(endReached()), this, SLOT(cameraPathFinished()));
+     camera()->keyFrameInterpolator(id)->stopInterpolation();
+@@ -261,7 +260,7 @@ void ViewerWidget::stopCameraPath(int id
+ void ViewerWidget::cameraPathFinished() {
+   if(camera()->keyFrameInterpolator(m_current_camera_path)) {
+-    disconnect(camera()->keyFrameInterpolator(m_current_camera_path), SIGNAL(interpolated()), this, SLOT(updateGL()));
++    disconnect(camera()->keyFrameInterpolator(m_current_camera_path), SIGNAL(interpolated()), this, SLOT(update()));
+     disconnect(camera()->keyFrameInterpolator(m_current_camera_path), SIGNAL(interpolated()), this, SLOT(cameraPathInterpolated()));
+     disconnect(camera()->keyFrameInterpolator(m_current_camera_path), SIGNAL(endReached()), this, SLOT(cameraPathFinished()));
+     emit cameraPathStopped(m_current_camera_path);
+@@ -292,7 +291,7 @@ void ViewerWidget::setSceneBoundingBox(c
+ void ViewerWidget::addSceneObject(SceneObject* obj){
+   assert (obj);
+   m_sceneObjects.push_back(obj);
+-  updateGL();
++  update();
+ }
+ void ViewerWidget::removeSceneObject(SceneObject* obj){
+@@ -304,7 +303,7 @@ void ViewerWidget::removeSceneObject(Sce
+     else
+       ++it;
+   }
+-  updateGL();
++  update();
+ }
+ void ViewerWidget::clearAll(){
+@@ -364,7 +363,6 @@ void ViewerWidget::postDraw(){
+   glPushAttrib(GL_ALL_ATTRIB_BITS);
+   glDisable(GL_COLOR_MATERIAL);
+-  qglColor(foregroundColor());
+   if (gridIsDrawn()){
+     glLineWidth(1.0);
diff --git a/sci-libs/octomap/octomap-1.9.0.ebuild b/sci-libs/octomap/octomap-1.9.0.ebuild
new file mode 100644 (file)
index 0000000..0472eb7
--- /dev/null
@@ -0,0 +1,93 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+SCM=""
+if [ "${PV#9999}" != "${PV}" ] ; then
+       SCM="git-r3"
+       EGIT_REPO_URI="https://github.com/OctoMap/octomap"
+fi
+
+inherit ${SCM} cmake-utils
+
+if [ "${PV#9999}" != "${PV}" ] ; then
+       KEYWORDS=""
+       SRC_URI=""
+else
+       KEYWORDS="~amd64 ~arm"
+       SRC_URI="https://github.com/OctoMap/octomap/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+fi
+
+DESCRIPTION="An Efficient Probabilistic 3D Mapping Framework Based on Octrees"
+HOMEPAGE="http://octomap.github.io/"
+IUSE="qt5 dynamicEDT3D doc"
+LICENSE="BSD qt5? ( GPL-2 )"
+SLOT="0/19"
+
+RDEPEND="
+       qt5? (
+               virtual/opengl
+               dev-qt/qtcore:5
+               dev-qt/qtgui:5
+               dev-qt/qtwidgets:5
+               x11-libs/libQGLViewer:=
+       )
+"
+DEPEND="${RDEPEND}
+       doc? (
+               app-doc/doxygen
+               media-gfx/graphviz
+       )
+"
+
+PATCHES=( "${FILESDIR}/qglqt5.patch" )
+
+src_prepare() {
+       sed -e 's/DESTINATION lib/DESTINATION ${CMAKE_INSTALL_LIBDIR}/' \
+               -i */CMakeLists.txt \
+               -i */CMakeModules/InstallPkgConfigFile.cmake || die
+       sed -e 's/iewer-qt4/iewer-qt5/g' \
+               -i octovis/CMakeModules/FindQGLViewer.cmake || die
+       cmake-utils_src_prepare
+}
+
+src_configure() {
+       local mycmakeargs=(
+               "-DBUILD_OCTOVIS_SUBPROJECT=$(usex qt5 ON OFF)"
+               "-DOCTOVIS_QT5=TRUE"
+               "-DBUILD_DYNAMICETD3D_SUBPROJECT=$(usex dynamicEDT3D ON OFF)"
+       )
+       cmake-utils_src_configure
+}
+
+src_compile() {
+       cmake-utils_src_compile
+       if use doc ; then
+               cd "${BUILD_DIR}/octomap"
+               emake docs
+               if use dynamicEDT3D ; then
+                       cd "${BUILD_DIR}/dynamicEDT3D"
+                       emake docs_dynamicEDT3D
+               fi
+       fi
+}
+
+src_install() {
+       cmake-utils_src_install
+       if use doc ; then
+               insinto /usr/share/doc/${PF}/html/octomap
+               doins -r "${S}/octomap/doc/html/"*
+               if use dynamicEDT3D ; then
+                       insinto /usr/share/doc/${PF}/html/dynamicEDT3D
+                       doins -r "${S}/dynamicEDT3D/doc/html/"*
+               fi
+       fi
+
+       insinto /usr/share/ros_packages/${PN}
+       doins "${ED}/usr/share/${PN}/package.xml"
+       if use qt5; then
+               insinto /usr/share/ros_packages/octovis
+               doins "${ED}/usr/share/octovis/package.xml"
+       fi
+}
index 30141845c3940a7e5b865bc7fbd1e30f651486ca..f5c2b0c615acea9a754ab2d63b210ae9ea30c507 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=5
@@ -21,15 +21,16 @@ fi
 
 DESCRIPTION="An Efficient Probabilistic 3D Mapping Framework Based on Octrees"
 HOMEPAGE="http://octomap.github.io/"
-IUSE="qt4 dynamicEDT3D doc"
-LICENSE="BSD qt4? ( GPL-2 )"
-SLOT="0"
+IUSE="qt5 dynamicEDT3D doc"
+LICENSE="BSD qt5? ( GPL-2 )"
+SLOT="0/19"
 
 RDEPEND="
-       qt4? (
+       qt5? (
                virtual/opengl
-               dev-qt/qtcore:4
-               dev-qt/qtgui:4
+               dev-qt/qtcore:5
+               dev-qt/qtgui:5
+               dev-qt/qtwidgets:5
                x11-libs/libQGLViewer:=
        )
 "
@@ -44,12 +45,15 @@ src_prepare() {
        sed -e 's/DESTINATION lib/DESTINATION ${CMAKE_INSTALL_LIBDIR}/' \
                -i */CMakeLists.txt \
                -i */CMakeModules/InstallPkgConfigFile.cmake || die
+       sed -e 's/iewer-qt4/iewer-qt5/g' \
+               -i octovis/CMakeModules/FindQGLViewer.cmake || die
        cmake-utils_src_prepare
 }
 
 src_configure() {
        local mycmakeargs=(
-               "-DBUILD_OCTOVIS_SUBPROJECT=$(usex qt4 ON OFF)"
+               "-DBUILD_OCTOVIS_SUBPROJECT=$(usex qt5 ON OFF)"
+               "-DOCTOVIS_QT5=TRUE"
                "-DBUILD_DYNAMICETD3D_SUBPROJECT=$(usex dynamicEDT3D ON OFF)"
        )
        cmake-utils_src_configure
@@ -80,7 +84,7 @@ src_install() {
 
        insinto /usr/share/ros_packages/${PN}
        doins "${ED}/usr/share/${PN}/package.xml"
-       if use qt4; then
+       if use qt5; then
                insinto /usr/share/ros_packages/octovis
                doins "${ED}/usr/share/octovis/package.xml"
        fi