Skip to content

Commit

Permalink
{melodic} add opencvl-3.4.5 from meta-openembedded/warrior
Browse files Browse the repository at this point in the history
* ar-track-alvar in melodic is currently the only component not updated to work with
  openCV 4 included in meta-openembedded/zeus
* there is ticket in upstream repo asking for OpenCV support:
  ros-perception/ar_track_alvar#77
  but no progress there, I have some WIP changes to make it compatible, but it's using
  *a lot* of changed OpenCV APIs and I haven't finished migration (nor plan to properly
  test it in runtime)

Signed-off-by: Martin Jansa <[email protected]>
  • Loading branch information
shr-project committed Jul 1, 2020
1 parent 4f703fc commit 0776229
Show file tree
Hide file tree
Showing 9 changed files with 453 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
From 4801a057730632225337d7f6d26b9335e6b9b078 Mon Sep 17 00:00:00 2001
From: Ricardo Ribalda Delgado <[email protected]>
Date: Thu, 31 Mar 2016 00:20:15 +0200
Subject: [PATCH] 3rdparty/ippicv: Use pre-downloaded ipp

Signed-off-by: Ricardo Ribalda Delgado <[email protected]>
Signed-off-by: Ismo Puustinen <[email protected]>
---
3rdparty/ippicv/ippicv.cmake | 15 +--------------
1 file changed, 1 insertion(+), 14 deletions(-)

diff --git a/3rdparty/ippicv/ippicv.cmake b/3rdparty/ippicv/ippicv.cmake
index d601da4bb..f6fc1098c 100644
--- a/3rdparty/ippicv/ippicv.cmake
+++ b/3rdparty/ippicv/ippicv.cmake
@@ -39,18 +39,5 @@ function(download_ippicv root_var)
endif()

set(THE_ROOT "${OpenCV_BINARY_DIR}/3rdparty/ippicv")
- ocv_download(FILENAME ${OPENCV_ICV_NAME}
- HASH ${OPENCV_ICV_HASH}
- URL
- "${OPENCV_IPPICV_URL}"
- "$ENV{OPENCV_IPPICV_URL}"
- "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
- DESTINATION_DIR "${THE_ROOT}"
- ID IPPICV
- STATUS res
- UNPACK RELATIVE_URL)
-
- if(res)
- set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE)
- endif()
+ set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE)
endfunction()
--
2.13.4

Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
From 7144c44ec70dee73a628463b99ffeed74b1a8ef6 Mon Sep 17 00:00:00 2001
From: Khem Raj <[email protected]>
Date: Tue, 11 Sep 2018 00:21:18 -0700
Subject: [PATCH] Dont use isystem

clang really does not like it

Upstream-Status: Pending

Signed-off-by: Khem Raj <[email protected]>
---
cmake/OpenCVPCHSupport.cmake | 2 ++
1 file changed, 2 insertions(+)

diff --git a/cmake/OpenCVPCHSupport.cmake b/cmake/OpenCVPCHSupport.cmake
index f9b1b48b65..fe27a136f5 100644
--- a/cmake/OpenCVPCHSupport.cmake
+++ b/cmake/OpenCVPCHSupport.cmake
@@ -18,6 +18,8 @@ IF(CV_GCC)
SET(PCHSupport_FOUND TRUE)
ENDIF()

+ SET(CMAKE_INCLUDE_SYSTEM_FLAG_C "-I")
+ SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-I")
SET(_PCH_include_prefix "-I")
SET(_PCH_isystem_prefix "-isystem")
SET(_PCH_define_prefix "-D")
--
2.18.0

Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
From 7d31f41d2a6759e244983504ce855fc32916b97a Mon Sep 17 00:00:00 2001
From: Jason Wessel <[email protected]>
Date: Wed, 9 May 2018 13:33:59 -0700
Subject: [PATCH] Temporarliy work around deprecated ffmpeg RAW function
compile failure until next uprev

