pcl: updating to 1.7.2

The update to the latest version 1.7.2 was triggered by compilation
errors in pcl 1.7.0 (i.e., in file common/include/pcl/point_types.h)
due to the update of boost to 1.60.0 in openembedded-core [1].
This failure was detected by the internal CI build on 2016-01-15.

Due to the version update, the commit drops patch
`Fix incompatibility with Boost 1.56`, as the change is included
upstream in version 1.7.2. This commit also adds the upstream-accepted
patch `Add "WITH_OPENGL" option (...)` to make the dependency to OpenGL
libraries optional.

The commit configures package dependencies and compiles with the
least possible packages, so that the pcl-ros recipe compiles. As a
result, all optional packages in PCL, except qhull, can be set to FALSE.

If qhull is deactivated, the do_configure task of pcl-ros reports:

  | -- Could NOT find qhull (missing:  QHULL_LIBRARY)
  | ** WARNING ** surface features related to qhull will be disabled

However, in the do_compile task of pcl-ros, the build process assumes
that the surface features related to qhull are actually never disabled,
i.e., if qhull is deactivated, compiling pcl-ros fails with:

  | In file included from [...]/pcl_ros/src/pcl_ros/surface/convex_hull.cpp:40:0:
  | [...]/pcl_ros/include/pcl_ros/surface/convex_hull.h:44:37: fatal error: pcl/surface/convex_hull.h: No such file or directory
  | compilation terminated.
  | CMakeFiles/pcl_ros_surface.dir/build.make:89: recipe for target 'CMakeFiles/pcl_ros_surface.dir/src/pcl_ros/surface/convex_hull.cpp.o' failed
  | make[2]: *** [CMakeFiles/pcl_ros_surface.dir/src/pcl_ros/surface/convex_hull.cpp.o] Error 1
  | make[2]: Leaving directory '[...]/build'
  | CMakeFiles/Makefile2:1173: recipe for target 'CMakeFiles/pcl_ros_surface.dir/all' failed
  | make[1]: *** [CMakeFiles/pcl_ros_surface.dir/all] Error 2

[1] http://cgit.openembedded.org/openembedded-core/commit/?id=17d77db5e1203e18cdd178e7d9a457310425ebdc

Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
This commit is contained in:
Lukas Bulwahn 2016-01-16 11:30:59 +01:00
parent 2500299b4e
commit 027c774cd7
3 changed files with 52 additions and 83 deletions

View File

@ -0,0 +1,38 @@
From 1361899d1a336938811eceb17e2f71abe650ae17 Mon Sep 17 00:00:00 2001
From: Davide Viti <zinosat@tiscali.it>
Date: Sun, 9 Nov 2014 21:37:28 +0100
Subject: [PATCH] Add "WITH_OPENGL" option to make OpenGL and Glut inclusion
conditional
Upstream-Status: Accepted
This patch file was created from the pcl repository with:
`git checkout 1361899d1a336938811eceb17e2f71abe650ae17 && git format-patch -1`
I expect this patch to be dropped in any recipe version later than 1.7.2.
Signed-off-by: Lukas.Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
---
CMakeLists.txt | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6cc473d..7fda151 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -403,7 +403,10 @@ if(WITH_PCAP)
endif(WITH_PCAP)
# OpenGL and GLUT
-include("${PCL_SOURCE_DIR}/cmake/pcl_find_gl.cmake")
+option(WITH_OPENGL "Support for OpenGL" TRUE)
+if(WITH_OPENGL)
+ include("${PCL_SOURCE_DIR}/cmake/pcl_find_gl.cmake")
+endif(WITH_OPENGL)
### ---[ Create the config.h file
set(pcl_config_h_in "${CMAKE_CURRENT_SOURCE_DIR}/pcl_config.h.in")
--
2.4.3

View File

