Skip to contentSkip to conversation

OpenCV bump

PATCH Superseded Samuel Martin 3 participants 31 messages Jun 7, 2015 – Jun 14, 2015

v5 of 9 Superseded Latest is v9 →

lore
Share & tools
lore
#0 lore raw

v5 cover OpenCV bump

Hi all,

Here is another round for the bump of OpenCV package, and related features/packages.

Patches 1 and 2 clean-up the current opencv.mk file.
Patch 3 does the actual bump
Patch 4 fixes a long-standing issue in the OpenCV integration. Patch 5 improves the OpenCV menu.
Patches 6 to 11 add/improve 3rd-party supports.
Patches 12 and 13 fix reverse dependencies (vlc and gst1-plugins-bad).

Regards,

Samuel

Samuel Martin (13):
package/opencv: cleanup spaces at ends of line package/opencv: alphabetically sorted each _CONF_OPTS group package/opencv: bump to version 3.0
package/opencv: define modules inter-dependencies package/opencv: reword modules' prompt and help text package/opencv: add qt5 support
package/opencv: add python support
package/opencv: add gstreamer-1.x support package/opencv: add opengl support
package/opencv: add openmp support
package/opencv: add gtk3 support
package/vlc: add opencv support package/gstreamer1/gst1-plugins-bad: disable opencv plugin with
opencv-3

 Config.in.legacy                                   |  16 ++
 package/gstreamer1/gst1-plugins-bad/Config.in      |   1 +
 .../0001-core-fix-x86-PIC-code-compilation.patch   |  49 ----
 ...ix-return-type-value-VideoFrameSource_GPU.patch |  40 ----
 ...VGenPkgconfig.cmake-rework-opencv.pc-gene.patch | 156 -------------
 package/opencv/Config.in                           | 235 ++++++++++++++------
 package/opencv/opencv.mk                           | 247 ++++++++++++++-------
 ...opencv_wrapper-use-opencv2-style-includes.patch |  34 +++
 ...cv_example-add-missing-include-statements.patch |  27 +++
 package/vlc/Config.in                              |   2 +
 package/vlc/vlc.mk                                 |   8 +-
 11 files changed, 425 insertions(+), 390 deletions(-)
 delete mode 100644 package/opencv/0001-core-fix-x86-PIC-code-compilation.patch
 delete mode 100644 package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch
 delete mode 100644 package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch
 create mode 100644 package/vlc/0008-opencv_wrapper-use-opencv2-style-includes.patch
 create mode 100644 package/vlc/0009-opencv_example-add-missing-include-statements.patch

--
2.4.2

#1 lore raw

PATCH v5 1/13 package/opencv: cleanup spaces at ends of line

Nothing more than removing white spaces before '\' characters. Of course, 'git diff -w' shows no change at all.

---
changes v4->v5:
- new patch

---
 package/opencv/opencv.mk | 112 +++++++++++++++++++++++------------------------
 1 file changed, 56 insertions(+), 56 deletions(-)
package/opencv/opencv.mk +56 -56
index ee84312..9967abc 100644
@@ -18,51 +18,51 @@ OPENCV_CONF_OPTS += \
 
 # OpenCV build options
 OPENCV_CONF_OPTS += \
-	-DBUILD_WITH_STATIC_CRT=OFF      \
-	-DENABLE_FAST_MATH=ON            \
-	-DENABLE_NOISY_WARNINGS=OFF      \
-	-DENABLE_OMIT_FRAME_POINTER=ON   \
+	-DBUILD_WITH_STATIC_CRT=OFF \
+	-DENABLE_FAST_MATH=ON \
+	-DENABLE_NOISY_WARNINGS=OFF \
+	-DENABLE_OMIT_FRAME_POINTER=ON \
 	-DENABLE_PRECOMPILED_HEADERS=OFF \
-	-DENABLE_PROFILING=OFF           \
+	-DENABLE_PROFILING=OFF \
 	-DOPENCV_CAN_BREAK_BINARY_COMPATIBILITY=ON
 
 # OpenCV link options
 OPENCV_CONF_OPTS += \
 	-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF \
-	-DCMAKE_SKIP_RPATH=OFF                  \
+	-DCMAKE_SKIP_RPATH=OFF \
 	-DCMAKE_USE_RELATIVE_PATHS=OFF
 
 # OpenCV packaging options:
 OPENCV_CONF_OPTS += \
-	-DBUILD_PACKAGE=OFF           \
+	-DBUILD_PACKAGE=OFF \
 	-DENABLE_SOLUTION_FOLDERS=OFF \
 	-DINSTALL_CREATE_DISTRIB=OFF
 
 # OpenCV module selection
 OPENCV_CONF_OPTS += \
-	-DBUILD_opencv_androidcamera=OFF                                        \
-	-DBUILD_opencv_apps=OFF                                                 \
-	-DBUILD_opencv_calib3d=$(if $(BR2_PACKAGE_OPENCV_LIB_CALIB3D),ON,OFF)   \
-	-DBUILD_opencv_contrib=$(if $(BR2_PACKAGE_OPENCV_LIB_CONTRIB),ON,OFF)   \
-	-DBUILD_opencv_core=ON                                                  \
-	-DBUILD_opencv_dynamicuda=OFF                                           \
+	-DBUILD_opencv_androidcamera=OFF \
+	-DBUILD_opencv_apps=OFF \
+	-DBUILD_opencv_calib3d=$(if $(BR2_PACKAGE_OPENCV_LIB_CALIB3D),ON,OFF) \
+	-DBUILD_opencv_contrib=$(if $(BR2_PACKAGE_OPENCV_LIB_CONTRIB),ON,OFF) \
+	-DBUILD_opencv_core=ON \
+	-DBUILD_opencv_dynamicuda=OFF \
 	-DBUILD_opencv_features2d=$(if $(BR2_PACKAGE_OPENCV_LIB_FEATURES2D),ON,OFF) \
-	-DBUILD_opencv_flann=$(if $(BR2_PACKAGE_OPENCV_LIB_FLANN),ON,OFF)       \
-	-DBUILD_opencv_gpu=$(if $(BR2_PACKAGE_OPENCV_LIB_GPU),ON,OFF)           \
-	-DBUILD_opencv_highgui=$(if $(BR2_PACKAGE_OPENCV_LIB_HIGHGUI),ON,OFF)   \
-	-DBUILD_opencv_imgproc=$(if $(BR2_PACKAGE_OPENCV_LIB_IMGPROC),ON,OFF)   \
-	-DBUILD_opencv_java=OFF                                                 \
-	-DBUILD_opencv_legacy=$(if $(BR2_PACKAGE_OPENCV_LIB_LEGACY),ON,OFF)     \
-	-DBUILD_opencv_ml=$(if $(BR2_PACKAGE_OPENCV_LIB_ML),ON,OFF)             \
-	-DBUILD_opencv_nonfree=$(if $(BR2_PACKAGE_OPENCV_LIB_NONFREE),ON,OFF)   \
+	-DBUILD_opencv_flann=$(if $(BR2_PACKAGE_OPENCV_LIB_FLANN),ON,OFF) \
+	-DBUILD_opencv_gpu=$(if $(BR2_PACKAGE_OPENCV_LIB_GPU),ON,OFF) \
+	-DBUILD_opencv_highgui=$(if $(BR2_PACKAGE_OPENCV_LIB_HIGHGUI),ON,OFF) \
+	-DBUILD_opencv_imgproc=$(if $(BR2_PACKAGE_OPENCV_LIB_IMGPROC),ON,OFF) \
+	-DBUILD_opencv_java=OFF \
+	-DBUILD_opencv_legacy=$(if $(BR2_PACKAGE_OPENCV_LIB_LEGACY),ON,OFF) \
+	-DBUILD_opencv_ml=$(if $(BR2_PACKAGE_OPENCV_LIB_ML),ON,OFF) \
+	-DBUILD_opencv_nonfree=$(if $(BR2_PACKAGE_OPENCV_LIB_NONFREE),ON,OFF) \
 	-DBUILD_opencv_objdetect=$(if $(BR2_PACKAGE_OPENCV_LIB_OBJDETECT),ON,OFF) \
-	-DBUILD_opencv_ocl=OFF                                                  \
-	-DBUILD_opencv_photo=$(if $(BR2_PACKAGE_OPENCV_LIB_PHOTO),ON,OFF)       \
-	-DBUILD_opencv_python=OFF                                               \
+	-DBUILD_opencv_ocl=OFF \
+	-DBUILD_opencv_photo=$(if $(BR2_PACKAGE_OPENCV_LIB_PHOTO),ON,OFF) \
+	-DBUILD_opencv_python=OFF \
 	-DBUILD_opencv_stitching=$(if $(BR2_PACKAGE_OPENCV_LIB_STITCHING),ON,OFF) \
 	-DBUILD_opencv_superres=$(if $(BR2_PACKAGE_OPENCV_LIB_SUPERRES),ON,OFF) \
-	-DBUILD_opencv_ts=$(if $(BR2_PACKAGE_OPENCV_LIB_TS),ON,OFF)             \
-	-DBUILD_opencv_video=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEO),ON,OFF)       \
+	-DBUILD_opencv_ts=$(if $(BR2_PACKAGE_OPENCV_LIB_TS),ON,OFF) \
+	-DBUILD_opencv_video=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEO),ON,OFF) \
 	-DBUILD_opencv_videostab=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB),ON,OFF) \
 	-DBUILD_opencv_world=OFF
 
@@ -72,10 +72,10 @@ OPENCV_CONF_OPTS += \
 #   adding '-mcpu=G3 -mtune=G5' to them, which is already handled by Buildroot.
 OPENCV_CONF_OPTS += \
 	-DENABLE_POWERPC=OFF \
-	-DENABLE_SSE=$(if $(BR2_X86_CPU_HAS_SSE),ON,OFF)     \
-	-DENABLE_SSE2=$(if $(BR2_X86_CPU_HAS_SSE2),ON,OFF)   \
-	-DENABLE_SSE3=$(if $(BR2_X86_CPU_HAS_SSE3),ON,OFF)   \
-	-DENABLE_SSE41=$(if $(BR2_X86_CPU_HAS_SSE4),ON,OFF)  \
+	-DENABLE_SSE=$(if $(BR2_X86_CPU_HAS_SSE),ON,OFF) \
+	-DENABLE_SSE2=$(if $(BR2_X86_CPU_HAS_SSE2),ON,OFF) \
+	-DENABLE_SSE3=$(if $(BR2_X86_CPU_HAS_SSE3),ON,OFF) \
+	-DENABLE_SSE41=$(if $(BR2_X86_CPU_HAS_SSE4),ON,OFF) \
 	-DENABLE_SSE42=$(if $(BR2_X86_CPU_HAS_SSE42),ON,OFF) \
 	-DENABLE_AVX=$(if $(BR2_X86_CPU_HAS_AVX),ON,OFF) \
 	-DENABLE_AVX2=$(if $(BR2_X86_CPU_HAS_AVX2),ON,OFF) \
@@ -84,7 +84,7 @@ OPENCV_CONF_OPTS += \
 # Cuda stuff
 OPENCV_CONF_OPTS += \
 	-DWITH_CUBLAS=OFF \
-	-DWITH_CUDA=OFF   \
+	-DWITH_CUDA=OFF \
 	-DWITH_CUFFT=OFF
 
 # NVidia stuff
@@ -98,7 +98,7 @@ OPENCV_CONF_OPTS += \
 # Intel stuff
 OPENCV_CONF_OPTS += \
 	-DWITH_INTELPERC=OFF \
-	-DWITH_IPP=OFF       \
+	-DWITH_IPP=OFF \
 	-DWITH_TBB=OFF
 
 # Smartek stuff
@@ -112,53 +112,53 @@ OPENCV_CONF_OPTS += -DWITH_XIMEA=OFF
 
 # Non-Linux support (Android options) must remain OFF:
 OPENCV_CONF_OPTS += \
-	-DWITH_ANDROID_CAMERA=OFF          \
+	-DWITH_ANDROID_CAMERA=OFF \
 	-DBUILD_ANDROID_CAMERA_WRAPPER=OFF \
-	-DBUILD_ANDROID_EXAMPLES=OFF	   \
-	-DINSTALL_ANDROID_EXAMPLES=OFF     \
-	-DBUILD_FAT_JAVA_LIB=OFF           \
+	-DBUILD_ANDROID_EXAMPLES=OFF \
+	-DINSTALL_ANDROID_EXAMPLES=OFF \
+	-DBUILD_FAT_JAVA_LIB=OFF \
 	-DBUILD_JAVA_SUPPORT=OFF
 
 # Non-Linux support (Mac OSX options) must remain OFF:
 OPENCV_CONF_OPTS += \
-	-DWITH_AVFOUNDATION=OFF	\
-	-DWITH_CARBON=OFF       \
+	-DWITH_AVFOUNDATION=OFF \
+	-DWITH_CARBON=OFF \
 	-DWITH_QUICKTIME=OFF
 
 # Non-Linux support (Windows options) must remain OFF:
 OPENCV_CONF_OPTS += \
-	-DWITH_VFW=OFF      \
-	-DWITH_WIN32UI=OFF  \
+	-DWITH_VFW=OFF \
+	-DWITH_WIN32UI=OFF \
 	-DWITH_CSTRIPES=OFF \
-	-DWITH_DSHOW=OFF    \
-	-DWITH_MSMF=OFF     \
+	-DWITH_DSHOW=OFF \
+	-DWITH_MSMF=OFF \
 	-DWITH_VIDEOINPUT=OFF
 
 # Software/3rd-party support options.
 OPENCV_CONF_OPTS += \
-	-DBUILD_JASPER=OFF  \
-	-DBUILD_JPEG=OFF    \
+	-DBUILD_JASPER=OFF \
+	-DBUILD_JPEG=OFF \
 	-DBUILD_OPENEXR=OFF \
-	-DBUILD_PNG=OFF	    \
-	-DBUILD_TIFF=OFF    \
-	-DBUILD_ZLIB=OFF    \
+	-DBUILD_PNG=OFF \
+	-DBUILD_TIFF=OFF \
+	-DBUILD_ZLIB=OFF \
 	-DBUILD_NEW_PYTHON_SUPPORT=OFF \
-	-DINSTALL_C_EXAMPLES=OFF       \
-	-DINSTALL_PYTHON_EXAMPLES=OFF  \
+	-DINSTALL_C_EXAMPLES=OFF \
+	-DINSTALL_PYTHON_EXAMPLES=OFF \
 	-DINSTALL_TO_MANGLED_PATHS=OFF
 
 # Disabled features (mostly because they are not available in Buildroot), but
 # - eigen: OpenCV does not use it, not take any benefit from it.
 OPENCV_CONF_OPTS += \
-	-DWITH_1394=OFF    \
-	-DWITH_EIGEN=OFF   \
+	-DWITH_1394=OFF \
+	-DWITH_EIGEN=OFF \
 	-DWITH_IMAGEIO=OFF \
-	-DWITH_OPENCL=OFF  \
+	-DWITH_OPENCL=OFF \
 	-DWITH_OPENEXR=OFF \
-	-DWITH_OPENGL=OFF  \
-	-DWITH_OPENMP=OFF  \
-	-DWITH_OPENNI=OFF  \
-	-DWITH_UNICAP=OFF  \
+	-DWITH_OPENGL=OFF \
+	-DWITH_OPENMP=OFF \
+	-DWITH_OPENNI=OFF \
+	-DWITH_UNICAP=OFF \
 	-DWITH_XINE=OFF
 
 OPENCV_DEPENDENCIES += zlib