Signed-off-by: Jason Wessel <[email protected]>
---
modules/videoio/src/cap_ffmpeg_impl.hpp | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/modules/videoio/src/cap_ffmpeg_impl.hpp b/modules/videoio/src/cap_ffmpeg_impl.hpp
index 5a9b10f075..97c6b74b07 100644
--- a/modules/videoio/src/cap_ffmpeg_impl.hpp
+++ b/modules/videoio/src/cap_ffmpeg_impl.hpp
@@ -667,6 +667,14 @@ struct ImplMutex::Impl

#endif

+/* NOTE This is deprecated in ffmpeg and the code should be removed */
+#ifndef AVFMT_RAWPICTURE
+#define AVFMT_RAWPICTURE 0x0020
+#endif /* AVFMT_RAWPICTURE */
+#ifndef CODEC_FLAG_GLOBAL_HEADER
+#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
+#endif
+
void ImplMutex::init()
{
impl = new Impl();
--
2.11.0

Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
From 350525293aef65490e80104ddd99e1b21c5d54b0 Mon Sep 17 00:00:00 2001
From: Bian Naimeng <[email protected]>
Date: Wed, 19 Apr 2017 03:11:37 +0900
Subject: [PATCH 2/3] Make opencv-ts create share library intead of static.

Signed-off-by: Lei Maohui <[email protected]>
---
modules/ts/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/ts/CMakeLists.txt b/modules/ts/CMakeLists.txt
index f95bed079..ee67858df 100644
--- a/modules/ts/CMakeLists.txt
+++ b/modules/ts/CMakeLists.txt
@@ -4,7 +4,7 @@ if(NOT BUILD_opencv_ts AND NOT BUILD_TESTS AND NOT BUILD_PERF_TESTS)
ocv_module_disable(ts)
endif()

-set(OPENCV_MODULE_TYPE STATIC)
+#set(OPENCV_MODULE_TYPE STATIC)
set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE)

if(WINRT)
--
2.13.4

Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
From ace48a628dca34d742615598afeef42ed323a029 Mon Sep 17 00:00:00 2001
From: Huang Qiyu <[email protected]>
Date: Fri, 19 May 2017 04:27:50 +0900
Subject: [PATCH 3/3] To fix errors as following:

"test_main.cpp:45: undefined reference to `parseCustomOptions(int, char**)'"
"perf_abs.cpp:13: undefined reference to `cvtest::param_seed'"
"test_superres.cpp:270: undefined reference to `checkIppStatus()'"

Signed-off-by: Huang Qiyu <[email protected]>

Also add the visibility changes for certain OpenCL-related functions in
ts module.

Signed-off-by: Ismo Puustinen <[email protected]>
---
modules/ts/include/opencv2/ts.hpp | 6 +++---
modules/ts/include/opencv2/ts/ocl_test.hpp | 2 +-
modules/ts/include/opencv2/ts/ts_ext.hpp | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)

Index: git/modules/ts/include/opencv2/ts.hpp
===================================================================
--- git.orig/modules/ts/include/opencv2/ts.hpp
+++ git/modules/ts/include/opencv2/ts.hpp
@@ -608,7 +608,7 @@ protected:
}
};

-extern uint64 param_seed;
+CV_EXPORTS extern uint64 param_seed;

struct DefaultRngAuto
{
@@ -671,7 +671,7 @@ private:
#endif
#endif

-void parseCustomOptions(int argc, char **argv);
+CV_EXPORTS void parseCustomOptions(int argc, char **argv);

#define CV_TEST_INIT0_NOOP (void)0

Index: git/modules/ts/include/opencv2/ts/ocl_test.hpp
===================================================================
--- git.orig/modules/ts/include/opencv2/ts/ocl_test.hpp
+++ git/modules/ts/include/opencv2/ts/ocl_test.hpp
@@ -82,7 +82,7 @@ inline UMat ToUMat(InputArray src)
return dst;
}

-extern int test_loop_times;
+CV_EXPORTS extern int test_loop_times;

#define MAX_VALUE 357

