Merge pull request #423 from bulwahn/support-gcc6

patch all ROS packages to build with gcc6 (resolves #392)
This commit is contained in:
KristofRobot 2016-10-15 17:11:58 +02:00 committed by GitHub
commit 621669d0af
21 changed files with 680 additions and 57 deletions

View File

@ -1,13 +0,0 @@
DESCRIPTION = "a library for performing fast approximate nearest neighbor searches in high dimensional spaces"
AUTHOR = "Marius Muja and David G. Lowe"
HOMEPAGE = "http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=040a44ba915aa6b3b099ea189c7b7e20"
SRC_URI = "http://people.cs.ubc.ca/~mariusm/uploads/FLANN/flann-1.8.4-src.zip"
SRC_URI[md5sum] = "a0ecd46be2ee11a68d2a7d9c6b4ce701"
SRC_URI[sha256sum] = "dfbb9321b0d687626a644c70872a2c540b16200e7f4c7bd72f91ae032f445c08"
S = "${WORKDIR}/flann-${PV}-src"
inherit cmake

View File

@ -0,0 +1,13 @@
DESCRIPTION = "Fast Library for Approximate Nearest Neighbors"
AUTHOR = "Marius Muja and David G. Lowe"
HOMEPAGE = "http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=395adad2339bd9ce5fef13d564a9681c"
SRC_URI = "https://github.com/mariusmuja/flann/archive/${PV}.tar.gz"
SRC_URI[md5sum] = "73adef1c7bf8e8b978987e7860926ea6"
SRC_URI[sha256sum] = "b23b5f4e71139faa3bcb39e6bbcc76967fbaf308c4ee9d4f5bfbeceaa76cc5d3"
S = "${WORKDIR}/flann-${PV}"
inherit cmake

View File

@ -1,38 +0,0 @@
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

@ -0,0 +1,138 @@
From 19361abfa1bf21bc9be911f6ffa97f1c43174d8d Mon Sep 17 00:00:00 2001
From: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Date: Tue, 27 Sep 2016 14:05:22 +0200
Subject: [PATCH] make the pcl library compile with gcc6
With gcc6, compiling fails with `stdlib.h: No such file or directory`,
as including '-isystem /usr/include' breaks with gcc6, cf.,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129.
As far as I can judge from the history, all uses of `SYSTEM` were
added to avoid to show warnings from external libraries or were
added without any further argumentation for the use of `SYSTEM` in
the commit message. The detailed inspection of the git history is shown
below.
There are other better solutions to avoid to show warnings from
external libraries without modifying the SYSTEM default directories.
Hence, this commit replaces all occurrences of
`include_directory(SYSTEM ...)` with `include_directory(...)`. After
this change, the point cloud library compiles with gcc6 (in my setup).
The inspection of the git history pointed the following relevant
git commits:
In commit 636c49a6 [1], Eigen, FLANN, and MPI include directories
`are set as system to avoid warnings in those files`. The SYSTEM attribute
in the Eigen include directory remained until now; the other two occurrences
of the SYSTEM attribute have been dropped in commit 9003e42b [2] for FLANN
during work on `fixing the USE_ROS flag` without further explanation,
and in commit 582a1cff [3], which completely removed the whole MPI setup
in the CMakeLists.txt.
The commit ef3e489b [4] `set[ted] Boost libraries as system libraries`,
probably with the same rationale as in commit 636c49a6, i.e., to avoid
warnings in those files.
The commit 55deacd7 [5] provided a generic cmake script for grabbers
based on already pre-existing patterns in the CMakeLists.txt file.
[1] https://github.com/PointCloudLibrary/pcl/commit/636c49a6ffe7ec8c5409803b137b9d77081b9f9b
[2] https://github.com/PointCloudLibrary/pcl/commit/9003e42b7f648cd94ed817473c566cc97517ae08
[3] https://github.com/PointCloudLibrary/pcl/commit/582a1cffd5f074135937bfdaeab01b4e6048ce32
[4] https://github.com/PointCloudLibrary/pcl/commit/ef3e489ba7ef6fe3ef0319b15f5dc4b64b21ea32
[5] https://github.com/PointCloudLibrary/pcl/commit/55deacd7b1bb3cc63ad19bef971b97f0777864d6
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Upstream-Status: Pending [https://github.com/PointCloudLibrary/pcl/pull/1730]
---
CMakeLists.txt | 2 +-
cmake/Modules/FindOpenNI.cmake | 2 +-
cmake/Modules/FindOpenNI2.cmake | 2 +-
cmake/pcl_find_boost.cmake | 2 +-
cmake/pcl_targets.cmake | 2 +-
test/CMakeLists.txt | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e5fd763..c658df5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -272,7 +272,7 @@ endif()
# Eigen (required)
find_package(Eigen REQUIRED)
-include_directories(SYSTEM ${EIGEN_INCLUDE_DIRS})
+include_directories(${EIGEN_INCLUDE_DIRS})
add_definitions(-DEIGEN_USE_NEW_STDVECTOR
-DEIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET)
# FLANN (required)
diff --git a/cmake/Modules/FindOpenNI.cmake b/cmake/Modules/FindOpenNI.cmake
index 9f772a4..bd36f3e 100644
--- a/cmake/Modules/FindOpenNI.cmake
+++ b/cmake/Modules/FindOpenNI.cmake
@@ -30,7 +30,7 @@ if(NOT WIN32)
message(STATUS "OpenNI disabled because libusb-1.0 not found.")
return()
else()
- include_directories(SYSTEM ${USB_10_INCLUDE_DIR})
+ include_directories(${USB_10_INCLUDE_DIR})
endif()
endif(NOT WIN32)
diff --git a/cmake/Modules/FindOpenNI2.cmake b/cmake/Modules/FindOpenNI2.cmake
index 713099a..8226895 100644
--- a/cmake/Modules/FindOpenNI2.cmake
+++ b/cmake/Modules/FindOpenNI2.cmake
@@ -30,7 +30,7 @@ if(NOT WIN32)
message(STATUS "OpenNI 2 disabled because libusb-1.0 not found.")
return()
else()
- include_directories(SYSTEM ${USB_10_INCLUDE_DIR})
+ include_directories(${USB_10_INCLUDE_DIR})
endif()
endif(NOT WIN32)
diff --git a/cmake/pcl_find_boost.cmake b/cmake/pcl_find_boost.cmake
index a3abe1c..c57b87d 100644
--- a/cmake/pcl_find_boost.cmake
+++ b/cmake/pcl_find_boost.cmake
@@ -48,6 +48,6 @@ if(Boost_FOUND)
# Obtain diagnostic information about Boost's automatic linking outputted
# during compilation time.
add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS})
- include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
+ include_directories(${Boost_INCLUDE_DIRS})
link_directories(${Boost_LIBRARY_DIRS})
endif(Boost_FOUND)
diff --git a/cmake/pcl_targets.cmake b/cmake/pcl_targets.cmake
index 691ead0..f730743 100644
--- a/cmake/pcl_targets.cmake
+++ b/cmake/pcl_targets.cmake
@@ -858,7 +858,7 @@ macro(PCL_ADD_GRABBER_DEPENDENCY _name _description)
message(WARNING "${_description}: not building because ${_name} not found")
else()
set(HAVE_${_name_capitalized} TRUE)
- include_directories(SYSTEM "${${_name_capitalized}_INCLUDE_DIRS}")
+ include_directories("${${_name_capitalized}_INCLUDE_DIRS}")
endif()
endif()
endmacro(PCL_ADD_GRABBER_DEPENDENCY)
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 3b3e2d7..342cb62 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -17,7 +17,7 @@ PCL_SUBSYS_DEPEND(build "${SUBSYS_NAME}" DEPS ${SUBSYS_DEPS} OPT_DEPS ${OPT_DEPS
if(build)
find_package(Gtest REQUIRED)
- include_directories(SYSTEM ${GTEST_INCLUDE_DIRS} ${GTEST_SRC_DIR})
+ include_directories(${GTEST_INCLUDE_DIRS} ${GTEST_SRC_DIR})
add_library(pcl_gtest STATIC ${GTEST_SRC_DIR}/src/gtest-all.cc)
--
2.5.5

View File

@ -6,10 +6,10 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5b8a2a1aa14e6de44b4273134946a34c"
DEPENDS = "boost libflann libeigen qhull"
SRC_URI = "https://github.com/PointCloudLibrary/${PN}/archive/${P}.tar.gz"
SRC_URI[md5sum] = "02c72eb6760fcb1f2e359ad8871b9968"
SRC_URI[sha256sum] = "479f84f2c658a6319b78271111251b4c2d6cf07643421b66bbc351d9bed0ae93"
SRC_URI[md5sum] = "8c1308be2c13106e237e4a4204a32cca"
SRC_URI[sha256sum] = "9e54b0c1b59a67a386b9b0f4acb2d764272ff9a0377b825c4ed5eedf46ebfcf4"
SRC_URI += "file://0001-Add-WITH_OPENGL-option-to-make-OpenGL-and-Glut-inclu.patch"
SRC_URI += "file://0001-make-the-pcl-library-compile-with-gcc6.patch"
S = "${WORKDIR}/pcl-${P}"
@ -19,6 +19,7 @@ EXTRA_OECMAKE += "\
-DHAVE_POSIX_MEMALIGN_EXITCODE=0 \
${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DHAVE_SSE4_2_EXTENSIONS_EXITCODE=0", "-DHAVE_SSE4_2_EXTENSIONS_EXITCODE=1", d)} \
${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DHAVE_SSE4_1_EXTENSIONS_EXITCODE=0", "-DHAVE_SSE4_1_EXTENSIONS_EXITCODE=1", d)} \
-DHAVE_SSSE3_EXTENSIONS_EXITCODE=0 \
${@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)} \
@ -37,4 +38,4 @@ CXXFLAGS += "${@bb.utils.contains("TARGET_CC_ARCH", "-mfpmath=sse", "", "-ffloat
inherit cmake
FILES_${PN}-dev += "${datadir}/${PN}-1.7/*.cmake"
FILES_${PN}-dev += "${datadir}/${PN}-1.8/*.cmake"

View File

@ -0,0 +1,45 @@
From b2f10174c48333f7a0ce8c01b86536f959d92348 Mon Sep 17 00:00:00 2001
From: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Date: Wed, 21 Sep 2016 13:16:07 +0200
Subject: [PATCH] address gcc6 build error
With gcc6, compiling fails with `stdlib.h: No such file or directory`,
as including '-isystem /usr/include' breaks with gcc6, cf.,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129.
This commit addresses this issue for this package in the same way
it was addressed in various other ROS packages. A list of related
commits and pull requests is at:
https://github.com/ros/rosdistro/issues/12783
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Upstream-Status: Accepted [https://github.com/ros/dynamic_reconfigure/commit/b2f10174c48333f7a0ce8c01b86536f959d92348]
This patch has been generated with:
`git format-patch -1 b2f10174c48333f7a0ce8c01b86536f959d92348`
in the dynamic_reconfigure repository.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
---
CMakeLists.txt | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ce896b9..60c6333 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,8 +4,7 @@ project(dynamic_reconfigure)
find_package(catkin REQUIRED COMPONENTS message_generation roscpp std_msgs)
find_package(Boost REQUIRED COMPONENTS system thread)
-include_directories(include ${catkin_INCLUDE_DIRS})
-include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
+include_directories(include ${catkin_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS})
catkin_python_setup()
--
2.5.5

View File

@ -10,6 +10,8 @@ SRC_URI = "https://github.com/ros/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilena
SRC_URI[md5sum] = "5728cc591b90e7ddd42b936e74e3062c"
SRC_URI[sha256sum] = "f1b073c36fd937bd8697bc92ec38926f9194069e6e8d80ab70eb09610720ee7f"
SRC_URI += "file://0001-address-gcc6-build-error.patch"
S = "${WORKDIR}/${ROS_SP}"
inherit catkin

View File

@ -0,0 +1,43 @@
From 77e184e32b19bfd7ee64d3344bcff0a28eccbb4e Mon Sep 17 00:00:00 2001
From: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Date: Wed, 28 Sep 2016 10:25:02 +0200
Subject: [PATCH] address gcc6 build error (backport for 0.4.4)
With gcc6, compiling fails with `stdlib.h: No such file or directory`,
as including '-isystem /usr/include' breaks with gcc6, cf.,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129.
This commit addresses this issue for this package in the same way
it was addressed in various other ROS packages. A list of related
commits and pull requests is at:
https://github.com/ros/rosdistro/issues/12783
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Upstream-Status: Accepted [https://github.com/ros-planning/geometric_shapes/commit/7a0af36bb67c0718373f6bbac31959e8356cda92]
The content of commit 7a0af36bb67c0718373f6bbac31959e8356cda92 has been
manually backported for version 0.4.4, and resulted in this patch.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9ae6b09..145d7a8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -52,7 +52,7 @@ if (HAVE_QHULL_2011)
endif()
include_directories(include)
-include_directories(SYSTEM ${EIGEN_INCLUDE_DIRS} ${Boost_INCLUDE_DIR} ${ASSIMP_INCLUDE_DIRS} ${OCTOMAP_INCLUDE_DIRS})
+include_directories(${EIGEN_INCLUDE_DIRS} ${Boost_INCLUDE_DIR} ${ASSIMP_INCLUDE_DIRS} ${OCTOMAP_INCLUDE_DIRS})
include_directories(${catkin_INCLUDE_DIRS} ${console_bridge_INCLUDE_DIRS})
link_directories(${catkin_LIBRARY_DIRS} ${console_bridge_LIBRARY_DIRS} ${ASSIMP_LIBRARY_DIRS})
--
2.5.5

View File

@ -9,6 +9,8 @@ SRC_URI = "https://github.com/ros-planning/${ROS_SPN}/archive/${PV}.tar.gz;downl
SRC_URI[md5sum] = "f684af3e76eb37b4c0153527162d73dc"
SRC_URI[sha256sum] = "4d600890b72d0b20b2fbcc9ded06464a37c871317445ec32d3858bd719b0aa02"
SRC_URI += "file://0001-address-gcc6-build-error-backport-for-0.4.4.patch"
S = "${WORKDIR}/${ROS_SP}"
inherit catkin

View File

@ -0,0 +1,35 @@
From b0d31cc1e9a43b45d216ee7f804e901a5c0f8936 Mon Sep 17 00:00:00 2001
From: Hodorgasm <nsane457@gmail.com>
Date: Mon, 19 Sep 2016 17:58:22 -0400
Subject: [PATCH] Fix "stdlib.h: No such file or directory" errors in GCC-6
Including '-isystem /usr/include' breaks building with GCC-6.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129
Upstream-Status: Accepted [https://github.com/ros/geometry/commit/b0d31cc1e9a43b45d216ee7f804e901a5c0f8936]
This patch has been generated with:
`git format-patch -1 b0d31cc1e9a43b45d216ee7f804e901a5c0f8936`
in the geometry repository.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
---
tf/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tf/CMakeLists.txt b/tf/CMakeLists.txt
index 8077561..cf72127 100644
--- a/tf/CMakeLists.txt
+++ b/tf/CMakeLists.txt
@@ -8,7 +8,7 @@ find_package(catkin COMPONENTS angles geometry_msgs message_filters message_gene
catkin_python_setup()
-include_directories(SYSTEM ${Boost_INCLUDE_DIR}
+include_directories(${Boost_INCLUDE_DIR}
${catkin_INCLUDE_DIRS}
)
include_directories(include)
--
2.5.5

View File

@ -7,4 +7,6 @@ DEPENDS = "angles geometry-msgs message-filters sensor-msgs tf2-ros"
require geometry.inc
SRC_URI += "file://0001-Fix-stdlib.h-No-such-file-or-directory-errors-in-GCC.patch;striplevel=2"
RDEPENDS_${PN} = "python-numpy"

View File

@ -0,0 +1,138 @@
From 6c2d65452bd5fe62723988a1a570789921900d59 Mon Sep 17 00:00:00 2001
From: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Date: Fri, 30 Sep 2016 15:39:47 +0200
Subject: [PATCH 1/2] address gcc6 build error
With gcc6, compiling fails with `stdlib.h: No such file or directory`,
as including '-isystem /usr/include' breaks with gcc6, cf.,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129.
This commit addresses this issue for this package in the same way
it was addressed in various other ROS packages. A list of related
commits and pull requests is at:
https://github.com/ros/rosdistro/issues/12783
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Upstream-Status: Accepted [https://github.com/ros-perception/image_pipeline/commit/6c2d65452bd5fe62723988a1a570789921900d59]
This patch has been generated with:
`git format-patch -2 562332df73781c1e56ce9123542334cc1d91b143`
in the image_pipeline repository.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
---
depth_image_proc/CMakeLists.txt | 6 +-----
image_proc/CMakeLists.txt | 3 +--
image_publisher/CMakeLists.txt | 3 +--
image_rotate/CMakeLists.txt | 5 +----
image_view/CMakeLists.txt | 8 ++++----
stereo_image_proc/CMakeLists.txt | 4 +---
6 files changed, 9 insertions(+), 20 deletions(-)
diff --git a/depth_image_proc/CMakeLists.txt b/depth_image_proc/CMakeLists.txt
index 0a7c7e2..6ceebfe 100644
--- a/depth_image_proc/CMakeLists.txt
+++ b/depth_image_proc/CMakeLists.txt
@@ -10,11 +10,7 @@ catkin_package(
find_package(Boost REQUIRED)
find_package(Eigen REQUIRED)
find_package(OpenCV REQUIRED)
-include_directories(include
- SYSTEM ${BOOST_INCLUDE_DIRS}
- ${catkin_INCLUDE_DIRS}
- ${EIGEN_INCLUDE_DIRS}
-)
+include_directories(include ${BOOST_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS})
add_library(${PROJECT_NAME} src/nodelets/convert_metric.cpp
src/nodelets/crop_foremost.cpp
diff --git a/image_proc/CMakeLists.txt b/image_proc/CMakeLists.txt
index a13371f..34905f0 100755
--- a/image_proc/CMakeLists.txt
+++ b/image_proc/CMakeLists.txt
@@ -17,8 +17,7 @@ catkin_package(
LIBRARIES ${PROJECT_NAME}
)
-include_directories(SYSTEM ${catkin_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS})
-include_directories(include)
+include_directories(include ${catkin_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS})
# Nodelet library
add_library(${PROJECT_NAME} src/libimage_proc/processor.cpp
diff --git a/image_publisher/CMakeLists.txt b/image_publisher/CMakeLists.txt
index 8015a45..431109c 100644
--- a/image_publisher/CMakeLists.txt
+++ b/image_publisher/CMakeLists.txt
@@ -8,8 +8,7 @@ generate_dynamic_reconfigure_options(cfg/ImagePublisher.cfg)
catkin_package()
-# add the executable
-include_directories(SYSTEM ${catkin_INCLUDE_DIRS})
+include_directories(${catkin_INCLUDE_DIRS})
add_library(${PROJECT_NAME} SHARED src/nodelet/image_publisher_nodelet.cpp)
target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES})
diff --git a/image_rotate/CMakeLists.txt b/image_rotate/CMakeLists.txt
index 04ba03b..75d8e77 100644
--- a/image_rotate/CMakeLists.txt
+++ b/image_rotate/CMakeLists.txt
@@ -12,10 +12,7 @@ find_package(OpenCV REQUIRED core imgproc)
find_package(Eigen REQUIRED)
# add the executable
-include_directories(SYSTEM ${catkin_INCLUDE_DIRS}
- ${EIGEN_INCLUDE_DIRS}
- ${OpenCV_INCLUDE_DIRS}
-)
+include_directories(${catkin_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS})
add_library(${PROJECT_NAME} SHARED src/nodelet/image_rotate_nodelet.cpp)
target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES} ${OpenCV_LIBRARIES})
diff --git a/image_view/CMakeLists.txt b/image_view/CMakeLists.txt
index 78b9eaa..93fabe7 100644
--- a/image_view/CMakeLists.txt
+++ b/image_view/CMakeLists.txt
@@ -8,9 +8,9 @@ catkin_package(CATKIN_DEPENDS dynamic_reconfigure)
find_package(Boost REQUIRED COMPONENTS signals thread)
find_package(OpenCV REQUIRED)
-include_directories(SYSTEM ${Boost_INCLUDE_DIRS}
- ${catkin_INCLUDE_DIRS}
- ${OpenCV_INCLUDE_DIRS}
+include_directories(${Boost_INCLUDE_DIRS}
+ ${catkin_INCLUDE_DIRS}
+ ${OpenCV_INCLUDE_DIRS}
)
# Extra tools
@@ -40,7 +40,7 @@ endif()
find_package(GTK2)
add_definitions(-DHAVE_GTK)
-include_directories(SYSTEM ${GTK2_INCLUDE_DIRS})
+include_directories(${GTK2_INCLUDE_DIRS})
# Nodelet library
add_library(image_view src/nodelets/image_nodelet.cpp src/nodelets/disparity_nodelet.cpp src/nodelets/window_thread.cpp)
diff --git a/stereo_image_proc/CMakeLists.txt b/stereo_image_proc/CMakeLists.txt
index b7127d2..e201436 100644
--- a/stereo_image_proc/CMakeLists.txt
+++ b/stereo_image_proc/CMakeLists.txt
@@ -16,9 +16,7 @@ catkin_package(
include_directories(include)
find_package(OpenCV REQUIRED)
-include_directories(SYSTEM ${catkin_INCLUDE_DIRS}
- ${OpenCV_INCLUDE_DIRS}
-)
+include_directories(${catkin_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS})
# Nodelet library
add_library(${PROJECT_NAME} src/libstereo_image_proc/processor.cpp src/nodelets/disparity.cpp src/nodelets/point_cloud2.cpp)
--
2.5.5

View File

@ -0,0 +1,57 @@
From 562332df73781c1e56ce9123542334cc1d91b143 Mon Sep 17 00:00:00 2001
From: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Date: Thu, 6 Oct 2016 08:55:27 +0200
Subject: [PATCH 2/2] explicitly cast to std::vector<double> to make gcc6 happy
With gcc6, compiling image_publisher fails with this error:
```
/[...]/image_publisher/src/nodelet/image_publisher_nodelet.cpp: In member function 'virtual void image_publisher::ImagePublisherNodelet::onInit()':
/[...]/image_publisher/src/nodelet/image_publisher_nodelet.cpp:180:43: error: ambiguous overload for 'operator=' (operand types are 'sensor_msgs::CameraInfo_<std::allocator<void> >::_D_type {aka std::vector<double>}' and 'boost::assign_detail::generic_list<int>')
camera_info_.D = list_of(0)(0)(0)(0)(0);
```
After adding an initial explicit type cast for the assignment,
compiling fails further with:
```
| /[...]/image_publisher/src/nodelet/image_publisher_nodelet.cpp: In member function 'virtual void image_publisher::ImagePublisherNodelet::onInit()':
| /[...]/image_publisher/src/nodelet/image_publisher_nodelet.cpp:180:65: error: call of overloaded 'vector(boost::assign_detail::generic_list<int>&)' is ambiguous
| camera_info_.D = std::vector<double> (list_of(0)(0)(0)(0)(0));
```
Various sources on the internet [1, 2, 3] point to use the
`convert_to_container` method; hence, this commit follows those
suggestions and with that image_publisher compiles with gcc6.
[1] http://stackoverflow.com/questions/16211410/ambiguity-when-using-boostassignlist-of-to-construct-a-stdvector
[2] http://stackoverflow.com/questions/12352692/ambiguous-call-with-list-of-in-vs2010/12362548#12362548
[3] http://stackoverflow.com/questions/13285272/using-boostassignlist-of?rq=1
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Upstream-Status: Accepted [https://github.com/ros-perception/image_pipeline/commit/562332df73781c1e56ce9123542334cc1d91b143]
This patch has been generated with:
`git format-patch -2 562332df73781c1e56ce9123542334cc1d91b143`
in the image_pipeline repository.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
---
image_publisher/src/nodelet/image_publisher_nodelet.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/image_publisher/src/nodelet/image_publisher_nodelet.cpp b/image_publisher/src/nodelet/image_publisher_nodelet.cpp
index 4102d0d..26e1352 100644
--- a/image_publisher/src/nodelet/image_publisher_nodelet.cpp
+++ b/image_publisher/src/nodelet/image_publisher_nodelet.cpp
@@ -177,7 +177,7 @@ public:
camera_info_.width = image_.cols;
camera_info_.height = image_.rows;
camera_info_.distortion_model = "plumb_bob";
- camera_info_.D = list_of(0)(0)(0)(0)(0);
+ camera_info_.D = list_of(0)(0)(0)(0)(0).convert_to_container<std::vector<double> >();
camera_info_.K = list_of(1)(0)(camera_info_.width/2)(0)(1)(camera_info_.height/2)(0)(0)(1);
camera_info_.R = list_of(1)(0)(0)(0)(1)(0)(0)(0)(1);
camera_info_.P = list_of(1)(0)(camera_info_.width/2)(0)(0)(1)(camera_info_.height/2)(0)(0)(0)(1)(0);
--
2.5.5

View File

@ -2,6 +2,9 @@ SRC_URI = "https://github.com/ros-perception/${ROS_SPN}/archive/${PV}.tar.gz;dow
SRC_URI[md5sum] = "d727bc9da9f7772649ab7c5c7c9f652e"
SRC_URI[sha256sum] = "fc3073428fc930523efd6ed4a86d838ab0f0ff04a312eb4188c72a854d300e97"
SRC_URI += "file://0001-address-gcc6-build-error.patch;patchdir=.."
SRC_URI += "file://0002-explicitly-cast-to-std-vector-double-to-make-gcc6-ha.patch;patchdir=.."
S = "${WORKDIR}/${ROS_SP}/${ROS_BPN}"
inherit catkin

View File

@ -0,0 +1,69 @@
From def48f89c985736901bb7bbe427f65acd18ef8d6 Mon Sep 17 00:00:00 2001
From: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Date: Tue, 27 Sep 2016 15:25:19 +0200
Subject: [PATCH] address gcc6 build error
With gcc6, compiling fails with `stdlib.h: No such file or directory`,
as including '-isystem /usr/include' breaks with gcc6, cf.,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129.
This commit addresses this issue for this package in the same way
it was addressed in various other ROS packages. A list of related
commits and pull requests is at:
https://github.com/ros/rosdistro/issues/12783
The SYSTEM attribute for the eigen and pcl include directories
was added in commit 9e876d2b [1] on 2012-09-16 during the
package's transition to ROS Groovy. The reason for using
the SYSTEM attribute cannot be inferred from that commit.
This attribute remained in the CMakeLists.txt during further
refinements in commits be4aebdb and 3a156140 on 2014-02-24, and
was not further touched until now.
[1] https://github.com/ros-planning/navigation/commit/9e876d2b45aca2e2166ac5a508b0e7c7abc50717
[2] https://github.com/ros-planning/navigation/commit/be4aebdb658381104b8e70f832091926e67ea0b4
[3] https://github.com/ros-planning/navigation/commit/3a156140439ea2300aaad45f7f2a65dab503ff24
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Upstream-Status: Pending [https://github.com/ros-planning/navigation/pull/522]
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
---
move_slow_and_clear/CMakeLists.txt | 5 ++---
navfn/CMakeLists.txt | 1 -
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/move_slow_and_clear/CMakeLists.txt b/move_slow_and_clear/CMakeLists.txt
index 078052d..686596e 100644
--- a/move_slow_and_clear/CMakeLists.txt
+++ b/move_slow_and_clear/CMakeLists.txt
@@ -19,9 +19,8 @@ find_package(Boost REQUIRED COMPONENTS thread)
include_directories(
include
${catkin_INCLUDE_DIRS}
- SYSTEM
- ${EIGEN_INCLUDE_DIRS}
- ${PCL_INCLUDE_DIRS}
+ ${EIGEN_INCLUDE_DIRS}
+ ${PCL_INCLUDE_DIRS}
)
add_definitions(${EIGEN_DEFINITIONS})
diff --git a/navfn/CMakeLists.txt b/navfn/CMakeLists.txt
index ad01c3a..3e3995f 100644
--- a/navfn/CMakeLists.txt
+++ b/navfn/CMakeLists.txt
@@ -21,7 +21,6 @@ find_package(PCL REQUIRED)
include_directories(
include
${catkin_INCLUDE_DIRS}
- SYSTEM
${EIGEN_INCLUDE_DIRS}
${PCL_INCLUDE_DIRS}
)
--
2.5.5

View File

@ -2,6 +2,8 @@ SRC_URI = "https://github.com/ros-planning/${ROS_SPN}/archive/${PV}.tar.gz;downl
SRC_URI[md5sum] = "d7a392da183b3c2a5fce063e90cbf1f2"
SRC_URI[sha256sum] = "169f89a4a3a94437ffbf80a9b06b65471c17529169d1940a217e92d85481f18f"
SRC_URI += "file://0001-address-gcc6-build-error.patch;patchdir=.."
S = "${WORKDIR}/${ROS_SP}/${ROS_BPN}"
inherit catkin

View File

@ -65,8 +65,6 @@ RDEPENDS_${PN} = "\
hardware-interface \
joint-limits-interface \
transmission-interface \
collada-parser \
collada-urdf \
kdl-parser \
resource-retriever \
urdf-parser-plugin \
@ -175,6 +173,7 @@ RDEPENDS_${PN} = "\
rosbridge-suite \
"
# collada-parser and collada-urdf require collada-dom, which does not compile with gcc6.
# ar-track-alvar does not compile due to unknown opencv identifiers.
# image-view requires gtk+, but it cannot be found by cmake for some reason.
# sound-play requires python-gst (which is not available in any layers' master branch)

View File

@ -0,0 +1,56 @@
From 6b9e3cab6b09c9b65a7bef1374e079a87711a473 Mon Sep 17 00:00:00 2001
From: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Date: Wed, 21 Sep 2016 21:22:30 +0200
Subject: [PATCH] [urdf] address gcc6 build error and tune (#156)
With gcc6, compiling fails with `stdlib.h: No such file or directory`,
as including '-isystem /usr/include' breaks with gcc6, cf.,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129.
This commit addresses this issue for this package in the same way
it was addressed in various other ROS packages. A list of related
commits and pull requests is at:
https://github.com/ros/rosdistro/issues/12783
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Upstream-Status: Accepted [https://github.com/ros/robot_model/commit/6b9e3cab6b09c9b65a7bef1374e079a87711a473]
This patch has been generated with:
`git format-patch -1 6b9e3cab6b09c9b65a7bef1374e079a87711a473`
in the robot_model repository.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
---
urdf/CMakeLists.txt | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/urdf/CMakeLists.txt b/urdf/CMakeLists.txt
index ae7437e..a0872e9 100644
--- a/urdf/CMakeLists.txt
+++ b/urdf/CMakeLists.txt
@@ -20,17 +20,16 @@ catkin_package(
DEPENDS urdfdom_headers urdfdom Boost pcrecpp
)
-include_directories(SYSTEM ${Boost_INCLUDE_DIR})
-link_directories(${Boost_LIBRARY_DIRS})
-
include_directories(
include
+ ${Boost_INCLUDE_DIR}
${catkin_INCLUDE_DIRS}
${urdfdom_INCLUDE_DIRS}
${urdfdom_headers_INCLUDE_DIRS}
${TinyXML_INCLUDE_DIRS}
)
-link_directories(${catkin_LIBRARY_DIRS})
+
+link_directories(${Boost_LIBRARY_DIRS} ${catkin_LIBRARY_DIRS})
add_library(${PROJECT_NAME} src/model.cpp src/rosconsole_bridge.cpp)
target_link_libraries(${PROJECT_NAME} ${TinyXML_LIBRARIES} ${catkin_LIBRARIES} ${urdfdom_LIBRARIES})
--
2.5.5

View File

@ -6,3 +6,5 @@ LIC_FILES_CHKSUM = "file://package.xml;beginline=15;endline=15;md5=d566ef916e9de
DEPENDS = "rosconsole-bridge roscpp urdfdom-headers urdf-parser-plugin pluginlib urdfdom cmake-modules libtinyxml"
require robot-model.inc
SRC_URI += "file://0001-urdf-address-gcc6-build-error-and-tune-156.patch;striplevel=2"

View File

@ -0,0 +1,65 @@
From aaf08c721c35a654c0ef0ac013e18db1b111bfdc Mon Sep 17 00:00:00 2001
From: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Date: Wed, 21 Sep 2016 11:27:28 +0200
Subject: [PATCH] address gcc6 build error in cv_bridge and tune
With gcc6, compiling fails with `stdlib.h: No such file or directory`,
as including '-isystem /usr/include' breaks with gcc6, cf.,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129
This commit addresses this issue for cv_bridge in the same way
it was done in the commit ead421b8 [1] for image_geometry.
This issue was also addressed in various other ROS packages.
A list of related commits and pull requests is at:
https://github.com/ros/rosdistro/issues/12783
[1] https://github.com/ros-perception/vision_opencv/commit/ead421b85eeb750cbf7988657015296ed6789bcf
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Upstream-Status: Accepted [https://github.com/ros-perception/vision_opencv/commit/aaf08c721c35a654c0ef0ac013e18db1b111bfdc]
This patch has been generated with:
`git format-patch -1 aaf08c721c35a654c0ef0ac013e18db1b111bfdc`
in the vision_opencv repository.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
---
cv_bridge/CMakeLists.txt | 3 +--
cv_bridge/src/CMakeLists.txt | 5 +----
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/cv_bridge/CMakeLists.txt b/cv_bridge/CMakeLists.txt
index 075fbbd..cce8af7 100644
--- a/cv_bridge/CMakeLists.txt
+++ b/cv_bridge/CMakeLists.txt
@@ -19,8 +19,7 @@ catkin_package(
catkin_python_setup()
-include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS})
-include_directories(include ${catkin_INCLUDE_DIRS})
+include_directories(include ${Boost_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS})
if(NOT ANDROID)
add_subdirectory(python)
diff --git a/cv_bridge/src/CMakeLists.txt b/cv_bridge/src/CMakeLists.txt
index 8ec321c..37ba30e 100644
--- a/cv_bridge/src/CMakeLists.txt
+++ b/cv_bridge/src/CMakeLists.txt
@@ -26,10 +26,7 @@ if(NOT PYTHON_NUMPY_INCLUDE_DIR)
endif(PYTHON_NUMPY_PROCESS EQUAL 0)
endif(NOT PYTHON_NUMPY_INCLUDE_DIR)
-include_directories(SYSTEM ${PYTHON_INCLUDE_PATH}
- ${Boost_INCLUDE_DIRS}
- ${PYTHON_NUMPY_INCLUDE_DIR} # cv_bridge module uses NumPy functions
-)
+include_directories(${PYTHON_INCLUDE_PATH} ${Boost_INCLUDE_DIRS} ${PYTHON_NUMPY_INCLUDE_DIR})
if (PYTHON_VERSION_MAJOR VERSION_EQUAL 3)
add_definitions(-DPYTHON3)
--
2.5.5

View File

@ -6,3 +6,5 @@ LIC_FILES_CHKSUM = "file://package.xml;beginline=11;endline=11;md5=d566ef916e9de
DEPENDS = "boost opencv rosconsole sensor-msgs python-numpy-native"
require vision-opencv.inc
SRC_URI += "file://0001-address-gcc6-build-error-in-cv_bridge-and-tune.patch;striplevel=2"