Signature · 1 line
2.4.2
#2 lore raw

PATCH v5 1/13 package/opencv: cleanup spaces at ends of line

Samuel, All,

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:

Quoted 4 lines

Nothing more than removing white spaces before '\' characters. Of course, 'git diff -w' shows no change at all.

Regards,
Yann E. MORIN.

Quoted 207 lines

---
changes v4->v5:
- new patch

---
 package/opencv/opencv.mk | 112 +++++++++++++++++++++++------------------------
 1 file changed, 56 insertions(+), 56 deletions(-)
package/opencv/opencv.mk +56 -56
index ee84312..9967abc 100644
@@ -18,51 +18,51 @@ OPENCV_CONF_OPTS += \
 
 # OpenCV build options
 OPENCV_CONF_OPTS += \
-	-DBUILD_WITH_STATIC_CRT=OFF      \
-	-DENABLE_FAST_MATH=ON            \
-	-DENABLE_NOISY_WARNINGS=OFF      \
-	-DENABLE_OMIT_FRAME_POINTER=ON   \
+	-DBUILD_WITH_STATIC_CRT=OFF \
+	-DENABLE_FAST_MATH=ON \
+	-DENABLE_NOISY_WARNINGS=OFF \
+	-DENABLE_OMIT_FRAME_POINTER=ON \
 	-DENABLE_PRECOMPILED_HEADERS=OFF \
-	-DENABLE_PROFILING=OFF           \
+	-DENABLE_PROFILING=OFF \
 	-DOPENCV_CAN_BREAK_BINARY_COMPATIBILITY=ON
 
 # OpenCV link options
 OPENCV_CONF_OPTS += \
 	-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF \
-	-DCMAKE_SKIP_RPATH=OFF                  \
+	-DCMAKE_SKIP_RPATH=OFF \
 	-DCMAKE_USE_RELATIVE_PATHS=OFF
 
 # OpenCV packaging options:
 OPENCV_CONF_OPTS += \
-	-DBUILD_PACKAGE=OFF           \
+	-DBUILD_PACKAGE=OFF \
 	-DENABLE_SOLUTION_FOLDERS=OFF \
 	-DINSTALL_CREATE_DISTRIB=OFF
 
 # OpenCV module selection
 OPENCV_CONF_OPTS += \
-	-DBUILD_opencv_androidcamera=OFF                                        \
-	-DBUILD_opencv_apps=OFF                                                 \
-	-DBUILD_opencv_calib3d=$(if $(BR2_PACKAGE_OPENCV_LIB_CALIB3D),ON,OFF)   \
-	-DBUILD_opencv_contrib=$(if $(BR2_PACKAGE_OPENCV_LIB_CONTRIB),ON,OFF)   \
-	-DBUILD_opencv_core=ON                                                  \
-	-DBUILD_opencv_dynamicuda=OFF                                           \
+	-DBUILD_opencv_androidcamera=OFF \
+	-DBUILD_opencv_apps=OFF \
+	-DBUILD_opencv_calib3d=$(if $(BR2_PACKAGE_OPENCV_LIB_CALIB3D),ON,OFF) \
+	-DBUILD_opencv_contrib=$(if $(BR2_PACKAGE_OPENCV_LIB_CONTRIB),ON,OFF) \
+	-DBUILD_opencv_core=ON \
+	-DBUILD_opencv_dynamicuda=OFF \
 	-DBUILD_opencv_features2d=$(if $(BR2_PACKAGE_OPENCV_LIB_FEATURES2D),ON,OFF) \
-	-DBUILD_opencv_flann=$(if $(BR2_PACKAGE_OPENCV_LIB_FLANN),ON,OFF)       \
-	-DBUILD_opencv_gpu=$(if $(BR2_PACKAGE_OPENCV_LIB_GPU),ON,OFF)           \
-	-DBUILD_opencv_highgui=$(if $(BR2_PACKAGE_OPENCV_LIB_HIGHGUI),ON,OFF)   \
-	-DBUILD_opencv_imgproc=$(if $(BR2_PACKAGE_OPENCV_LIB_IMGPROC),ON,OFF)   \
-	-DBUILD_opencv_java=OFF                                                 \
-	-DBUILD_opencv_legacy=$(if $(BR2_PACKAGE_OPENCV_LIB_LEGACY),ON,OFF)     \
-	-DBUILD_opencv_ml=$(if $(BR2_PACKAGE_OPENCV_LIB_ML),ON,OFF)             \
-	-DBUILD_opencv_nonfree=$(if $(BR2_PACKAGE_OPENCV_LIB_NONFREE),ON,OFF)   \
+	-DBUILD_opencv_flann=$(if $(BR2_PACKAGE_OPENCV_LIB_FLANN),ON,OFF) \
+	-DBUILD_opencv_gpu=$(if $(BR2_PACKAGE_OPENCV_LIB_GPU),ON,OFF) \
+	-DBUILD_opencv_highgui=$(if $(BR2_PACKAGE_OPENCV_LIB_HIGHGUI),ON,OFF) \
+	-DBUILD_opencv_imgproc=$(if $(BR2_PACKAGE_OPENCV_LIB_IMGPROC),ON,OFF) \
+	-DBUILD_opencv_java=OFF \
+	-DBUILD_opencv_legacy=$(if $(BR2_PACKAGE_OPENCV_LIB_LEGACY),ON,OFF) \
+	-DBUILD_opencv_ml=$(if $(BR2_PACKAGE_OPENCV_LIB_ML),ON,OFF) \
+	-DBUILD_opencv_nonfree=$(if $(BR2_PACKAGE_OPENCV_LIB_NONFREE),ON,OFF) \
 	-DBUILD_opencv_objdetect=$(if $(BR2_PACKAGE_OPENCV_LIB_OBJDETECT),ON,OFF) \
-	-DBUILD_opencv_ocl=OFF                                                  \
-	-DBUILD_opencv_photo=$(if $(BR2_PACKAGE_OPENCV_LIB_PHOTO),ON,OFF)       \
-	-DBUILD_opencv_python=OFF                                               \
+	-DBUILD_opencv_ocl=OFF \
+	-DBUILD_opencv_photo=$(if $(BR2_PACKAGE_OPENCV_LIB_PHOTO),ON,OFF) \
+	-DBUILD_opencv_python=OFF \
 	-DBUILD_opencv_stitching=$(if $(BR2_PACKAGE_OPENCV_LIB_STITCHING),ON,OFF) \
 	-DBUILD_opencv_superres=$(if $(BR2_PACKAGE_OPENCV_LIB_SUPERRES),ON,OFF) \
-	-DBUILD_opencv_ts=$(if $(BR2_PACKAGE_OPENCV_LIB_TS),ON,OFF)             \
-	-DBUILD_opencv_video=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEO),ON,OFF)       \
+	-DBUILD_opencv_ts=$(if $(BR2_PACKAGE_OPENCV_LIB_TS),ON,OFF) \
+	-DBUILD_opencv_video=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEO),ON,OFF) \
 	-DBUILD_opencv_videostab=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB),ON,OFF) \
 	-DBUILD_opencv_world=OFF
 
@@ -72,10 +72,10 @@ OPENCV_CONF_OPTS += \
 #   adding '-mcpu=G3 -mtune=G5' to them, which is already handled by Buildroot.
 OPENCV_CONF_OPTS += \
 	-DENABLE_POWERPC=OFF \
-	-DENABLE_SSE=$(if $(BR2_X86_CPU_HAS_SSE),ON,OFF)     \
-	-DENABLE_SSE2=$(if $(BR2_X86_CPU_HAS_SSE2),ON,OFF)   \
-	-DENABLE_SSE3=$(if $(BR2_X86_CPU_HAS_SSE3),ON,OFF)   \
-	-DENABLE_SSE41=$(if $(BR2_X86_CPU_HAS_SSE4),ON,OFF)  \
+	-DENABLE_SSE=$(if $(BR2_X86_CPU_HAS_SSE),ON,OFF) \
+	-DENABLE_SSE2=$(if $(BR2_X86_CPU_HAS_SSE2),ON,OFF) \
+	-DENABLE_SSE3=$(if $(BR2_X86_CPU_HAS_SSE3),ON,OFF) \
+	-DENABLE_SSE41=$(if $(BR2_X86_CPU_HAS_SSE4),ON,OFF) \
 	-DENABLE_SSE42=$(if $(BR2_X86_CPU_HAS_SSE42),ON,OFF) \
 	-DENABLE_AVX=$(if $(BR2_X86_CPU_HAS_AVX),ON,OFF) \
 	-DENABLE_AVX2=$(if $(BR2_X86_CPU_HAS_AVX2),ON,OFF) \
@@ -84,7 +84,7 @@ OPENCV_CONF_OPTS += \
 # Cuda stuff
 OPENCV_CONF_OPTS += \
 	-DWITH_CUBLAS=OFF \
-	-DWITH_CUDA=OFF   \
+	-DWITH_CUDA=OFF \
 	-DWITH_CUFFT=OFF
 
 # NVidia stuff
@@ -98,7 +98,7 @@ OPENCV_CONF_OPTS += \
 # Intel stuff
 OPENCV_CONF_OPTS += \
 	-DWITH_INTELPERC=OFF \
-	-DWITH_IPP=OFF       \
+	-DWITH_IPP=OFF \
 	-DWITH_TBB=OFF
 
 # Smartek stuff
@@ -112,53 +112,53 @@ OPENCV_CONF_OPTS += -DWITH_XIMEA=OFF
 
 # Non-Linux support (Android options) must remain OFF:
 OPENCV_CONF_OPTS += \
-	-DWITH_ANDROID_CAMERA=OFF          \
+	-DWITH_ANDROID_CAMERA=OFF \
 	-DBUILD_ANDROID_CAMERA_WRAPPER=OFF \
-	-DBUILD_ANDROID_EXAMPLES=OFF	   \
-	-DINSTALL_ANDROID_EXAMPLES=OFF     \
-	-DBUILD_FAT_JAVA_LIB=OFF           \
+	-DBUILD_ANDROID_EXAMPLES=OFF \
+	-DINSTALL_ANDROID_EXAMPLES=OFF \
+	-DBUILD_FAT_JAVA_LIB=OFF \
 	-DBUILD_JAVA_SUPPORT=OFF
 
 # Non-Linux support (Mac OSX options) must remain OFF:
 OPENCV_CONF_OPTS += \
-	-DWITH_AVFOUNDATION=OFF	\
-	-DWITH_CARBON=OFF       \
+	-DWITH_AVFOUNDATION=OFF \
+	-DWITH_CARBON=OFF \
 	-DWITH_QUICKTIME=OFF
 
 # Non-Linux support (Windows options) must remain OFF:
 OPENCV_CONF_OPTS += \
-	-DWITH_VFW=OFF      \
-	-DWITH_WIN32UI=OFF  \
+	-DWITH_VFW=OFF \
+	-DWITH_WIN32UI=OFF \
 	-DWITH_CSTRIPES=OFF \
-	-DWITH_DSHOW=OFF    \
-	-DWITH_MSMF=OFF     \
+	-DWITH_DSHOW=OFF \
+	-DWITH_MSMF=OFF \
 	-DWITH_VIDEOINPUT=OFF
 
 # Software/3rd-party support options.
 OPENCV_CONF_OPTS += \
-	-DBUILD_JASPER=OFF  \
-	-DBUILD_JPEG=OFF    \
+	-DBUILD_JASPER=OFF \
+	-DBUILD_JPEG=OFF \
 	-DBUILD_OPENEXR=OFF \
-	-DBUILD_PNG=OFF	    \
-	-DBUILD_TIFF=OFF    \
-	-DBUILD_ZLIB=OFF    \
+	-DBUILD_PNG=OFF \
+	-DBUILD_TIFF=OFF \
+	-DBUILD_ZLIB=OFF \
 	-DBUILD_NEW_PYTHON_SUPPORT=OFF \
-	-DINSTALL_C_EXAMPLES=OFF       \
-	-DINSTALL_PYTHON_EXAMPLES=OFF  \
+	-DINSTALL_C_EXAMPLES=OFF \
+	-DINSTALL_PYTHON_EXAMPLES=OFF \
 	-DINSTALL_TO_MANGLED_PATHS=OFF
 
 # Disabled features (mostly because they are not available in Buildroot), but
 # - eigen: OpenCV does not use it, not take any benefit from it.
 OPENCV_CONF_OPTS += \
-	-DWITH_1394=OFF    \
-	-DWITH_EIGEN=OFF   \
+	-DWITH_1394=OFF \
+	-DWITH_EIGEN=OFF \
 	-DWITH_IMAGEIO=OFF \
-	-DWITH_OPENCL=OFF  \
+	-DWITH_OPENCL=OFF \
 	-DWITH_OPENEXR=OFF \
-	-DWITH_OPENGL=OFF  \
-	-DWITH_OPENMP=OFF  \
-	-DWITH_OPENNI=OFF  \
-	-DWITH_UNICAP=OFF  \
+	-DWITH_OPENGL=OFF \
+	-DWITH_OPENMP=OFF \
+	-DWITH_OPENNI=OFF \
+	-DWITH_UNICAP=OFF \
 	-DWITH_XINE=OFF
 
 OPENCV_DEPENDENCIES += zlib
Signature · 6 lines
2.4.2

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#3 lore raw

PATCH v5 1/13 package/opencv: cleanup spaces at ends of line

In reply to Samuel Martin

Dear Samuel Martin,

Quoted 11 lines · Samuel Martin

Nothing more than removing white spaces before '\' characters. Of course, 'git diff -w' shows no change at all.

---
changes v4->v5:
- new patch

---
 package/opencv/opencv.mk | 112 +++++++++++++++++++++++------------------------
 1 file changed, 56 insertions(+), 56 deletions(-)

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#4 lore raw

PATCH v5 2/13 package/opencv: alphabetically sorted each _CONF_OPTS group

In reply to Samuel Martin

No new option added nor removed.

---
changes v4->v5:
- new patch

---
 package/opencv/opencv.mk | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)
package/opencv/opencv.mk +16 -16
index 9967abc..4d08481 100644
@@ -12,9 +12,9 @@ OPENCV_LICENSE_FILES = LICENSE
 
 # OpenCV component options
 OPENCV_CONF_OPTS += \
-	-DBUILD_WITH_DEBUG_INFO=OFF \
 	-DBUILD_PERF_TESTS=$(if $(BR2_PACKAGE_OPENCV_BUILD_PERF_TESTS),ON,OFF) \
-	-DBUILD_TESTS=$(if $(BR2_PACKAGE_OPENCV_BUILD_TESTS),ON,OFF)
+	-DBUILD_TESTS=$(if $(BR2_PACKAGE_OPENCV_BUILD_TESTS),ON,OFF) \
+	-DBUILD_WITH_DEBUG_INFO=OFF
 
 # OpenCV build options
 OPENCV_CONF_OPTS += \
@@ -71,14 +71,14 @@ OPENCV_CONF_OPTS += \
 # * PowerPC support is turned off since its only effect is altering CFLAGS,
 #   adding '-mcpu=G3 -mtune=G5' to them, which is already handled by Buildroot.
 OPENCV_CONF_OPTS += \
