From 6c6b5dcc13ee2dd22b88737c73fe334d03ea412d Mon Sep 17 00:00:00 2001 From: Dmitry Rozhkov Date: Tue, 23 May 2017 11:10:20 +0300 Subject: [PATCH] ompl: update recipe to build with latest oe-core Signed-off-by: Dmitry Rozhkov --- .../ompl/0001-address-gcc6-build-error.patch | 40 ++++++++++++++++ ...002-Add-option-to-skip-setting-RPATH.patch | 46 +++++++++++++++++++ recipes-extended/ompl/ompl_1.1.0.bb | 7 ++- 3 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 recipes-extended/ompl/ompl/0001-address-gcc6-build-error.patch create mode 100644 recipes-extended/ompl/ompl/0002-Add-option-to-skip-setting-RPATH.patch diff --git a/recipes-extended/ompl/ompl/0001-address-gcc6-build-error.patch b/recipes-extended/ompl/ompl/0001-address-gcc6-build-error.patch new file mode 100644 index 0000000..a92fcb6 --- /dev/null +++ b/recipes-extended/ompl/ompl/0001-address-gcc6-build-error.patch @@ -0,0 +1,40 @@ +From 3658bb95c120228cac55cd10e4103ababf30474b Mon Sep 17 00:00:00 2001 +From: Dmitry Rozhkov +Date: Tue, 23 May 2017 10:01:06 +0300 +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 almost 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 + +Particularly when searching for the Boost library CMake sets +Boost_INCLUDE_DIRS to @SYSROOT@/usr/include which should be +avoided in the `-isystem` option of gcc. + +Upstream-Status: Submitted [https://github.com/ompl/ompl/pull/101] +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 46ae14d..be53fac 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -74,7 +74,7 @@ else() + # don't use chrono + find_package(Boost COMPONENTS date_time thread serialization filesystem system program_options unit_test_framework REQUIRED) + endif() +-include_directories(SYSTEM ${Boost_INCLUDE_DIR}) ++include_directories(${Boost_INCLUDE_DIR}) + + if(${Boost_VERSION} LESS 105300) + # Include bundled version of boost::odeint if it isn't installed natively +-- +2.9.3 + diff --git a/recipes-extended/ompl/ompl/0002-Add-option-to-skip-setting-RPATH.patch b/recipes-extended/ompl/ompl/0002-Add-option-to-skip-setting-RPATH.patch new file mode 100644 index 0000000..cfd7550 --- /dev/null +++ b/recipes-extended/ompl/ompl/0002-Add-option-to-skip-setting-RPATH.patch @@ -0,0 +1,46 @@ +From 99bfeffe5e80f3b48f82bfff336aca3e97bc19b7 Mon Sep 17 00:00:00 2001 +From: Dmitry Rozhkov +Date: Tue, 23 May 2017 10:24:37 +0300 +Subject: [PATCH 2/2] Add option to skip setting RPATH + +OMPL installs to /usr/lib by default and some projects integrating +OMPL trigger a QA check suggesting that the set RPATH is useless. +For example Yocto gives this warning: + + QA Issue: ompl: /work/corei7-64-refkit-linux/ompl/1.1.0-r0/packages-split/ompl/usr/lib/libompl.so.1.1.0 contains probably-redundant RPATH /usr/lib [useless-rpaths] + +Add the option OMPL_SKIP_RPATH that helps to skip setting RPATH +for the library. By default the option is OFF. + +Upstream-Status: Submitted [https://github.com/ompl/ompl/pull/101] +--- + CMakeModules/CompilerSettings.cmake | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/CMakeModules/CompilerSettings.cmake b/CMakeModules/CompilerSettings.cmake +index ecef2db..65e3f45 100644 +--- a/CMakeModules/CompilerSettings.cmake ++++ b/CMakeModules/CompilerSettings.cmake +@@ -47,11 +47,14 @@ if((CMAKE_COMPILER_IS_GNUCXX OR IS_ICPC) AND NOT MINGW) + add_definitions(-fPIC) + endif((CMAKE_COMPILER_IS_GNUCXX OR IS_ICPC) AND NOT MINGW) + +-# Set rpath http://www.paraview.org/Wiki/CMake_RPATH_handling +-set(CMAKE_SKIP_BUILD_RPATH FALSE) +-set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) +-set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") +-set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) ++option(OMPL_SKIP_RPATH "Don't set RPATH to the OMPL library" OFF) ++if(NOT OMPL_SKIP_RPATH) ++ # Set rpath http://www.paraview.org/Wiki/CMake_RPATH_handling ++ set(CMAKE_SKIP_BUILD_RPATH FALSE) ++ set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) ++ set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") ++ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) ++endif() + + # no prefix needed for python modules + set(CMAKE_SHARED_MODULE_PREFIX "") +-- +2.9.3 + diff --git a/recipes-extended/ompl/ompl_1.1.0.bb b/recipes-extended/ompl/ompl_1.1.0.bb index 7427464..91ced6c 100644 --- a/recipes-extended/ompl/ompl_1.1.0.bb +++ b/recipes-extended/ompl/ompl_1.1.0.bb @@ -5,10 +5,15 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=923f436234988118e9a042c42a64323c" DEPENDS = "boost libeigen" -SRC_URI = "https://bitbucket.org/ompl/ompl/downloads/ompl-1.1.0-Source.tar.gz" +SRC_URI = "https://bitbucket.org/ompl/ompl/downloads/ompl-1.1.0-Source.tar.gz \ + file://0001-address-gcc6-build-error.patch \ + file://0002-Add-option-to-skip-setting-RPATH.patch \ + " SRC_URI[md5sum] = "2a72c5add9675e164c8370a710627e93" SRC_URI[sha256sum] = "4d141ad3aa322c65ee7ecfa90017a44a8114955316e159b635fae5b5e7db74f8" S = "${WORKDIR}/ompl-${PV}-Source" inherit cmake + +EXTRA_OECMAKE = "-DOMPL_SKIP_RPATH=ON"