@ -1,77 +0,0 @@
From c2ad66f36569d64a445dbadeae197264d216d48c Mon Sep 17 00:00:00 2001
From: Sergey Alexandrov <alexandrov88@gmail.com>
Date: Sat, 23 Aug 2014 13:03:37 +0200
Subject: [PATCH] Fix incompatibility with Boost 1.56
The fix is based on the proposal of Andrew McMahon (@McDamon, #864).
Upstream-Status: Backport [retrieved from upstream repository]
This patch is copy of:
https://github.com/PointCloudLibrary/pcl/commit/c2ad66f36569d64a445dbadeae197264d216d48c.patch
---
io/src/lzf_image_io.cpp | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/io/src/lzf_image_io.cpp b/io/src/lzf_image_io.cpp
index 55eca90..7742f16 100644
--- a/io/src/lzf_image_io.cpp
+++ b/io/src/lzf_image_io.cpp
@@ -59,6 +59,17 @@
#define LZF_HEADER_SIZE 37
+
+// The signature of boost::property_tree::xml_parser::write_xml() changed in Boost 1.56
+// See https://github.com/PointCloudLibrary/pcl/issues/864
+#include <boost/version.hpp>
+#if (BOOST_VERSION >= 105600)
+ typedef boost::property_tree::xml_writer_settings<std::string> xml_writer_settings;
+#else
+ typedef boost::property_tree::xml_writer_settings<char> xml_writer_settings;
+#endif
+
+
//////////////////////////////////////////////////////////////////////////////
bool
pcl::io::LZFImageWriter::saveImageBlob (const char* data,
@@ -198,9 +209,8 @@ pcl::io::LZFImageWriter::writeParameter (const double &parameter,
catch (std::exception& e)
{}
- boost::property_tree::xml_writer_settings<char> settings ('\t', 1);
pt.put (tag, parameter);
- write_xml (filename, pt, std::locale (), settings);
+ write_xml (filename, pt, std::locale (), xml_writer_settings ('\t', 1));
return (true);
}
@@ -218,13 +228,12 @@ pcl::io::LZFDepth16ImageWriter::writeParameters (const pcl::io::CameraParameters
catch (std::exception& e)
{}
- boost::property_tree::xml_writer_settings<char> settings ('\t', 1);
pt.put ("depth.focal_length_x", parameters.focal_length_x);
pt.put ("depth.focal_length_y", parameters.focal_length_y);
pt.put ("depth.principal_point_x", parameters.principal_point_x);
pt.put ("depth.principal_point_y", parameters.principal_point_y);
pt.put ("depth.z_multiplication_factor", z_multiplication_factor_);
- write_xml (filename, pt, std::locale (), settings);
+ write_xml (filename, pt, std::locale (), xml_writer_settings ('\t', 1));
return (true);
}
@@ -279,12 +288,11 @@ pcl::io::LZFRGB24ImageWriter::writeParameters (const pcl::io::CameraParameters &
catch (std::exception& e)
{}
- boost::property_tree::xml_writer_settings<char> settings ('\t', 1);
pt.put ("rgb.focal_length_x", parameters.focal_length_x);
pt.put ("rgb.focal_length_y", parameters.focal_length_y);
pt.put ("rgb.principal_point_x", parameters.principal_point_x);
pt.put ("rgb.principal_point_y", parameters.principal_point_y);
- write_xml (filename, pt, std::locale (), settings);
+ write_xml (filename, pt, std::locale (), xml_writer_settings ('\t', 1));
return (true);
}

View File

@ -3,13 +3,13 @@ SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5b8a2a1aa14e6de44b4273134946a34c"
DEPENDS = "boost libflann libeigen libusb1 libpng qhull"
DEPENDS = "boost libflann libeigen qhull"
SRC_URI = "https://github.com/PointCloudLibrary/${PN}/archive/${P}.tar.gz"
SRC_URI[md5sum] = "e2ac2d2e72825d991c6d194f9586b5d8"
SRC_URI[sha256sum] = "a5446b4d892d0e6b080ab6b6b745faad2f2f415c6c1353b1424f6b38175c777e"
SRC_URI[md5sum] = "02c72eb6760fcb1f2e359ad8871b9968"
SRC_URI[sha256sum] = "479f84f2c658a6319b78271111251b4c2d6cf07643421b66bbc351d9bed0ae93"
SRC_URI += "file://0001-Fix-incompatibility-with-Boost-1.56.patch"
SRC_URI += "file://0001-Add-WITH_OPENGL-option-to-make-OpenGL-and-Glut-inclu.patch"
S = "${WORKDIR}/pcl-${P}"
@ -22,6 +22,14 @@ EXTRA_OECMAKE += "\
${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DHAVE_SSE3_EXTENSIONS_EXITCODE=0", "-DHAVE_SSE3_EXTENSIONS_EXITCODE=1", d)} \
${@bb.utils.contains("TARGET_CC_ARCH", "-msse2", "-DHAVE_SSE2_EXTENSIONS_EXITCODE=0", "-DHAVE_SSE2_EXTENSIONS_EXITCODE=1", d)} \
${@bb.utils.contains("TARGET_CC_ARCH", "-msse", "-DHAVE_SSE_EXTENSIONS_EXITCODE=0", "-DHAVE_SSE_EXTENSIONS_EXITCODE=1", d)} \
-DWITH_LIBUSB=FALSE \
-DWITH_PNG=FALSE \
-DWITH_QHULL=TRUE \
-DWITH_CUDA=FALSE \
-DWITH_QT=FALSE \
-DWITH_VTK=FALSE \
-DWITH_PCAP=FALSE \
-DWITH_OPENGL=FALSE \
"
#Setting -ffloat-store to alleviate 32bit vs 64bit discrepancies on non-SSE platforms.