+	-DENABLE_AVX2=$(if $(BR2_X86_CPU_HAS_AVX2),ON,OFF) \
+	-DENABLE_AVX=$(if $(BR2_X86_CPU_HAS_AVX),ON,OFF) \
 	-DENABLE_POWERPC=OFF \
-	-DENABLE_SSE=$(if $(BR2_X86_CPU_HAS_SSE),ON,OFF) \
 	-DENABLE_SSE2=$(if $(BR2_X86_CPU_HAS_SSE2),ON,OFF) \
 	-DENABLE_SSE3=$(if $(BR2_X86_CPU_HAS_SSE3),ON,OFF) \
 	-DENABLE_SSE41=$(if $(BR2_X86_CPU_HAS_SSE4),ON,OFF) \
 	-DENABLE_SSE42=$(if $(BR2_X86_CPU_HAS_SSE42),ON,OFF) \
-	-DENABLE_AVX=$(if $(BR2_X86_CPU_HAS_AVX),ON,OFF) \
-	-DENABLE_AVX2=$(if $(BR2_X86_CPU_HAS_AVX2),ON,OFF) \
+	-DENABLE_SSE=$(if $(BR2_X86_CPU_HAS_SSE),ON,OFF) \
 	-DENABLE_SSSE3=$(if $(BR2_X86_CPU_HAS_SSSE3),ON,OFF)
 
 # Cuda stuff
@@ -92,8 +92,8 @@ OPENCV_CONF_OPTS += -DWITH_NVCUVID=OFF
 
 # AMD stuff
 OPENCV_CONF_OPTS += \
-	-DWITH_OPENCLAMDFFT=OFF \
-	-DWITH_OPENCLAMDBLAS=OFF
+	-DWITH_OPENCLAMDBLAS=OFF \
+	-DWITH_OPENCLAMDFFT=OFF
 
 # Intel stuff
 OPENCV_CONF_OPTS += \
@@ -112,12 +112,12 @@ OPENCV_CONF_OPTS += -DWITH_XIMEA=OFF
 
 # Non-Linux support (Android options) must remain OFF:
 OPENCV_CONF_OPTS += \
-	-DWITH_ANDROID_CAMERA=OFF \
 	-DBUILD_ANDROID_CAMERA_WRAPPER=OFF \
 	-DBUILD_ANDROID_EXAMPLES=OFF \
-	-DINSTALL_ANDROID_EXAMPLES=OFF \
 	-DBUILD_FAT_JAVA_LIB=OFF \
-	-DBUILD_JAVA_SUPPORT=OFF
+	-DBUILD_JAVA_SUPPORT=OFF \
+	-DINSTALL_ANDROID_EXAMPLES=OFF \
+	-DWITH_ANDROID_CAMERA=OFF
 
 # Non-Linux support (Mac OSX options) must remain OFF:
 OPENCV_CONF_OPTS += \
@@ -127,22 +127,22 @@ OPENCV_CONF_OPTS += \
 
 # Non-Linux support (Windows options) must remain OFF:
 OPENCV_CONF_OPTS += \
-	-DWITH_VFW=OFF \
-	-DWITH_WIN32UI=OFF \
 	-DWITH_CSTRIPES=OFF \
 	-DWITH_DSHOW=OFF \
 	-DWITH_MSMF=OFF \
-	-DWITH_VIDEOINPUT=OFF
+	-DWITH_VFW=OFF \
+	-DWITH_VIDEOINPUT=OFF \
+	-DWITH_WIN32UI=OFF
 
 # Software/3rd-party support options.
 OPENCV_CONF_OPTS += \
 	-DBUILD_JASPER=OFF \
 	-DBUILD_JPEG=OFF \
+	-DBUILD_NEW_PYTHON_SUPPORT=OFF \
 	-DBUILD_OPENEXR=OFF \
 	-DBUILD_PNG=OFF \
 	-DBUILD_TIFF=OFF \
 	-DBUILD_ZLIB=OFF \
-	-DBUILD_NEW_PYTHON_SUPPORT=OFF \
 	-DINSTALL_C_EXAMPLES=OFF \
 	-DINSTALL_PYTHON_EXAMPLES=OFF \
 	-DINSTALL_TO_MANGLED_PATHS=OFF
@@ -221,8 +221,8 @@ endif
 
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_V4L),y)
 OPENCV_CONF_OPTS += \
-	-DWITH_V4L=ON \
-	-DWITH_LIBV4L=$(if $(BR2_PACKAGE_LIBV4L),ON,OFF)
+	-DWITH_LIBV4L=$(if $(BR2_PACKAGE_LIBV4L),ON,OFF) \
+	-DWITH_V4L=ON
 OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBV4L),libv4l)
 else
 OPENCV_CONF_OPTS += -DWITH_V4L=OFF -DWITH_LIBV4L=OFF
Signature · 1 line
2.4.2
#5 lore raw

PATCH v5 2/13 package/opencv: alphabetically sorted each _CONF_OPTS group

Samuel, All,

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:

package/opencv/opencv.mk

Quoted 8 lines

No new option added nor removed.

package/opencv/opencv.mk +0 -0
index 9967abc..4d08481 100644

[--SNIP--]

Quoted 6 lines
package/opencv/opencv.mk +2 -0
@@ -71,14 +71,14 @@ OPENCV_CONF_OPTS += \
 # * PowerPC support is turned off since its only effect is altering CFLAGS,
 #   adding '-mcpu=G3 -mtune=G5' to them, which is already handled by Buildroot.
 OPENCV_CONF_OPTS += \
+	-DENABLE_AVX2=$(if $(BR2_X86_CPU_HAS_AVX2),ON,OFF) \
+	-DENABLE_AVX=$(if $(BR2_X86_CPU_HAS_AVX),ON,OFF) \

package/opencv/opencv.mk OPENCV_CONF_OPTS += \ · line 82

Quoted 10 lines
package/opencv/opencv.mk +1 -3
 	-DENABLE_POWERPC=OFF \
-	-DENABLE_SSE=$(if $(BR2_X86_CPU_HAS_SSE),ON,OFF) \
 	-DENABLE_SSE2=$(if $(BR2_X86_CPU_HAS_SSE2),ON,OFF) \
 	-DENABLE_SSE3=$(if $(BR2_X86_CPU_HAS_SSE3),ON,OFF) \
 	-DENABLE_SSE41=$(if $(BR2_X86_CPU_HAS_SSE4),ON,OFF) \
 	-DENABLE_SSE42=$(if $(BR2_X86_CPU_HAS_SSE42),ON,OFF) \
-	-DENABLE_AVX=$(if $(BR2_X86_CPU_HAS_AVX),ON,OFF) \
-	-DENABLE_AVX2=$(if $(BR2_X86_CPU_HAS_AVX2),ON,OFF) \
+	-DENABLE_SSE=$(if $(BR2_X86_CPU_HAS_SSE),ON,OFF) \
 	-DENABLE_SSSE3=$(if $(BR2_X86_CPU_HAS_SSSE3),ON,OFF)

I don't know how you sorted, but for me, SSE sorts before SSE2.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#6 lore raw

PATCH v5 2/13 package/opencv: alphabetically sorted each _CONF_OPTS group

Quoted 22 lines · Yann E. MORIN

Samuel, All,

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:

package/opencv/opencv.mk

Quoted 8 lines

No new option added nor removed.

package/opencv/opencv.mk +0 -0
index 9967abc..4d08481 100644

[--SNIP--]

Quoted 10 lines
package/opencv/opencv.mk +2 -1
@@ -71,14 +71,14 @@ OPENCV_CONF_OPTS += \
 # * PowerPC support is turned off since its only effect is altering CFLAGS,
 #   adding '-mcpu=G3 -mtune=G5' to them, which is already handled by Buildroot.
 OPENCV_CONF_OPTS += \
+     -DENABLE_AVX2=$(if $(BR2_X86_CPU_HAS_AVX2),ON,OFF) \
+     -DENABLE_AVX=$(if $(BR2_X86_CPU_HAS_AVX),ON,OFF) \
      -DENABLE_POWERPC=OFF \
-     -DENABLE_SSE=$(if $(BR2_X86_CPU_HAS_SSE),ON,OFF) \
      -DENABLE_SSE2=$(if $(BR2_X86_CPU_HAS_SSE2),ON,OFF) \
      -DENABLE_SSE3=$(if $(BR2_X86_CPU_HAS_SSE3),ON,OFF) \
Quoted 8 lines

package/opencv/opencv.mk OPENCV_CONF_OPTS += \ · line 82

Quoted 6 lines
package/opencv/opencv.mk +1 -2
      -DENABLE_SSE41=$(if $(BR2_X86_CPU_HAS_SSE4),ON,OFF) \
      -DENABLE_SSE42=$(if $(BR2_X86_CPU_HAS_SSE42),ON,OFF) \
-     -DENABLE_AVX=$(if $(BR2_X86_CPU_HAS_AVX),ON,OFF) \
-     -DENABLE_AVX2=$(if $(BR2_X86_CPU_HAS_AVX2),ON,OFF) \
+     -DENABLE_SSE=$(if $(BR2_X86_CPU_HAS_SSE),ON,OFF) \
      -DENABLE_SSSE3=$(if $(BR2_X86_CPU_HAS_SSSE3),ON,OFF)

I don't know how you sorted, but for me, SSE sorts before SSE2.

vim sort...

Quoted 11 lines

Regards,
Yann E. MORIN.

--
.-----------------.--------------------.------------------.--------------------.

|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |

'------------------------------^-------^------------------^--------------------'

Signature · 1 line
Samuel
#7 lore raw

PATCH v5 3/13 package/opencv: bump to version 3.0

In reply to Samuel Martin

This major version bump is in fact a bump from 2.4.10 to 2.4.11, then to 3.0.

OpenCV-2.4.11 improves a lot the Buildroot integration, including a couple of patches that no longer need to be carried in Buildroot tree:
- x86 PIC code compilation fix in core module [1];
- return type fix in superes module [2];
- opencv.pc generation [3].

It also improves the gstreamer-0.10/1.x detection [4], that will needed in a follow-up patch.

The OpenCV-3.0 does some major changes, for which a transition guide has been published [5].

Among these changes coming with OpenCV-3.0, some new modules have been introduced and others got removed; leading to a bunch of configure option updates (to keep as much as possible an iso-functional-perimeter) and the legacy menu has been updated too.
The worth noticing removal being:
- the opencv_legacy and opencv_nonfree modules no longer exist;
- the opencv_contrib module has moved out of the opencv base tree and now has its own repository [6].
There is currently no plan to support it.

Some 3rd-party supports have been improved or added; their integrations in Buildroot will be addressed in follow-up patches.

[1] https://github.com/Itseez/opencv/commit/ea50be0529c248961e1b66293f8a9e4b807294a6
[2] https://github.com/Itseez/opencv/commit/2e393ab83362743ba1825ad4b31d4a2925c606b4
[3] https://github.com/Itseez/opencv/commit/eceada586bbf18fc267e437522ec4f1f23ddc656
[4] https://github.com/Itseez/opencv/commit/38bb0db9dbec08666c8a64b3e4ead8fadf15c980
[5] http://docs.opencv.org/master/db/dfa/tutorial_transition_guide.html
[6] https://github.com/itseez/opencv_contrib

Cc Vicente Olivert Riera <[email protected]>

---
changes v4->v5:
- new patch

---
 Config.in.legacy                                   |  16 +++
 .../0001-core-fix-x86-PIC-code-compilation.patch   |  49 -------
 ...ix-return-type-value-VideoFrameSource_GPU.patch |  40 ------
 ...VGenPkgconfig.cmake-rework-opencv.pc-gene.patch | 156 ---------------------
 package/opencv/Config.in                           |  44 +++---
 package/opencv/opencv.mk                           |  70 +++++++--
 6 files changed, 96 insertions(+), 279 deletions(-)
 delete mode 100644 package/opencv/0001-core-fix-x86-PIC-code-compilation.patch
 delete mode 100644 package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch
 delete mode 100644 package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch
Config.in.legacy +16 -0
index 9b9fff0..e4a963b 100644
@@ -113,6 +113,22 @@ config BR2_TARGET_UBOOT_NETWORK
 	help
 	  U-Boot's custom network settings options have been removed.
 
+config BR2_PACKAGE_OPENCV_LIB_CONTRIB
+	bool "opencv contrib module"
+	select BR2_LEGACY
+
+config BR2_PACKAGE_OPENCV_LIB_GPU
+	bool "opencv gpu module (splited in several 'cudaXXX' modules)"
+	select BR2_LEGACY
+
+config BR2_PACKAGE_OPENCV_LIB_LEGACY
+	bool "opencv legacy module"
+	select BR2_LEGACY
+
+config BR2_PACKAGE_OPENCV_LIB_NONFREE
+	bool "opencv nonfree module"
+	select BR2_LEGACY
+
 ###############################################################################
 comment "Legacy options removed in 2015.05"
 
package/opencv/0001-core-fix-x86-PIC-code-compilation.patch deleted +0 -49

49 lines not on this page · raw message

package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch deleted +0 -40
deleted file mode 100644
index d71235d..0000000
@@ -1,40 +0,0 @@
-superres: Fix return value VideoFrameSource_GPU
-
-Signed-off-by: Vicente Olivert Riera <[email protected]>
-
-From 2e393ab83362743ba1825ad4b31d4a2925c606b4 Mon Sep 17 00:00:00 2001
-From: Vicente Olivert Riera <[email protected]>
-Date: Mon, 27 Oct 2014 13:39:35 +0000
-Subject: [PATCH] superres: Fix return value VideoFrameSource_GPU
-
-superres module fails to compile with the following error messages:
-
-[100%] Building CXX object modules/superres/CMakeFiles/opencv_superres.dir/src/super_resolution.cpp.o
-/opencv-2.4.10/modules/superres/src/frame_source.cpp: In function 'cv::Ptr<cv::superres::FrameSource> cv::superres::createFrameSource_Video_GPU(const string&)':
-/opencv-2.4.10/modules/superres/src/frame_source.cpp:263:16: error: expected type-specifier before 'VideoFrameSource'
-/opencv-2.4.10/modules/superres/src/frame_source.cpp:263:16: error: could not convert '(int*)operator new(4ul)' from 'int*' to 'cv::Ptr<cv::superres::FrameSource>'
-/opencv-2.4.10/modules/superres/src/frame_source.cpp:263:16: error: expected ';' before 'VideoFrameSource'
-/opencv-2.4.10/modules/superres/src/frame_source.cpp:263:41: error: 'VideoFrameSource' was not declared in this scope
-/opencv-2.4.10/modules/superres/src/frame_source.cpp:264:1: error: control reaches end of non-void function [-Werror=return-type]
-cc1plus: some warnings being treated as errors
-make[3]: *** [modules/superres/CMakeFiles/opencv_superres.dir/src/frame_source.cpp.o] Error 1
-make[3]: *** Waiting for unfinished jobs....
-
-This is caused because the return value of the createFrameSource_Video_GPU function should be a VideoFrameSource_GPU object.
----
- modules/superres/src/frame_source.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/modules/superres/src/frame_source.cpp b/modules/superres/src/frame_source.cpp
-index 5f59a98..c5b2e76 100644
---- a/modules/superres/src/frame_source.cpp
-+++ b/modules/superres/src/frame_source.cpp
-@@ -260,7 +260,7 @@ namespace
- 
- Ptr<FrameSource> cv::superres::createFrameSource_Video_GPU(const string& fileName)
- {
--    return new VideoFrameSource(fileName);
-+    return new VideoFrameSource_GPU(fileName);
- }
- 
- #endif // HAVE_OPENCV_GPU
package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch deleted +0 -156