Index: git/modules/ts/include/opencv2/ts/ts_ext.hpp
===================================================================
--- git.orig/modules/ts/include/opencv2/ts/ts_ext.hpp
+++ git/modules/ts/include/opencv2/ts/ts_ext.hpp
@@ -9,7 +9,7 @@
#define OPENCV_TS_EXT_HPP

namespace cvtest {
-void checkIppStatus();
+CV_EXPORTS void checkIppStatus();
extern bool skipUnstableTests;
extern bool runBigDataTests;
extern int testThreads;
30 changes: 30 additions & 0 deletions meta-ros1-melodic/recipes-support/opencv/opencv/fixpkgconfig.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
Index: git/cmake/OpenCVGenPkgconfig.cmake
===================================================================
--- git.orig/cmake/OpenCVGenPkgconfig.cmake
+++ git/cmake/OpenCVGenPkgconfig.cmake
@@ -31,7 +31,7 @@ macro(fix_prefix lst isown)
get_filename_component(libdir "${item}" PATH)
get_filename_component(_libname "${item}" NAME)
ocv_get_libname(libname "${_libname}")
- list(APPEND _lst "-L${libdir}" "-l${libname}")
+ list(APPEND _lst "-l${libname}")
else()
list(APPEND _lst "-l${item}")
endif()
@@ -124,11 +124,14 @@ ocv_list_unique(_extra)
ocv_list_unique(_3rdparty)

set(OPENCV_PC_LIBS
- "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
+ "-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}"
"${_modules}"
)
if(BUILD_SHARED_LIBS)
- set(OPENCV_PC_LIBS_PRIVATE "${_extra}")
+ set(OPENCV_PC_LIBS_PRIVATE
+ "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
+ "${_extra}"
+ )
else()
set(OPENCV_PC_LIBS_PRIVATE
"-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}"
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
diff --git a/modules/xfeatures2d/CMakeLists.txt b/modules/xfeatures2d/CMakeLists.txt
index e1755595..c7009c47 100644
--- a/modules/xfeatures2d/CMakeLists.txt
+++ b/modules/xfeatures2d/CMakeLists.txt
@@ -5,10 +5,10 @@ ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d openc
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_vgg.cmake)
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_boostdesc.cmake)
set(DOWNLOAD_DIR "${OpenCV_BINARY_DIR}/downloads/xfeatures2d")
-download_boost_descriptors("${DOWNLOAD_DIR}" boost_status)
-download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status)
-if(NOT boost_status OR NOT vgg_status)
- ocv_module_disable(xfeatures2d)
-endif()
+#download_boost_descriptors("${DOWNLOAD_DIR}" boost_status)
+#download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status)
+#if(NOT boost_status OR NOT vgg_status)
+# ocv_module_disable(xfeatures2d)
+#endif()

ocv_module_include_directories("${DOWNLOAD_DIR}")
17 changes: 17 additions & 0 deletions meta-ros1-melodic/recipes-support/opencv/opencv_3.%.bbappend
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Copyright (c) 2019 LG Electronics, Inc.

# Fix up PACKAGECONFIG if Python 2 is being used.
PACKAGECONFIG_prepend = "${@'python2 ' if d.getVar('ROS_PYTHON_VERSION', True) == '2' else ''}"
# _remove happens after _prepend.
PACKAGECONFIG_remove = "${@'python3' if d.getVar('ROS_PYTHON_VERSION', True) == '2' else ''}"

# Python variables are set to their values for Python 3 even though
# python2" appears in PACKAGECONFIG because distutils3-base has been
# already inherited by the main recipe before the PACKAGECONFIG is
# adjusted. This causes the "python-opencv" package to be empty because
# /usr/lib/python2.7/site-packages/cv2.so isn't built. Fix by inherit-ing
# distutils-base again if "python2" appears in PACKAGECONFIG. Luckily
# inheriting distutils-base after distutils3-base works OK, because it
# overwrites all variables opencv needs to configure python2 support
# correctly.
inherit ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'distutils-base', '', d)}
Loading

0 comments on commit 0776229

Please sign in to comment.