dev-ros/image_publisher: fix build with opencv 4
authorAlexis Ballier <aballier@gentoo.org>
Tue, 10 Dec 2019 16:11:58 +0000 (17:11 +0100)
committerAlexis Ballier <aballier@gentoo.org>
Tue, 10 Dec 2019 17:34:46 +0000 (18:34 +0100)
Package-Manager: Portage-2.3.81, Repoman-2.3.20
Signed-off-by: Alexis Ballier <aballier@gentoo.org>
dev-ros/image_publisher/files/ocv4.patch [new file with mode: 0644]
dev-ros/image_publisher/image_publisher-1.13.0.ebuild

diff --git a/dev-ros/image_publisher/files/ocv4.patch b/dev-ros/image_publisher/files/ocv4.patch
new file mode 100644 (file)
index 0000000..12baac2
--- /dev/null
@@ -0,0 +1,44 @@
+Index: image_publisher/CMakeLists.txt
+===================================================================
+--- image_publisher.orig/CMakeLists.txt
++++ image_publisher/CMakeLists.txt
+@@ -10,7 +10,7 @@ message(STATUS "opencv version ${OpenCV_
+ if(OpenCV_VERSION VERSION_LESS "3.0.0")
+   find_package(OpenCV 2 REQUIRED COMPONENTS ${opencv_2_components})  
+ else()
+-  find_package(OpenCV 3 REQUIRED COMPONENTS ${opencv_3_components})  
++  find_package(OpenCV REQUIRED COMPONENTS ${opencv_3_components})  
+ endif()
+ # generate the dynamic_reconfigure config file
+Index: image_publisher/src/nodelet/image_publisher_nodelet.cpp
+===================================================================
+--- image_publisher.orig/src/nodelet/image_publisher_nodelet.cpp
++++ image_publisher/src/nodelet/image_publisher_nodelet.cpp
+@@ -95,7 +95,7 @@ class ImagePublisherNodelet : public nod
+     {
+       if ( cap_.isOpened() ) {
+         if ( ! cap_.read(image_) ) {
+-          cap_.set(CV_CAP_PROP_POS_FRAMES, 0);
++          cap_.set(cv::CAP_PROP_POS_FRAMES, 0);
+         }
+       }
+       if (flip_image_)
+@@ -136,7 +136,7 @@ public:
+     nh_.param("filename", filename_, std::string(""));
+     NODELET_INFO("File name for publishing image is : %s", filename_.c_str());
+     try {
+-      image_ = cv::imread(filename_, CV_LOAD_IMAGE_COLOR);
++      image_ = cv::imread(filename_, cv::IMREAD_COLOR);
+       if ( image_.empty() ) { // if filename is motion file or device file
+         try {  // if filename is number
+           int num = boost::lexical_cast<int>(filename_);//num is 1234798797
+@@ -146,7 +146,7 @@ public:
+         }
+         CV_Assert(cap_.isOpened());
+         cap_.read(image_);
+-        cap_.set(CV_CAP_PROP_POS_FRAMES, 0);
++        cap_.set(cv::CAP_PROP_POS_FRAMES, 0);
+       }
+       CV_Assert(!image_.empty());
+     }
index 98088db1be9471ca1ef3afb3a106cde1555460ec..dd6ff1f0df2ea6a635dc4b30219570a17492f4a9 100644 (file)
@@ -16,7 +16,7 @@ IUSE=""
 
 RDEPEND="
        dev-ros/cv_bridge
-       media-libs/opencv:=
+       >=media-libs/opencv-4:=
        dev-ros/dynamic_reconfigure
        dev-ros/camera_info_manager
        dev-ros/image_transport
@@ -27,3 +27,4 @@ RDEPEND="
        dev-libs/boost:=
 "
 DEPEND="${RDEPEND}"
+PATCHES=( "${FILESDIR}/ocv4.patch" )