156 lines not on this page · raw message

package/opencv/Config.in +24 -20

91 lines not on this page · raw message

package/opencv/opencv.mk +56 -14

182 lines not on this page · raw message

Signature · 1 line
2.4.2
#8 lore raw

PATCH v5 3/13 package/opencv: bump to version 3.0

Samuel, All,

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:

Quoted 5 lines

This major version bump is in fact a bump from 2.4.10 to 2.4.11, then to 3.0.

OpenCV-2.4.11 improves a lot the Buildroot integration, including a couple of patches that no longer need to be carried in Buildroot tree:

...that are no longer needed:

Quoted 5 lines

- x86 PIC code compilation fix in core module [1];
- return type fix in superes module [2];
- opencv.pc generation [3].

It also improves the gstreamer-0.10/1.x detection [4], that will needed

...that will be needed...

Quoted 48 lines

in a follow-up patch.

The OpenCV-3.0 does some major changes, for which a transition guide has been published [5].

Among these changes coming with OpenCV-3.0, some new modules have been introduced and others got removed; leading to a bunch of configure option updates (to keep as much as possible an iso-functional-perimeter) and the legacy menu has been updated too.
The worth noticing removal being:
- the opencv_legacy and opencv_nonfree modules no longer exist;
- the opencv_contrib module has moved out of the opencv base tree and now has its own repository [6].
There is currently no plan to support it.

Some 3rd-party supports have been improved or added; their integrations in Buildroot will be addressed in follow-up patches.

[1] https://github.com/Itseez/opencv/commit/ea50be0529c248961e1b66293f8a9e4b807294a6
[2] https://github.com/Itseez/opencv/commit/2e393ab83362743ba1825ad4b31d4a2925c606b4
[3] https://github.com/Itseez/opencv/commit/eceada586bbf18fc267e437522ec4f1f23ddc656
[4] https://github.com/Itseez/opencv/commit/38bb0db9dbec08666c8a64b3e4ead8fadf15c980
[5] http://docs.opencv.org/master/db/dfa/tutorial_transition_guide.html
[6] https://github.com/itseez/opencv_contrib

Cc Vicente Olivert Riera <[email protected]>

---
changes v4->v5:
- new patch

---
 Config.in.legacy                                   |  16 +++
 .../0001-core-fix-x86-PIC-code-compilation.patch   |  49 -------
 ...ix-return-type-value-VideoFrameSource_GPU.patch |  40 ------
 ...VGenPkgconfig.cmake-rework-opencv.pc-gene.patch | 156 ---------------------
 package/opencv/Config.in                           |  44 +++---
 package/opencv/opencv.mk                           |  70 +++++++--
 6 files changed, 96 insertions(+), 279 deletions(-)
 delete mode 100644 package/opencv/0001-core-fix-x86-PIC-code-compilation.patch
 delete mode 100644 package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch
 delete mode 100644 package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch
Config.in.legacy +0 -0
index 9b9fff0..e4a963b 100644

Config.in.legacy config BR2_TARGET_UBOOT_NETWORK · line 118

Quoted 6 lines
Config.in.legacy +3 -0
@@ -113,6 +113,22 @@ config BR2_TARGET_UBOOT_NETWORK
 	help
 	  U-Boot's custom network settings options have been removed.
 
+config BR2_PACKAGE_OPENCV_LIB_CONTRIB
+	bool "opencv contrib module"
+	select BR2_LEGACY

We're usually to be more explicit in the legacy option, either with a longer prompt (e.g. "opencv contrib module no longer exists") or a help entry (e.g. "help\nOpenCV contrib module no longer exists") or both.

Config.in.legacy config BR2_TARGET_UBOOT_NETWORK · line 122

Quoted 3 lines
Config.in.legacy +3 -0
+config BR2_PACKAGE_OPENCV_LIB_GPU
+	bool "opencv gpu module (splited in several 'cudaXXX' modules)"
+	select BR2_LEGACY

'split' is an irregular verb, so its participle past is just 'split'.

Also, I did not see those new cudaXXX modules being added in that patch, nor did I see a further patch adding them.

If we're not adding them, then no need to reference them in the legacy prompt, or that would confuse the user.

Config.in.legacy config BR2_TARGET_UBOOT_NETWORK · line 126

Quoted 3 lines
Config.in.legacy +3 -0
+config BR2_PACKAGE_OPENCV_LIB_LEGACY
+	bool "opencv legacy module"
+	select BR2_LEGACY

Ditto, we're usually trying to be more explicit about legacy options.

Config.in.legacy config BR2_TARGET_UBOOT_NETWORK · line 130

Quoted 3 lines
Config.in.legacy +3 -0
+config BR2_PACKAGE_OPENCV_LIB_NONFREE
+	bool "opencv nonfree module"
+	select BR2_LEGACY

Ditto.

package/opencv/opencv.mk

Quoted 4 lines
package/opencv/opencv.mk +0 -0
index 4d08481..0a1b94c 100644

[--SNIP--]

Quoted 4 lines
package/opencv/opencv.mk +0 -0
@@ -12,19 +12,28 @@ OPENCV_LICENSE_FILES = LICENSE
 
 # OpenCV component options
 OPENCV_CONF_OPTS += \

package/opencv/opencv.mk OPENCV_LICENSE_FILES = LICENSE · line 24

Quoted 10 lines
package/opencv/opencv.mk +6 -0
+	-DBUILD_DOCS=OFF \
 	-DBUILD_PERF_TESTS=$(if $(BR2_PACKAGE_OPENCV_BUILD_PERF_TESTS),ON,OFF) \
 	-DBUILD_TESTS=$(if $(BR2_PACKAGE_OPENCV_BUILD_TESTS),ON,OFF) \
 	-DBUILD_WITH_DEBUG_INFO=OFF
 
+ifneq ($(BR2_PACKAGE_OPENCV_BUILD_TESTS)$(BR2_PACKAGE_OPENCV_BUILD_PERF_TESTS),)
+OPENCV_CONF_OPTS += -DINSTALL_TEST=ON
+else
+OPENCV_CONF_OPTS += -DINSTALL_TEST=OFF
+endif

We usually prefer positive logic, like so:

    ifeq ($(BR2_PACKAGE_OPENCV_BUILD_TESTS)$(BR2_PACKAGE_OPENCV_BUILD_PERF_TESTS),)
    OPENCV_CONF_OPTS += -DINSTALL_TEST=OFF
    else
    OPENCV_CONF_OPTS += -DINSTALL_TEST=ON
    endif

package/opencv/opencv.mk OPENCV_CONF_OPTS += \ · line 51

Quoted 5 lines
package/opencv/opencv.mk +1 -0
@@ -39,40 +48,49 @@ OPENCV_CONF_OPTS += \
 	-DINSTALL_CREATE_DISTRIB=OFF
 
 # OpenCV module selection
+# - contrib modules are disabled.

'disabled' or 'no longer exist' ?

Quoted 22 lines
package/opencv/opencv.mk +2 -7
 OPENCV_CONF_OPTS += \
 	-DBUILD_opencv_androidcamera=OFF \
 	-DBUILD_opencv_apps=OFF \
 	-DBUILD_opencv_calib3d=$(if $(BR2_PACKAGE_OPENCV_LIB_CALIB3D),ON,OFF) \
-	-DBUILD_opencv_contrib=$(if $(BR2_PACKAGE_OPENCV_LIB_CONTRIB),ON,OFF) \
 	-DBUILD_opencv_core=ON \
-	-DBUILD_opencv_dynamicuda=OFF \
 	-DBUILD_opencv_features2d=$(if $(BR2_PACKAGE_OPENCV_LIB_FEATURES2D),ON,OFF) \
 	-DBUILD_opencv_flann=$(if $(BR2_PACKAGE_OPENCV_LIB_FLANN),ON,OFF) \
-	-DBUILD_opencv_gpu=$(if $(BR2_PACKAGE_OPENCV_LIB_GPU),ON,OFF) \
+	-DBUILD_opencv_hal=ON \
 	-DBUILD_opencv_highgui=$(if $(BR2_PACKAGE_OPENCV_LIB_HIGHGUI),ON,OFF) \
+	-DBUILD_opencv_imgcodecs=$(if $(BR2_PACKAGE_OPENCV_LIB_IMGCODECS),ON,OFF) \
 	-DBUILD_opencv_imgproc=$(if $(BR2_PACKAGE_OPENCV_LIB_IMGPROC),ON,OFF) \
 	-DBUILD_opencv_java=OFF \
-	-DBUILD_opencv_legacy=$(if $(BR2_PACKAGE_OPENCV_LIB_LEGACY),ON,OFF) \
 	-DBUILD_opencv_ml=$(if $(BR2_PACKAGE_OPENCV_LIB_ML),ON,OFF) \
-	-DBUILD_opencv_nonfree=$(if $(BR2_PACKAGE_OPENCV_LIB_NONFREE),ON,OFF) \
 	-DBUILD_opencv_objdetect=$(if $(BR2_PACKAGE_OPENCV_LIB_OBJDETECT),ON,OFF) \
-	-DBUILD_opencv_ocl=OFF \
 	-DBUILD_opencv_photo=$(if $(BR2_PACKAGE_OPENCV_LIB_PHOTO),ON,OFF) \
-	-DBUILD_opencv_python=OFF \

package/opencv/opencv.mk OPENCV_CONF_OPTS += \ · line 76

Quoted 10 lines
package/opencv/opencv.mk +5 -0
+	-DBUILD_opencv_python2=OFF \
+	-DBUILD_opencv_python3=OFF \
+	-DBUILD_opencv_shape=$(if $(BR2_PACKAGE_OPENCV_LIB_SHAPE),ON,OFF) \
 	-DBUILD_opencv_stitching=$(if $(BR2_PACKAGE_OPENCV_LIB_STITCHING),ON,OFF) \
 	-DBUILD_opencv_superres=$(if $(BR2_PACKAGE_OPENCV_LIB_SUPERRES),ON,OFF) \
 	-DBUILD_opencv_ts=$(if $(BR2_PACKAGE_OPENCV_LIB_TS),ON,OFF) \
 	-DBUILD_opencv_video=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEO),ON,OFF) \
+	-DBUILD_opencv_videoio=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEOIO),ON,OFF) \
 	-DBUILD_opencv_videostab=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB),ON,OFF) \
+	-DBUILD_opencv_viz=OFF \

Any reason not to add a Config.in option for viz?

Quoted 5 lines
package/opencv/opencv.mk +0 -0
 	-DBUILD_opencv_world=OFF
 
 # Hardware support options.
 #
 # * PowerPC support is turned off since its only effect is altering CFLAGS,

package/opencv/opencv.mk OPENCV_CONF_OPTS += \ · line 91

Quoted 10 lines
package/opencv/opencv.mk +6 -0
 #   adding '-mcpu=G3 -mtune=G5' to them, which is already handled by Buildroot.
+# * fma3 and popcnt support is disabled because according to gcc manual [1], it
+#   is only available on x86_64 haswell, broadwell and knl architecture.
+#
+# [1] https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/x86-Options.html#x86-Options
 OPENCV_CONF_OPTS += \
 	-DENABLE_AVX2=$(if $(BR2_X86_CPU_HAS_AVX2),ON,OFF) \
+	-DENABLE_AVX2=$(if $(BR2_X86_CPU_HAS_AVX2),ON,OFF) \
+	-DENABLE_AVX=$(if $(BR2_X86_CPU_HAS_AVX),ON,OFF) \
 	-DENABLE_AVX=$(if $(BR2_X86_CPU_HAS_AVX),ON,OFF) \

Uho... Duplicating avx and avx2.

And like I said for SSE/. SE2: AVX sorts before AVX2. Don't trust your vim! ;-)

[--SNIP--]

Quoted 7 lines
package/opencv/opencv.mk +3 -0
@@ -83,6 +101,19 @@ OPENCV_CONF_OPTS += \
 
 # Cuda stuff
 OPENCV_CONF_OPTS += \
+	-DBUILD_CUDA_STUBS=OFF \
+	-DBUILD_opencv_cudaarithm=OFF \
+	-DBUILD_opencv_cudabgsegm=OFF \

package/opencv/opencv.mk OPENCV_CONF_OPTS += \ · line 116

Quoted 10 lines
package/opencv/opencv.mk +10 -0
+	-DBUILD_opencv_cudacodec=OFF \
+	-DBUILD_opencv_cudafeatures2d=OFF \
+	-DBUILD_opencv_cudafilters=OFF \
+	-DBUILD_opencv_cudaimgproc=OFF \
+	-DBUILD_opencv_cudalegacy=OFF \
+	-DBUILD_opencv_cudaobjdetect=OFF \
+	-DBUILD_opencv_cudaoptflow=OFF \
+	-DBUILD_opencv_cudastereo=OFF \
+	-DBUILD_opencv_cudawarping=OFF \
+	-DBUILD_opencv_cudev=OFF \

Oh, we're adding all of the CUDA modules here, and they are forcibly disabled. So, don't refer to them in the legacy prompt, or the user would hunt for the corresponding options to enable/disable them, when they are always disabled anyway, and that would be quite confusing (He!, look how I was confused! ;-] ).

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#9 lore raw

PATCH v5 3/13 package/opencv: bump to version 3.0

Yann, all,

On Sun, Jun 7, 2015 at 2:03 PM, Yann E. MORIN <[email protected]> wrote:
[...]

Quoted 4 lines
Quoted 2 lines

# OpenCV module selection
+# - contrib modules are disabled.

'disabled' or 'no longer exist' ?

Sorry for the confusion, I mean:
opencv contrib modules from [1] are not available because we don't set the OPENCV_EXTRA_MODULES_PATH CMake configure option.

I'll make the comment less cryptic in the next revision ;-).

Quoted 34 lines
Quoted 23 lines
 OPENCV_CONF_OPTS += \
      -DBUILD_opencv_androidcamera=OFF \
      -DBUILD_opencv_apps=OFF \
      -DBUILD_opencv_calib3d=$(if $(BR2_PACKAGE_OPENCV_LIB_CALIB3D),ON,OFF) \
package/opencv/opencv.mk +2 -7
-     -DBUILD_opencv_contrib=$(if $(BR2_PACKAGE_OPENCV_LIB_CONTRIB),ON,OFF) \
      -DBUILD_opencv_core=ON \
-     -DBUILD_opencv_dynamicuda=OFF \
      -DBUILD_opencv_features2d=$(if $(BR2_PACKAGE_OPENCV_LIB_FEATURES2D),ON,OFF) \
      -DBUILD_opencv_flann=$(if $(BR2_PACKAGE_OPENCV_LIB_FLANN),ON,OFF) \
-     -DBUILD_opencv_gpu=$(if $(BR2_PACKAGE_OPENCV_LIB_GPU),ON,OFF) \
+     -DBUILD_opencv_hal=ON \
      -DBUILD_opencv_highgui=$(if $(BR2_PACKAGE_OPENCV_LIB_HIGHGUI),ON,OFF) \
+     -DBUILD_opencv_imgcodecs=$(if $(BR2_PACKAGE_OPENCV_LIB_IMGCODECS),ON,OFF) \
      -DBUILD_opencv_imgproc=$(if $(BR2_PACKAGE_OPENCV_LIB_IMGPROC),ON,OFF) \
      -DBUILD_opencv_java=OFF \
-     -DBUILD_opencv_legacy=$(if $(BR2_PACKAGE_OPENCV_LIB_LEGACY),ON,OFF) \
      -DBUILD_opencv_ml=$(if $(BR2_PACKAGE_OPENCV_LIB_ML),ON,OFF) \
-     -DBUILD_opencv_nonfree=$(if $(BR2_PACKAGE_OPENCV_LIB_NONFREE),ON,OFF) \
      -DBUILD_opencv_objdetect=$(if $(BR2_PACKAGE_OPENCV_LIB_OBJDETECT),ON,OFF) \
-     -DBUILD_opencv_ocl=OFF \
      -DBUILD_opencv_photo=$(if $(BR2_PACKAGE_OPENCV_LIB_PHOTO),ON,OFF) \
-     -DBUILD_opencv_python=OFF \

package/opencv/opencv.mk OPENCV_CONF_OPTS += \ · line 76

Quoted 10 lines
package/opencv/opencv.mk +5 -0
+     -DBUILD_opencv_python2=OFF \
+     -DBUILD_opencv_python3=OFF \
+     -DBUILD_opencv_shape=$(if $(BR2_PACKAGE_OPENCV_LIB_SHAPE),ON,OFF) \
      -DBUILD_opencv_stitching=$(if $(BR2_PACKAGE_OPENCV_LIB_STITCHING),ON,OFF) \
      -DBUILD_opencv_superres=$(if $(BR2_PACKAGE_OPENCV_LIB_SUPERRES),ON,OFF) \
      -DBUILD_opencv_ts=$(if $(BR2_PACKAGE_OPENCV_LIB_TS),ON,OFF) \
      -DBUILD_opencv_video=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEO),ON,OFF) \
+     -DBUILD_opencv_videoio=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEOIO),ON,OFF) \
      -DBUILD_opencv_videostab=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB),ON,OFF) \
+     -DBUILD_opencv_viz=OFF \
Quoted 1 line

Any reason not to add a Config.in option for viz?

Yes, it needs VTK. I'll add a comment about it as well in the next revision of the patch.

Regards,

[1] https://github.com/itseez/opencv_contrib

Signature · 1 line
Samuel
#10 lore raw

PATCH v5 4/13 package/opencv: define modules inter-dependencies

In reply to Samuel Martin

OpenCV allows to enable/disable the selection of modules (a.k.a. opencv libraries). These modules depend one on the others; these dependencies are already handled by the build-system (CMake).

However, the way we handled them in Buildroot was not really clean. For each opencv module, there is a kconfig option, but we forced the corresponding CMake config option without checking for the modules' dependencies.

This patch replicates the modules' dependency relations in the Config.in, so that the selection of the user will actually be built.

Cc Vicente Olivert Riera <[email protected]>
Cc "Yann E. MORIN" <[email protected]>

---
changes v4->v5:
- rebase
- remove Reviewed-by tag form Yann (because of the changes introduced with the version bump)

changes v3->v4:
- rebase
- update ts module dependencies

changes v2->v3:
- rebase
- fix typo in commit log (Yann)
- update A/R/T tags

changes v1->v2:
- rebase

---
 package/opencv/Config.in | 53 +++++++++++++++++++++++++++++++++---------------
 1 file changed, 37 insertions(+), 16 deletions(-)
package/opencv/Config.in +37 -16
index a3f1f5e..4ab4dc7 100644
@@ -19,7 +19,8 @@ comment "OpenCV modules"
 
 config BR2_PACKAGE_OPENCV_LIB_CALIB3D
 	bool "calib3d"
-	default y
+	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
 	help
 	  Include opencv_calib3d module into the OpenCV build.
 
@@ -27,13 +28,15 @@ config BR2_PACKAGE_OPENCV_LIB_CALIB3D
 
 config BR2_PACKAGE_OPENCV_LIB_FEATURES2D
 	bool "features2d"
-	default y
+	select BR2_PACKAGE_OPENCV_LIB_FLANN
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV_LIB_ML
 	help
 	  Include opencv_features2d module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_FLANN
 	bool "flann"
-	default y
+	# opencv_core dependency is already enabled
 	help
 	  Include opencv_flann module into the OpenCV build.
 
@@ -42,37 +45,41 @@ config BR2_PACKAGE_OPENCV_LIB_FLANN
 
 config BR2_PACKAGE_OPENCV_LIB_HIGHGUI
 	bool "highgui"
-	default y
+	select BR2_PACKAGE_OPENCV_LIB_IMGCODECS
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV_LIB_VIDEOIO
 	help
 	  Include opencv_highgui module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_IMGCODECS
 	bool "imgcodecs (image codecs)"
-	default y
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
 	help
 	  Include opencv_imgcodecs module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_IMGPROC
 	bool "imgproc (image processing)"
-	default y
+	# opencv_core dependency is already enabled
 	help
 	  Include opencv_imgproc module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_ML
 	bool "ml (machine learning)"
-	default y
+	# opencv_core dependency is already enabled
 	help
 	  Include opencv_ml module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_OBJDETECT
 	bool "objdetect"
-	default y
+	# opencv_core dependency is already enabled
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV_LIB_ML
 	help
 	  Include opencv_objdetect module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_PHOTO
 	bool "photo"
-	default y
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
 	help
 	  Include opencv_photo module into the OpenCV build.
 
@@ -80,45 +87,59 @@ comment "opencv_python module requires numpy which is not yet available."
 
 config BR2_PACKAGE_OPENCV_LIB_SHAPE
 	bool "shape (shape descriptors and matchers)"
-	default y
+	# opencv_core dependency is already enabled
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV_LIB_VIDEO
 	help
 	  Include opencv_shape module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_STITCHING
 	bool "stitching"
-	default y
+	select BR2_PACKAGE_OPENCV_LIB_CALIB3D
+	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV_LIB_OBJDETECT
 	help
 	  Include opencv_stitching module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_SUPERRES
 	bool "superres"
-	default y
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV_LIB_VIDEO
 	help
 	  Include opencv_superres "super resolution" - module into the OpenCV
 	  build.
 
 config BR2_PACKAGE_OPENCV_LIB_TS
 	bool "ts (touchscreen)"
+	# opencv_core dependency is already enabled
 	select BR2_PACKAGE_OPENCV_LIB_HIGHGUI
-	default y
+	select BR2_PACKAGE_OPENCV_LIB_IMGCODECS
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV_LIB_VIDEOIO
 	help
 	  Include opencv_ts module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_VIDEOIO
 	bool "videoio (media i/o)"
-	default y
+	select BR2_PACKAGE_OPENCV_LIB_IMGCODECS
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
 	help
 	  Include opencv_videoio module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_VIDEO
 	bool "video"
-	default y
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
 	help
 	  Include opencv_video module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB
 	bool "videostab"
-	default y
+	select BR2_PACKAGE_OPENCV_LIB_CALIB3D
+	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV_LIB_PHOTO
+	select BR2_PACKAGE_OPENCV_LIB_VIDEO
 	help
 	  Include opencv_videostab module into the OpenCV build.
 
Signature · 1 line
2.4.2
#11 lore raw

PATCH v5 4/13 package/opencv: define modules inter-dependencies

Samuel, All,

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:

Quoted 9 lines

OpenCV allows to enable/disable the selection of modules (a.k.a. opencv libraries). These modules depend one on the others; these dependencies are already handled by the build-system (CMake).

However, the way we handled them in Buildroot was not really clean. For each opencv module, there is a kconfig option, but we forced the corresponding CMake config option without checking for the modules' dependencies.

Quoted 6 lines

This patch replicates the modules' dependency relations in the Config.in, so that the selection of the user will actually be built.

Cc Vicente Olivert Riera <[email protected]>
Cc "Yann E. MORIN" <[email protected]>

[--SNIP--]

package/opencv/Config.in comment "OpenCV modules" · line 23

Quoted 11 lines
package/opencv/Config.in +2 -1
index a3f1f5e..4ab4dc7 100644
@@ -19,7 +19,8 @@ comment "OpenCV modules"
 
 config BR2_PACKAGE_OPENCV_LIB_CALIB3D
 	bool "calib3d"
-	default y
+	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC

You remove the 'default y' but that means existing defconfig files will no longer be usable.

Also, it is not documented in the commit log.

And it leaves quite a few options to default to 'y' anyway.

I'm not opposed to changing that, but it must be really thought about.

And in any case, this should probably be a separate patch, that removes all 'default y' for all options, while this patch only enforces dependency, like is explained in the commit log.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#12 lore raw

PATCH v5 5/13 package/opencv: reword modules' prompt and help text

In reply to Samuel Martin

This patch is mostly cosmetic changes improving the human interface.

---
changes v4->v5:
- new patch

---
 package/opencv/Config.in | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)
package/opencv/Config.in +12 -13
index 4ab4dc7..58a6ccb 100644
@@ -18,7 +18,7 @@ if BR2_PACKAGE_OPENCV
 comment "OpenCV modules"
 
 config BR2_PACKAGE_OPENCV_LIB_CALIB3D
-	bool "calib3d"
+	bool "calib3d (camera calibration and 3d reconstruction)"
 	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
 	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
 	help
@@ -27,7 +27,7 @@ config BR2_PACKAGE_OPENCV_LIB_CALIB3D
 # opencv_core module is automatically enabled when OpenCV package is selected
 
 config BR2_PACKAGE_OPENCV_LIB_FEATURES2D
-	bool "features2d"
+	bool "features2d (2d features framework)"
 	select BR2_PACKAGE_OPENCV_LIB_FLANN
 	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
 	select BR2_PACKAGE_OPENCV_LIB_ML
@@ -35,7 +35,7 @@ config BR2_PACKAGE_OPENCV_LIB_FEATURES2D
 	  Include opencv_features2d module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_FLANN
-	bool "flann"
+	bool "flann (clustering and search in multi-dimensional spaces)"
 	# opencv_core dependency is already enabled
 	help
 	  Include opencv_flann module into the OpenCV build.
@@ -44,7 +44,7 @@ config BR2_PACKAGE_OPENCV_LIB_FLANN
 # opencv_core, so it is automatically enabled
 
 config BR2_PACKAGE_OPENCV_LIB_HIGHGUI
-	bool "highgui"
+	bool "highgui (high-level gui and media i/o)"
 	select BR2_PACKAGE_OPENCV_LIB_IMGCODECS
 	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
 	select BR2_PACKAGE_OPENCV_LIB_VIDEOIO
@@ -70,7 +70,7 @@ config BR2_PACKAGE_OPENCV_LIB_ML
 	  Include opencv_ml module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_OBJDETECT
-	bool "objdetect"
+	bool "objdetect (object detection)"
 	# opencv_core dependency is already enabled
 	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
 	select BR2_PACKAGE_OPENCV_LIB_ML
@@ -78,7 +78,7 @@ config BR2_PACKAGE_OPENCV_LIB_OBJDETECT
 	  Include opencv_objdetect module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_PHOTO
-	bool "photo"
+	bool "photo (computational photography)"
 	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
 	help
 	  Include opencv_photo module into the OpenCV build.
@@ -94,7 +94,7 @@ config BR2_PACKAGE_OPENCV_LIB_SHAPE
 	  Include opencv_shape module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_STITCHING
-	bool "stitching"
+	bool "stitching (images stitching)"
 	select BR2_PACKAGE_OPENCV_LIB_CALIB3D
 	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
 	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
@@ -103,15 +103,14 @@ config BR2_PACKAGE_OPENCV_LIB_STITCHING
 	  Include opencv_stitching module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_SUPERRES
-	bool "superres"
+	bool "superres (super resolution)"
 	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
 	select BR2_PACKAGE_OPENCV_LIB_VIDEO
 	help
-	  Include opencv_superres "super resolution" - module into the OpenCV
-	  build.
+	  Include opencv_superres module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_TS
-	bool "ts (touchscreen)"
+	bool "ts (test module)"
 	# opencv_core dependency is already enabled
 	select BR2_PACKAGE_OPENCV_LIB_HIGHGUI
 	select BR2_PACKAGE_OPENCV_LIB_IMGCODECS
@@ -128,13 +127,13 @@ config BR2_PACKAGE_OPENCV_LIB_VIDEOIO
 	  Include opencv_videoio module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_VIDEO
-	bool "video"
+	bool "video (video analysis)"
 	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
 	help
 	  Include opencv_video module into the OpenCV build.
 
 config BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB
-	bool "videostab"
+	bool "videostab (video stabilization)"
 	select BR2_PACKAGE_OPENCV_LIB_CALIB3D
 	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
 	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
Signature · 1 line
2.4.2
#13 lore raw

PATCH v5 5/13 package/opencv: reword modules' prompt and help text

Samuel, All,

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:

Quoted 1 line

This patch is mostly cosmetic changes improving the human interface.

We're not usually doing that in the prompt, but in the help texts.

So I'm not sure...

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#14 lore raw

PATCH v5 5/13 package/opencv: reword modules' prompt and help text

Yann, Samuel,

Quoted 6 lines · Yann E. MORIN

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:

Quoted 1 line

This patch is mostly cosmetic changes improving the human interface.

We're not usually doing that in the prompt, but in the help texts.

So I'm not sure...

Agreed with Yann here. Keep just the module name in the prompt, and extend the help text if needed.

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#15 lore raw

PATCH v5 6/13 package/opencv: add qt5 support

In reply to Samuel Martin

Starting with the 2.4.6 release, OpenCV supports both Qt4 and Qt5, but only one can be enabled at the same time.

Since Buildroot does not support Qt4/Qt5 co-existence, we keep the Qt support knob as a boolean, but make it depend on BR2_PACKAGE_QT or BR2_PACKAGE_QT5, and automatically uses the enabled one.

Note that we usually use 'select ...' to express the dependencies between packages, but in this case, we cannot since the Qt4/Qt5 co-existence exclusion is not handled by a simple choice, but by a dependency. This makes impossible using 'select ...' for the Qt support knob without triggering a circular dependency at the kconfig level.

Besides, we already use 'depends on ...' to express the dependencies with some "big" packages (like xorg or libgtk2). qt or qt5* packages are fairly big. So, I don't think it will hurt that much to use a 'depends on ...' statement in this case.

Cc "Yann E. MORIN" <[email protected]>

---
changes v4->v5:
- rebase

changes v3->v4:
- rebase
- rename _OPT -> _OPTS options
- rework qt backend selection (Yann)

changes v2->v3:
- rebase
- remove duplicate qt/qt5 dependencies (Yann)
- add missing 'depends on' to the comment about qt4

changes v1->v2:
- rebase
- update threads support dependency for qt5

---
 package/opencv/Config.in | 32 ++++++++++++++++++++++++++++----
 package/opencv/opencv.mk |  4 ++--
 2 files changed, 30 insertions(+), 6 deletions(-)
package/opencv/Config.in +28 -4
index 58a6ccb..4866780 100644
@@ -209,13 +209,37 @@ config BR2_PACKAGE_OPENCV_WITH_QT
 	bool "qt backend support"
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_USE_MMU # qt
-	depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
-	select BR2_PACKAGE_QT
+	depends on BR2_PACKAGE_QT || BR2_PACKAGE_QT5
+	select BR2_PACKAGE_OPENCV_QT_BACKEND  if BR2_PACKAGE_QT
+	select BR2_PACKAGE_OPENCV_QT5_BACKEND if BR2_PACKAGE_QT5
+	help
+	  Enable Qt support for OpenCV.
+
+	  This uses whatever Qt version you enabled: Qt4 or Qt5.
+
+	  If Qt4 is already enabled, then QtTest and QtGui modules and STL support
+	  will be enabled as well.
+
+	  If Qt5 is already enabled, then the following components will be enabled
+	  as well: base, concurrent, test, gui and widgets.
+
+config BR2_PACKAGE_OPENCV_QT_BACKEND
+	bool
 	select BR2_PACKAGE_QT_STL
 	select BR2_PACKAGE_QT_GUI_MODULE
 	select BR2_PACKAGE_QT_TEST
-	help
-	  Use Qt with QtTest module and STL support
+
+config BR2_PACKAGE_OPENCV_QT5_BACKEND
+	bool
+	select BR2_PACKAGE_QT5BASE
+	select BR2_PACKAGE_QT5BASE_CONCURRENT
+	select BR2_PACKAGE_QT5BASE_TEST
+	select BR2_PACKAGE_QT5BASE_GUI
+	select BR2_PACKAGE_QT5BASE_WIDGETS
+
+comment "qt backend needs either Qt4 or Qt5"
+	depends on !BR2_PACKAGE_QT && !BR2_PACKAGE_QT5
+	depends on !BR2_avr32
 
 config BR2_PACKAGE_OPENCV_WITH_TIFF
 	bool "tiff support"
package/opencv/opencv.mk +2 -2
index 0a1b94c..07bc893 100644
@@ -248,8 +248,8 @@ OPENCV_CONF_OPTS += -DWITH_PNG=OFF
 endif
 
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_QT),y)
-OPENCV_CONF_OPTS += -DWITH_QT=4
-OPENCV_DEPENDENCIES += qt
+OPENCV_CONF_OPTS += -DWITH_QT=$(if $(BR2_PACKAGE_QT),4,5)
+OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_QT),qt,qt5base)
 else
 OPENCV_CONF_OPTS += -DWITH_QT=OFF
 endif
Signature · 1 line
2.4.2
#16 lore raw

PATCH v5 6/13 package/opencv: add qt5 support

Samuel, All,

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:

Quoted 14 lines

Starting with the 2.4.6 release, OpenCV supports both Qt4 and Qt5, but only one can be enabled at the same time.

Since Buildroot does not support Qt4/Qt5 co-existence, we keep the Qt support knob as a boolean, but make it depend on BR2_PACKAGE_QT or BR2_PACKAGE_QT5, and automatically uses the enabled one.

Note that we usually use 'select ...' to express the dependencies between packages, but in this case, we cannot since the Qt4/Qt5 co-existence exclusion is not handled by a simple choice, but by a dependency. This makes impossible using 'select ...' for the Qt support knob without triggering a circular dependency at the kconfig level.

Quoted 7 lines

Besides, we already use 'depends on ...' to express the dependencies with some "big" packages (like xorg or libgtk2). qt or qt5* packages are fairly big. So, I don't think it will hurt that much to use a 'depends on ...' statement in this case.

Cc "Yann E. MORIN" <[email protected]>

[--SNIP--]

package/opencv/Config.in config BR2_PACKAGE_OPENCV_WITH_QT

Quoted 5 lines
package/opencv/Config.in +0 -0
index 58a6ccb..4866780 100644
@@ -209,13 +209,37 @@ config BR2_PACKAGE_OPENCV_WITH_QT

[--SNIP--]

package/opencv/Config.in config BR2_PACKAGE_OPENCV_WITH_QT · line 242

Quoted 3 lines
package/opencv/Config.in +3 -0
+comment "qt backend needs either Qt4 or Qt5"
+	depends on !BR2_PACKAGE_QT && !BR2_PACKAGE_QT5
+	depends on !BR2_avr32

We no longer support avr32. I should know, I ditched it! ;-)

Otherwise, looks good.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#17 lore raw

PATCH v5 7/13 package/opencv: add python support

In reply to Samuel Martin

opencv_python module needs python-numpy because it uses some numpy headers in this wrapper.

From its 2.4 release, OpenCV offers python bindings, but they required most of the OpenCV modules to be enabled.

Since OpenCV-3.0.0, python bindings have been reworked:
- it now supports both python2 and python3
- only built modules supporting wrapped in python will be included in the bindings.

---
changes v4->v5:
- rebase
- update commit log
- fix python-numpy selection
- add python3 support

changes v3->v4:
- rebase
- rename _OPT -> _OPTS
- remove python/numpy patch (merged upstream since opencv bump)

changes v2->v3:
- rebase
- add fetch uri in the opencv's patch (Yann)
- move pyhton module knob under the multi-line if block about python deps (Yann)

changes v1->v2:
- rebase
- use patch merged upstream

---
 package/opencv/Config.in | 12 +++++++++++-
 package/opencv/opencv.mk | 33 +++++++++++++++++++++++++++++++--
 2 files changed, 42 insertions(+), 3 deletions(-)
package/opencv/Config.in +11 -1
index 4866780..db950f4 100644
@@ -83,7 +83,17 @@ config BR2_PACKAGE_OPENCV_LIB_PHOTO
 	help
 	  Include opencv_photo module into the OpenCV build.
 
-comment "opencv_python module requires numpy which is not yet available."
+config BR2_PACKAGE_OPENCV_LIB_PYTHON
+	bool "python"
+	depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3
+	depends on BR2_aarch64 || BR2_arm || BR2_armeb || BR2_i386 \
+		|| BR2_mips || BR2_mipsel || BR2_powerpc || BR2_powerpc64 \
+		|| BR2_sh || BR2_x86_64 # python-numpy
+	depends on !BR2_TOOLCHAIN_USES_UCLIBC || BR2_i386 || BR2_x86_64 # python-numpy
+	select BR2_PACKAGE_PYTHON_NUMPY
+	help
+	  Include opencv_python module into the OpenCV build.
+	  No python example is installed.
 
 config BR2_PACKAGE_OPENCV_LIB_SHAPE
 	bool "shape (shape descriptors and matchers)"
package/opencv/opencv.mk +31 -2
index 07bc893..aa972dc 100644
@@ -64,8 +64,6 @@ OPENCV_CONF_OPTS += \
 	-DBUILD_opencv_ml=$(if $(BR2_PACKAGE_OPENCV_LIB_ML),ON,OFF) \
 	-DBUILD_opencv_objdetect=$(if $(BR2_PACKAGE_OPENCV_LIB_OBJDETECT),ON,OFF) \
 	-DBUILD_opencv_photo=$(if $(BR2_PACKAGE_OPENCV_LIB_PHOTO),ON,OFF) \
-	-DBUILD_opencv_python2=OFF \
-	-DBUILD_opencv_python3=OFF \
 	-DBUILD_opencv_shape=$(if $(BR2_PACKAGE_OPENCV_LIB_SHAPE),ON,OFF) \
 	-DBUILD_opencv_stitching=$(if $(BR2_PACKAGE_OPENCV_LIB_STITCHING),ON,OFF) \
 	-DBUILD_opencv_superres=$(if $(BR2_PACKAGE_OPENCV_LIB_SUPERRES),ON,OFF) \
@@ -270,6 +268,37 @@ else
 OPENCV_CONF_OPTS += -DWITH_V4L=OFF -DWITH_LIBV4L=OFF
 endif
 
+ifeq ($(BR2_PACKAGE_OPENCV_LIB_PYTHON),y)
+ifeq ($(BR2_PACKAGE_PYTHON),y)
+OPENCV_CONF_OPTS += \
+	-DBUILD_opencv_python2=ON \
+	-DBUILD_opencv_python3=OFF \
+	-DPYTHON2_EXECUTABLE=$(HOST_DIR)/usr/bin/python2 \
+	-DPYTHON2_INCLUDE_PATH=$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR) \
+	-DPYTHON2_LIBRARIES=$(STAGING_DIR)/usr/lib/libpython$(PYTHON_VERSION_MAJOR).so \
+	-DPYTHON2_NUMPY_INCLUDE_DIRS=$(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages/numpy/core/include \
+	-DPYTHON2_PACKAGES_PATH=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \
+	-DPYTHON2_NUMPY_VERSION=$(PYTHON_NUMPY_VERSION)
+OPENCV_DEPENDENCIES += python
+else
+OPENCV_CONF_OPTS += \
+	-DBUILD_opencv_python2=OFF \
+	-DBUILD_opencv_python3=ON \
+	-DPYTHON3_EXECUTABLE=$(HOST_DIR)/usr/bin/python3 \
+	-DPYTHON3_INCLUDE_PATH=$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR)m \
+	-DPYTHON3_LIBRARIES=$(STAGING_DIR)/usr/lib/libpython$(PYTHON3_VERSION_MAJOR)m.so \
+	-DPYTHON3_NUMPY_INCLUDE_DIRS=$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/core/include \
+	-DPYTHON3_PACKAGES_PATH=/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages \
+	-DPYTHON3_NUMPY_VERSION=$(PYTHON_NUMPY_VERSION)
+OPENCV_DEPENDENCIES += python3
+endif
+OPENCV_DEPENDENCIES += python-numpy
+else
+OPENCV_CONF_OPTS += \
+	-DBUILD_opencv_python2=OFF \
+	-DBUILD_opencv_python3=OFF
+endif
+
 # Installation hooks:
 define OPENCV_CLEAN_INSTALL_DOC
 	$(RM) -fr $(TARGET_DIR)/usr/share/OpenCV/doc
Signature · 1 line
2.4.2
#18 lore raw

PATCH v5 7/13 package/opencv: add python support

Samuel, All,

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:

Quoted 6 lines

opencv_python module needs python-numpy because it uses some numpy headers in this wrapper.

From its 2.4 release, OpenCV offers python bindings, but they required most of the OpenCV modules to be enabled.

Quoted 6 lines

Since OpenCV-3.0.0, python bindings have been reworked:
- it now supports both python2 and python3
- only built modules supporting wrapped in python will be included in the bindings.

Regards,
Yann E. MORIN.

Quoted 107 lines

---
changes v4->v5:
- rebase
- update commit log
- fix python-numpy selection
- add python3 support

changes v3->v4:
- rebase
- rename _OPT -> _OPTS
- remove python/numpy patch (merged upstream since opencv bump)

changes v2->v3:
- rebase
- add fetch uri in the opencv's patch (Yann)
- move pyhton module knob under the multi-line if block about python deps (Yann)

changes v1->v2:
- rebase
- use patch merged upstream

---
 package/opencv/Config.in | 12 +++++++++++-
 package/opencv/opencv.mk | 33 +++++++++++++++++++++++++++++++--
 2 files changed, 42 insertions(+), 3 deletions(-)
package/opencv/Config.in +11 -1
index 4866780..db950f4 100644
@@ -83,7 +83,17 @@ config BR2_PACKAGE_OPENCV_LIB_PHOTO
 	help
 	  Include opencv_photo module into the OpenCV build.
 
-comment "opencv_python module requires numpy which is not yet available."
+config BR2_PACKAGE_OPENCV_LIB_PYTHON
+	bool "python"
+	depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3
+	depends on BR2_aarch64 || BR2_arm || BR2_armeb || BR2_i386 \
+		|| BR2_mips || BR2_mipsel || BR2_powerpc || BR2_powerpc64 \
+		|| BR2_sh || BR2_x86_64 # python-numpy
+	depends on !BR2_TOOLCHAIN_USES_UCLIBC || BR2_i386 || BR2_x86_64 # python-numpy
+	select BR2_PACKAGE_PYTHON_NUMPY
+	help
+	  Include opencv_python module into the OpenCV build.
+	  No python example is installed.
 
 config BR2_PACKAGE_OPENCV_LIB_SHAPE
 	bool "shape (shape descriptors and matchers)"
package/opencv/opencv.mk +31 -2
index 07bc893..aa972dc 100644
@@ -64,8 +64,6 @@ OPENCV_CONF_OPTS += \
 	-DBUILD_opencv_ml=$(if $(BR2_PACKAGE_OPENCV_LIB_ML),ON,OFF) \
 	-DBUILD_opencv_objdetect=$(if $(BR2_PACKAGE_OPENCV_LIB_OBJDETECT),ON,OFF) \
 	-DBUILD_opencv_photo=$(if $(BR2_PACKAGE_OPENCV_LIB_PHOTO),ON,OFF) \
-	-DBUILD_opencv_python2=OFF \
-	-DBUILD_opencv_python3=OFF \
 	-DBUILD_opencv_shape=$(if $(BR2_PACKAGE_OPENCV_LIB_SHAPE),ON,OFF) \
 	-DBUILD_opencv_stitching=$(if $(BR2_PACKAGE_OPENCV_LIB_STITCHING),ON,OFF) \
 	-DBUILD_opencv_superres=$(if $(BR2_PACKAGE_OPENCV_LIB_SUPERRES),ON,OFF) \
@@ -270,6 +268,37 @@ else
 OPENCV_CONF_OPTS += -DWITH_V4L=OFF -DWITH_LIBV4L=OFF
 endif
 
+ifeq ($(BR2_PACKAGE_OPENCV_LIB_PYTHON),y)
+ifeq ($(BR2_PACKAGE_PYTHON),y)
+OPENCV_CONF_OPTS += \
+	-DBUILD_opencv_python2=ON \
+	-DBUILD_opencv_python3=OFF \
+	-DPYTHON2_EXECUTABLE=$(HOST_DIR)/usr/bin/python2 \
+	-DPYTHON2_INCLUDE_PATH=$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR) \
+	-DPYTHON2_LIBRARIES=$(STAGING_DIR)/usr/lib/libpython$(PYTHON_VERSION_MAJOR).so \
+	-DPYTHON2_NUMPY_INCLUDE_DIRS=$(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages/numpy/core/include \
+	-DPYTHON2_PACKAGES_PATH=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \
+	-DPYTHON2_NUMPY_VERSION=$(PYTHON_NUMPY_VERSION)
+OPENCV_DEPENDENCIES += python
+else
+OPENCV_CONF_OPTS += \
+	-DBUILD_opencv_python2=OFF \
+	-DBUILD_opencv_python3=ON \
+	-DPYTHON3_EXECUTABLE=$(HOST_DIR)/usr/bin/python3 \
+	-DPYTHON3_INCLUDE_PATH=$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR)m \
+	-DPYTHON3_LIBRARIES=$(STAGING_DIR)/usr/lib/libpython$(PYTHON3_VERSION_MAJOR)m.so \
+	-DPYTHON3_NUMPY_INCLUDE_DIRS=$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/core/include \
+	-DPYTHON3_PACKAGES_PATH=/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages \
+	-DPYTHON3_NUMPY_VERSION=$(PYTHON_NUMPY_VERSION)
+OPENCV_DEPENDENCIES += python3
+endif
+OPENCV_DEPENDENCIES += python-numpy
+else
+OPENCV_CONF_OPTS += \
+	-DBUILD_opencv_python2=OFF \
+	-DBUILD_opencv_python3=OFF
+endif
+
 # Installation hooks:
 define OPENCV_CLEAN_INSTALL_DOC
 	$(RM) -fr $(TARGET_DIR)/usr/share/OpenCV/doc
Signature · 6 lines
2.4.2

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#19 lore raw

PATCH v5 8/13 package/opencv: add gstreamer-1.x support

In reply to Samuel Martin

Starting with the 2.4.10 release, OpenCV supports both Gstreamer-0.10 and Gstreamer-1, but only one can be enabled at the same time (OpenCV uses Gstreamer-1 when available).

Since Buildroot allows both Gstreamer versions to co-exist, the configure options and dependencies are set to reflect the OpenCV preference.

Cc "Yann E. MORIN" <[email protected]>

---
changes v4->v5:
- rebase
- rework gst-X backend selection (use similar structure for qt)
- remove patch merged upstream

changes v3->v4:
- new patch

---
 package/opencv/Config.in | 34 ++++++++++++++++++++++++++--------
 package/opencv/opencv.mk |  9 +++++++--
 2 files changed, 33 insertions(+), 10 deletions(-)
package/opencv/Config.in +26 -8
index db950f4..55e7580 100644
@@ -170,17 +170,35 @@ config BR2_PACKAGE_OPENCV_WITH_FFMPEG
 	  Use ffmpeg from the target system.
 
 config BR2_PACKAGE_OPENCV_WITH_GSTREAMER
-	bool "gstreamer support"
-	depends on BR2_USE_MMU # gstreamer -> libglib2
-	depends on BR2_USE_WCHAR # gstreamer -> libglib2
-	depends on BR2_TOOLCHAIN_HAS_THREADS # gstreamer -> libglib2
-	select BR2_PACKAGE_GSTREAMER
+	bool "gstreamer backend support"
+	depends on BR2_PACKAGE_GSTREAMER || BR2_PACKAGE_GSTREAMER1
+	select BR2_PACKAGE_OPENCV_GSTREAMER_BACKEND  if BR2_PACKAGE_GSTREAMER && \
+		!BR2_PACKAGE_GSTREAMER1
+	select BR2_PACKAGE_OPENCV_GSTREAMER1_BACKEND if BR2_PACKAGE_GSTREAMER1
+	help
+	  Enable Gstreamer support for OpenCV.
+
+	  This uses whatever Gstreamer version you enabled: Gstreamer-0.10
+	  or Gstreamer-1.
+
+	  If both Gstreamer version are enable, only Gstreamer-1 will be
+	  used by OpenCV.
+
+config BR2_PACKAGE_OPENCV_GSTREAMER_BACKEND
+	bool
+	# no need to select gstreamer
 	select BR2_PACKAGE_GST_PLUGINS_BASE
 	select BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_APP
 
-comment "gstreamer support needs a toolchain w/ wchar, threads"
-	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+config BR2_PACKAGE_OPENCV_GSTREAMER1_BACKEND
+	bool
+	# no need to select gstreamer1
+	select BR2_PACKAGE_GST1_PLUGINS_BASE
+	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP
+
+comment "gstreamer backend needs either Gstreamer-0.10 or Gstreamer-1"
+	depends on !BR2_PACKAGE_GSTREAMER && !BR2_PACKAGE_GSTREAMER1
+	depends on BR2_USE_MMU # gstreamer -> libglib2
 
 config BR2_PACKAGE_OPENCV_WITH_GTK
 	bool "gtk support"
package/opencv/opencv.mk +7 -2
index aa972dc..6162d1e 100644
@@ -211,10 +211,15 @@ OPENCV_CONF_OPTS += -DWITH_FFMPEG=OFF
 endif
 
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER),y)
-OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON
+ifeq ($(BR2_PACKAGE_GSTREAMER1),y)
+OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON -DWITH_GSTREAMER_0_10=OFF
+OPENCV_DEPENDENCIES += gstreamer1 gst1-plugins-base
+else
+OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF -DWITH_GSTREAMER_0_10=ON
 OPENCV_DEPENDENCIES += gstreamer gst-plugins-base
+endif
 else
-OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF
+OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF -DWITH_GSTREAMER_0_10=OFF
 endif
 
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_GTK),y)
Signature · 1 line
2.4.2
#20 lore raw

PATCH v5 8/13 package/opencv: add gstreamer-1.x support

Samuel, All,

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:

Quoted 10 lines

Starting with the 2.4.10 release, OpenCV supports both Gstreamer-0.10 and Gstreamer-1, but only one can be enabled at the same time (OpenCV uses Gstreamer-1 when available).

Since Buildroot allows both Gstreamer versions to co-exist, the configure options and dependencies are set to reflect the OpenCV preference.

Cc "Yann E. MORIN" <[email protected]>

But see a comment below...

Quoted 9 lines
package/opencv/opencv.mk +0 -1
index aa972dc..6162d1e 100644
@@ -211,10 +211,15 @@ OPENCV_CONF_OPTS += -DWITH_FFMPEG=OFF
 endif
 
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER),y)
-OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON

package/opencv/opencv.mk OPENCV_CONF_OPTS += -DWITH_FFMPEG=OFF · line 222

Quoted 10 lines
package/opencv/opencv.mk +7 -1
+ifeq ($(BR2_PACKAGE_GSTREAMER1),y)
+OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON -DWITH_GSTREAMER_0_10=OFF
+OPENCV_DEPENDENCIES += gstreamer1 gst1-plugins-base
+else
+OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF -DWITH_GSTREAMER_0_10=ON
 OPENCV_DEPENDENCIES += gstreamer gst-plugins-base
+endif
 else
-OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF
+OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF -DWITH_GSTREAMER_0_10=OFF

This -DWITH_GSTREAMER_0_10=OFF should be added at the time you do the OpenCV bump, I believe.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#21 lore raw

PATCH v5 9/13 package/opencv: add opengl support

In reply to Samuel Martin

In OpenCV, OpenGL support is done using extensions from 3rd party
framework: either Qt5OpenGL with Qt5 (with GL support only, not GLES); or gtkglext (which is not available in Buildroot) with gtk2

So, make OpenGL knob visible when Qt5 support is selected.

---
changes v4->v5:
- new patch

---
 package/opencv/Config.in | 11 +++++++++++
 package/opencv/opencv.mk |  7 +++++++
 2 files changed, 18 insertions(+)
package/opencv/Config.in +11 -0
index 55e7580..f4072ef 100644
@@ -227,6 +227,17 @@ config BR2_PACKAGE_OPENCV_WITH_JPEG
 	help
 	  Use shared libjpeg from the target system.
 
+config BR2_PACKAGE_OPENCV_WITH_OPENGL
+	bool "opengl support"
+	# OpenGL support done using Qt5OpenGL, so depends on QT5_BACKEND
+	depends on BR2_PACKAGE_OPENCV_QT5_BACKEND
+	# OpenGL support requires Qt5OpenGL with GL support
+	depends on BR2_PACKAGE_QT5_GL_AVAILABLE
+	depends on BR2_PACKAGE_HAS_LIBGL
+	select BR2_PACKAGE_QT5BASE_OPENGL
+	help
+	  Enable OpenGL for UI.
+
 config BR2_PACKAGE_OPENCV_WITH_PNG
 	bool "png support"
 	select BR2_PACKAGE_LIBPNG
package/opencv/opencv.mk +7 -0
index 6162d1e..2902a20 100644
@@ -243,6 +243,13 @@ else
 OPENCV_CONF_OPTS += -DWITH_JPEG=OFF
 endif
 
+ifeq ($(BR2_PACKAGE_OPENCV_WITH_OPENGL),y)
+OPENCV_CONF_OPTS += -DWITH_OPENGL=ON
+OPENCV_DEPENDENCIES += libgl qt5base
+else
+OPENCV_CONF_OPTS += -DWITH_OPENGL=OFF
+endif
+
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_PNG),y)
 OPENCV_CONF_OPTS += -DWITH_PNG=ON
 OPENCV_DEPENDENCIES += libpng
Signature · 1 line
2.4.2
#22 lore raw

PATCH v5 9/13 package/opencv: add opengl support

Samuel, All,

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:

Quoted 21 lines

In OpenCV, OpenGL support is done using extensions from 3rd party
framework: either Qt5OpenGL with Qt5 (with GL support only, not GLES); or gtkglext (which is not available in Buildroot) with gtk2

So, make OpenGL knob visible when Qt5 support is selected.

---
changes v4->v5:
- new patch

---
 package/opencv/Config.in | 11 +++++++++++
 package/opencv/opencv.mk |  7 +++++++
 2 files changed, 18 insertions(+)
package/opencv/Config.in +0 -0
index 55e7580..f4072ef 100644

package/opencv/Config.in config BR2_PACKAGE_OPENCV_WITH_JPEG · line 236

Quoted 10 lines
package/opencv/Config.in +7 -0
@@ -227,6 +227,17 @@ config BR2_PACKAGE_OPENCV_WITH_JPEG
 	help
 	  Use shared libjpeg from the target system.
 
+config BR2_PACKAGE_OPENCV_WITH_OPENGL
+	bool "opengl support"
+	# OpenGL support done using Qt5OpenGL, so depends on QT5_BACKEND
+	depends on BR2_PACKAGE_OPENCV_QT5_BACKEND
+	# OpenGL support requires Qt5OpenGL with GL support
+	depends on BR2_PACKAGE_QT5_GL_AVAILABLE
+	depends on BR2_PACKAGE_HAS_LIBGL

I was going to say that BR2_PACKAGE_QT5_GL_AVAILABLE already depends on BR2_PACKAGE_HAS_LIBGL, so it was not needed.

However, as you say in the commit log, BR2_PACKAGE_QT5_GL_AVAILABLE also alternatively depends on BR2_PACKAGE_HAS_LIBGLES, which OpenCV does not support.

So, that 'depends on BR2_PACKAGE_HAS_LIBGL' makes sense. I'd however add a comment about that, like so:

# OpenGL support requires Qt5OpenGL with GL support, not GLES depends on BR2_PACKAGE_QT5_GL_AVAILABLE
depends on BR2_PACKAGE_HAS_LIBGL

package/opencv/Config.in config BR2_PACKAGE_OPENCV_WITH_JPEG · line 239

Quoted 3 lines
package/opencv/Config.in +3 -0
+	select BR2_PACKAGE_QT5BASE_OPENGL
+	help
+	  Enable OpenGL for UI.

Maybe add a comment about the Qt5 dependency:

comment "OpenGL support needs Qt5 and an OpenGL provider"

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#23 lore raw

PATCH v5 10/13 package/opencv: add openmp support

In reply to Samuel Martin

Note that this situation is not ideal because it only add openmp support to the Buildroot toolchain, not the external ones; but a couple of packages already are in this situation.

Cc "Yann E. MORIN" <[email protected]>

---
changes v4->v5:
- new patch

---
 package/opencv/opencv.mk | 2 ++
 1 file changed, 2 insertions(+)
package/opencv/opencv.mk +2 -0
index 2902a20..81c5544 100644
@@ -250,6 +250,8 @@ else
 OPENCV_CONF_OPTS += -DWITH_OPENGL=OFF
 endif
 
+OPENCV_CONF_OPTS += -DWITH_OPENMP=$(if $(BR2_GCC_ENABLE_OPENMP),ON,OFF)
+
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_PNG),y)
 OPENCV_CONF_OPTS += -DWITH_PNG=ON
 OPENCV_DEPENDENCIES += libpng
Signature · 1 line
2.4.2
#24 lore raw

PATCH v5 10/13 package/opencv: add openmp support

Samuel, All,

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:

Quoted 6 lines

Note that this situation is not ideal because it only add openmp support to the Buildroot toolchain, not the external ones; but a couple of packages already are in this situation.

Cc "Yann E. MORIN" <[email protected]>

Regards,
Yann E. MORIN.

Quoted 23 lines

---
changes v4->v5:
- new patch

---
 package/opencv/opencv.mk | 2 ++
 1 file changed, 2 insertions(+)
package/opencv/opencv.mk +2 -0
index 2902a20..81c5544 100644
@@ -250,6 +250,8 @@ else
 OPENCV_CONF_OPTS += -DWITH_OPENGL=OFF
 endif
 
+OPENCV_CONF_OPTS += -DWITH_OPENMP=$(if $(BR2_GCC_ENABLE_OPENMP),ON,OFF)
+
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_PNG),y)
 OPENCV_CONF_OPTS += -DWITH_PNG=ON
 OPENCV_DEPENDENCIES += libpng
Signature · 1 line
2.4.2
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#25 lore raw

PATCH v5 11/13 package/opencv: add gtk3 support

In reply to Samuel Martin

Fully rework the GTK support in OpenCV because it now supports gtk-2 and gtk-3 (but only one at the time).
Note that, in the build-system, the gtk support is only available when Qt support is disabled; so make sure the menuconfig reflects this.

---
changes v4->v5:
- new patch

---
 package/opencv/Config.in | 38 +++++++++++++++++++++++++++++++-------
 package/opencv/opencv.mk | 10 ++++++++--
 2 files changed, 39 insertions(+), 9 deletions(-)
package/opencv/Config.in +31 -7
index f4072ef..ff834b9 100644
@@ -200,17 +200,41 @@ comment "gstreamer backend needs either Gstreamer-0.10 or Gstreamer-1"
 	depends on !BR2_PACKAGE_GSTREAMER && !BR2_PACKAGE_GSTREAMER1
 	depends on BR2_USE_MMU # gstreamer -> libglib2
 
+
+choice
+	prompt "gtk support"
+	# common dependencies to libgtk2 and libgtk3
+	depends on BR2_USE_WCHAR
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_USE_MMU
+	depends on BR2_ARCH_HAS_ATOMICS
+	# GTK check is disabled when Qt support is on in the OpenCV's cmake code
+	depends on !BR2_PACKAGE_OPENCV_WITH_QT
+	default BR2_PACKAGE_OPENCV_WITHOUT_GTK
+	help
+	  GTK support is disabled if Qt support is enabled.
+
+config BR2_PACKAGE_OPENCV_WITHOUT_GTK
+	bool "none"
+
 config BR2_PACKAGE_OPENCV_WITH_GTK
-	bool "gtk support"
+	bool "libgtk2"
 	depends on BR2_PACKAGE_XORG7
-	depends on BR2_USE_WCHAR # libgtk2 -> libglib2
-	depends on BR2_TOOLCHAIN_HAS_THREADS # libgtk2 -> libglib2
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_USE_MMU # libgtk2 -> glib2
-	depends on BR2_ARCH_HAS_ATOMICS # libgtk2 -> cairo
-	depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
 	select BR2_PACKAGE_LIBGTK2
 
+config BR2_PACKAGE_OPENCV_WITH_GTK3
+	bool "libgtk3"
+	select BR2_PACKAGE_LIBGTK3
+
+endchoice
+
+comment "gtk support needs wchar, threads, C++"
+	depends on !(BR2_USE_WCHAR || BR2_TOOLCHAIN_HAS_THREADS || \
+		BR2_INSTALL_LIBSTDCPP)
+	depends on BR2_USE_MMU
+	depends on BR2_ARCH_HAS_ATOMICS
+
 config BR2_PACKAGE_OPENCV_WITH_JASPER
 	bool "jpeg2000 support"
 	select BR2_PACKAGE_JASPER
package/opencv/opencv.mk +8 -2
index 81c5544..d3a0738 100644
@@ -222,11 +222,17 @@ else
 OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF -DWITH_GSTREAMER_0_10=OFF
 endif
 
+ifeq ($(BR2_PACKAGE_OPENCV_WITH_GTK)$(BR2_PACKAGE_OPENCV_WITH_GTK3),y)
+OPENCV_CONF_OPTS += -DWITH_GTK=ON
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_GTK),y)
-OPENCV_CONF_OPTS += -DWITH_GTK=ON -DWITH_GTK_2_X=ON
+OPENCV_CONF_OPTS += -DWITH_GTK_2_X=ON
 OPENCV_DEPENDENCIES += libgtk2
 else
-OPENCV_CONF_OPTS += -DWITH_GTK=OFF
+OPENCV_CONF_OPTS += -DWITH_GTK_2_X=OFF
+OPENCV_DEPENDENCIES += libgtk3
+endif
+else
+OPENCV_CONF_OPTS += -DWITH_GTK=OFF -DWITH_GTK_2_X=OFF
 endif
 
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_JASPER),y)
Signature · 1 line
2.4.2
#26 lore raw

PATCH v5 11/13 package/opencv: add gtk3 support

Samuel, All,

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:

Quoted 6 lines

Fully rework the GTK support in OpenCV because it now supports gtk-2 and gtk-3 (but only one at the time).
Note that, in the build-system, the gtk support is only available when Qt support is disabled; so make sure the menuconfig reflects this.

[--SNIP--]

Quoted 9 lines
package/opencv/Config.in +1 -0
index f4072ef..ff834b9 100644
@@ -200,17 +200,41 @@ comment "gstreamer backend needs either Gstreamer-0.10 or Gstreamer-1"
 	depends on !BR2_PACKAGE_GSTREAMER && !BR2_PACKAGE_GSTREAMER1
 	depends on BR2_USE_MMU # gstreamer -> libglib2
 
+

package/opencv/Config.in comment "gstreamer backend needs either Gstreamer-0.10 or Gstreamer-1" · line 213

Quoted 10 lines
package/opencv/Config.in +10 -0
+choice
+	prompt "gtk support"
+	# common dependencies to libgtk2 and libgtk3
+	depends on BR2_USE_WCHAR
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_USE_MMU
+	depends on BR2_ARCH_HAS_ATOMICS
+	# GTK check is disabled when Qt support is on in the OpenCV's cmake code
+	depends on !BR2_PACKAGE_OPENCV_WITH_QT

No need for a default here, because 'none' is the first entry, so it is expressly the default.

Otherwise looks good:

But see a comment below...

Quoted 20 lines
package/opencv/Config.in +9 -7
+	default BR2_PACKAGE_OPENCV_WITHOUT_GTK
+	help
+	  GTK support is disabled if Qt support is enabled.
+
+config BR2_PACKAGE_OPENCV_WITHOUT_GTK
+	bool "none"
+
 config BR2_PACKAGE_OPENCV_WITH_GTK
-	bool "gtk support"
+	bool "libgtk2"
 	depends on BR2_PACKAGE_XORG7
-	depends on BR2_USE_WCHAR # libgtk2 -> libglib2
-	depends on BR2_TOOLCHAIN_HAS_THREADS # libgtk2 -> libglib2
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_USE_MMU # libgtk2 -> glib2
-	depends on BR2_ARCH_HAS_ATOMICS # libgtk2 -> cairo
-	depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
 	select BR2_PACKAGE_LIBGTK2
 
+config BR2_PACKAGE_OPENCV_WITH_GTK3

package/opencv/Config.in comment "gstreamer backend needs either Gstreamer-0.10 or Gstreamer-1" · line 236

Quoted 10 lines
package/opencv/Config.in +10 -0
+	bool "libgtk3"
+	select BR2_PACKAGE_LIBGTK3
+
+endchoice
+
+comment "gtk support needs wchar, threads, C++"
+	depends on !(BR2_USE_WCHAR || BR2_TOOLCHAIN_HAS_THREADS || \
+		BR2_INSTALL_LIBSTDCPP)
+	depends on BR2_USE_MMU
+	depends on BR2_ARCH_HAS_ATOMICS

I like that you've made it a choice. But it is inconsistent with how we present the Qt/Qt5 options.

What about making it a single choice (with proper dependencies, of course), like so:

    choice
        prompt "GUI toolkit"

    config BR2_PKG_OPENCV_GUI_NONE
        bool "none"

    config BR2_PKG_OPENCV_GUI_QT
        bool "Qt4"
        depends on BR2_PKG_QT
        ...
        select ...

    comment "Qt needs ..."

    config BR2_PKG_OPENCV_GUI_QT5
        bool "Qt5"
        depends on BR2_PKG_QT5
        ...
        select ...

    comment "Qt5 needs ..."

    config BR2_PKG_OPENCV_GUI_GTK
        bool "gtk2"
        depends on ...
        select BR2_PKG_GTK
        select ...

    comment "gtk2 needs ..."

    config BR2_PKG_OPENCV_GUI_GTK3
        bool "gtk3"
        depends on ...
        select BR2_PKG_GTK3
        select ...

    comment "gtk3 needs ..."

    endchoice

What's your opinion on that?

If you agree, then the series should look like:

package/opencv: add a choice for selecting the GUI toolkit
=> moves the existing Qt4 and gtk2 options in that choice
package/opencv: add qt5 support
=> adds Qt5 option to the GUI choice
package/opencv: add gtk3 to the GUI toolkit choice
=> adds gtk3 option to thw GUI choice

Of course, that's not a show-stopper, as my Reviewed-by tag implies.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#27 lore raw

PATCH v5 12/13 package/vlc: add opencv support

In reply to Samuel Martin

This change adds 2 patches (backported from upstream) to vlc fixing the build against opencv2 APIs.
This allows to select the minimal set of opencv modules when opencv support is enabled.

---
changes v4->v5:
- new patch

---
 ...opencv_wrapper-use-opencv2-style-includes.patch | 34 ++++++++++++++++++++++
 ...cv_example-add-missing-include-statements.patch | 27 +++++++++++++++++
 package/vlc/Config.in                              |  2 ++
 package/vlc/vlc.mk                                 |  8 ++++-
 4 files changed, 70 insertions(+), 1 deletion(-)
 create mode 100644 package/vlc/0008-opencv_wrapper-use-opencv2-style-includes.patch
 create mode 100644 package/vlc/0009-opencv_example-add-missing-include-statements.patch
package/vlc/0008-opencv_wrapper-use-opencv2-style-includes.patch new file +34 -0
new file mode 100644
index 0000000..c8a3e02
@@ -0,0 +1,34 @@
+From cc236e4652255902f2c2cee3b18f83367f35a8c7 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <[email protected]>
+Date: Sun, 24 May 2015 14:30:09 +0200
+Subject: [PATCH 8/9] opencv_wrapper: use opencv2-style includes
+
+If old opencv1-style legacy include directory is available, this change
+becomes purely cosmetic (maybe will compile a bit faster).
+It becomes an FTBFS fix when opencv1-style include directory is missing
+(i.e. from opencv-3.0).
+
+Signed-off-by: Samuel Martin <[email protected]>
+Signed-off-by: Jean-Baptiste Kempf <[email protected]>
+---
+ modules/video_filter/opencv_wrapper.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules/video_filter/opencv_wrapper.c b/modules/video_filter/opencv_wrapper.c
+index e36e1a5..5d74241 100644
+--- a/modules/video_filter/opencv_wrapper.c
++++ b/modules/video_filter/opencv_wrapper.c
+@@ -39,8 +39,8 @@
+ #include <vlc_image.h>
+ #include "filter_picture.h"
+ 
+-#include <cxcore.h>
+-#include <cv.h>
++#include <opencv2/core/core_c.h>
++#include <opencv2/core/types_c.h>
+ 
+ /*****************************************************************************
+  * Local prototypes
+-- 
+2.4.2
+
package/vlc/0009-opencv_example-add-missing-include-statements.patch new file +27 -0
new file mode 100644
index 0000000..1754066
@@ -0,0 +1,27 @@
+From b82416d7000a993b33e903095a590fe32212a85e Mon Sep 17 00:00:00 2001
+From: Samuel Martin <[email protected]>
+Date: Sun, 24 May 2015 14:30:10 +0200
+Subject: [PATCH 9/9] opencv_example: add missing #include statements
+
+Signed-off-by: Samuel Martin <[email protected]>
+Signed-off-by: Jean-Baptiste Kempf <[email protected]>
+---
+ modules/video_filter/opencv_example.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/modules/video_filter/opencv_example.cpp b/modules/video_filter/opencv_example.cpp
+index ae3af05..998f286 100644
+--- a/modules/video_filter/opencv_example.cpp
++++ b/modules/video_filter/opencv_example.cpp
+@@ -41,6 +41,8 @@
+ 
+ #include <opencv2/core/core_c.h>
+ #include <opencv2/core/core.hpp>
++#include <opencv2/imgproc/imgproc_c.h>
++#include <opencv2/imgproc/imgproc.hpp>
+ #include <opencv2/objdetect/objdetect.hpp>
+ 
+ /*****************************************************************************
+-- 
+2.4.2
+
package/vlc/Config.in +2 -0
index b030a56..471f4a7 100644
@@ -11,6 +11,8 @@ config BR2_PACKAGE_VLC
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
 	select BR2_PACKAGE_LIBVORBIS if BR2_PACKAGE_OPUS
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC if BR2_PACKAGE_OPENCV
+	select BR2_PACKAGE_OPENCV_LIB_OBJDETECT if BR2_PACKAGE_OPENCV
 	help
 	  VLC is a free and open source cross-platform multimedia player
 	  and framework that plays most multimedia files as well as DVD,
package/vlc/vlc.mk +7 -1
index acd67ee..f609041 100644
@@ -41,7 +41,6 @@ VLC_CONF_OPTS += \
 	--disable-projectm \
 	--disable-vsxu \
 	--disable-mtp \
-	--disable-opencv \
 	--disable-mmal-codec \
 	--disable-mmal-vout \
 	--disable-dvdnav \
@@ -145,6 +144,13 @@ else
 VLC_CONF_OPTS += --disable-gles2
 endif
 
+ifeq ($(BR2_PACKAGE_OPENCV),y)
+VLC_CONF_OPTS += --enable-opencv
+VLC_DEPENDENCIES += opencv
+else
+VLC_CONF_OPTS += --disable-opencv
+endif
+
 ifeq ($(BR2_PACKAGE_OPUS),y)
 VLC_CONF_OPTS += --enable-opus
 VLC_DEPENDENCIES += libvorbis opus
Signature · 1 line
2.4.2
#28 lore raw

PATCH v5 12/13 package/vlc: add opencv support

Samuel, All,

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:

Quoted 27 lines

This change adds 2 patches (backported from upstream) to vlc fixing the build against opencv2 APIs.
This allows to select the minimal set of opencv modules when opencv support is enabled.

---
changes v4->v5:
- new patch

---
 ...opencv_wrapper-use-opencv2-style-includes.patch | 34 ++++++++++++++++++++++
 ...cv_example-add-missing-include-statements.patch | 27 +++++++++++++++++
 package/vlc/Config.in                              |  2 ++
 package/vlc/vlc.mk                                 |  8 ++++-
 4 files changed, 70 insertions(+), 1 deletion(-)
 create mode 100644 package/vlc/0008-opencv_wrapper-use-opencv2-style-includes.patch
 create mode 100644 package/vlc/0009-opencv_example-add-missing-include-statements.patch
package/vlc/0008-opencv_wrapper-use-opencv2-style-includes.patch new file +2 -0
new file mode 100644
index 0000000..c8a3e02
@@ -0,0 +1,34 @@
+From cc236e4652255902f2c2cee3b18f83367f35a8c7 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <[email protected]>

package/vlc/0008-opencv_wrapper-use-opencv2-style-includes.patch line 12

Quoted 10 lines
package/vlc/0008-opencv_wrapper-use-opencv2-style-includes.patch new file +10 -0
+Date: Sun, 24 May 2015 14:30:09 +0200
+Subject: [PATCH 8/9] opencv_wrapper: use opencv2-style includes
+
+If old opencv1-style legacy include directory is available, this change
+becomes purely cosmetic (maybe will compile a bit faster).
+It becomes an FTBFS fix when opencv1-style include directory is missing
+(i.e. from opencv-3.0).
+
+Signed-off-by: Samuel Martin <[email protected]>
+Signed-off-by: Jean-Baptiste Kempf <[email protected]>

Since this patch is a backport from upstream, it would be nice to provide the link to the corresponding commit:

    https://git.videolan.org/?p=vlc.git;a=commit;h=cc236e4652255902f2c2cee3b18f83367f35a8c7

[--SNIP--]

package/vlc/0009-opencv_example-add-missing-include-statements.patch line 7

Quoted 13 lines
package/vlc/0009-opencv_example-add-missing-include-statements.patch new file +7 -0
new file mode 100644
index 0000000..1754066
@@ -0,0 +1,27 @@
+From b82416d7000a993b33e903095a590fe32212a85e Mon Sep 17 00:00:00 2001
+From: Samuel Martin <[email protected]>
+Date: Sun, 24 May 2015 14:30:10 +0200
+Subject: [PATCH 9/9] opencv_example: add missing #include statements
+
+Signed-off-by: Samuel Martin <[email protected]>
+Signed-off-by: Jean-Baptiste Kempf <[email protected]>
Ditto;
    https://git.videolan.org/?p=vlc.git;a=commit;h=b82416d7000a993b33e903095a590fe32212a85e

Otherwise, looks good:

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#29 lore raw

PATCH v5 13/13 package/gstreamer1/gst1-plugins-bad: disable opencv plugin with opencv-3

In reply to Samuel Martin

The opencv plugin uses stuff from the now removed opencv's legacy module. Note that the configure script already correctly check the opencv version and disable the opencv plugin with opencv-3.x.

---
changes v4->v5:
- new patch

---
 package/gstreamer1/gst1-plugins-bad/Config.in | 1 +
 1 file changed, 1 insertion(+)
package/gstreamer1/gst1-plugins-bad/Config.in +1 -0
index 44fcdfb..51c6232 100644
@@ -432,6 +432,7 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENCV
 	bool "opencv"
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
+	depends on BROKEN # gst1-plugin-opencv does not (yet) support opencv >=3.x
 	select BR2_PACKAGE_OPENCV
 	# Remove the following opencv modules when gstreamer fixes the
 	# problem of including the old "cv.h" header
Signature · 1 line
2.4.2
#30 lore raw

PATCH v5 13/13 package/gstreamer1/gst1-plugins-bad: disable opencv plugin with opencv-3

Samuel, All,

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:

Quoted 3 lines

The opencv plugin uses stuff from the now removed opencv's legacy module. Note that the configure script already correctly check the opencv version and disable the opencv plugin with opencv-3.x.

So, this patch should right after you bump the OpenCV version, not late in the series.

Note: it needs not be part of the bump-patch, because the build does not break, so it is OK to keep it as a separate patch.

Regards,
Yann E. MORIN.

Quoted 28 lines

---
changes v4->v5:
- new patch

---
 package/gstreamer1/gst1-plugins-bad/Config.in | 1 +
 1 file changed, 1 insertion(+)
package/gstreamer1/gst1-plugins-bad/Config.in +1 -0
index 44fcdfb..51c6232 100644
@@ -432,6 +432,7 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENCV
 	bool "opencv"
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
+	depends on BROKEN # gst1-plugin-opencv does not (yet) support opencv >=3.x
 	select BR2_PACKAGE_OPENCV
 	# Remove the following opencv modules when gstreamer fixes the
 	# problem of including the old "cv.h" header
Signature · 6 lines
2.4.2

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'