Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/4 v2] OpenCV: re-introduce opencv-2.4 package (branch yem/sma/opencv3-opencv24)
@ 2015-08-09 16:14 Yann E. MORIN
  2015-08-09 16:14 ` [Buildroot] [PATCH 1/4 v2] package: rename opencv -> opencv3 Yann E. MORIN
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Yann E. MORIN @ 2015-08-09 16:14 UTC (permalink / raw)
  To: buildroot

Hello All!

As noticed in [1], users' applications may depend on OpenCV-2.4 APIs,
which are incompatible with OpenCV-3.

This short series first renames the opencv package to opencv3, then
re-introduces the opencv one for OpenCV-2.4 as discussed in [2], and
lastly handle the reverse dependencies in the last 2 patches.

[1] http://lists.busybox.net/pipermail/buildroot/2015-August/135270.html
[2] http://lists.busybox.net/pipermail/buildroot/2015-August/137133.html

Changes v1 -> v2: (Yann)
  - only remove legacy symbols once opnecv24 has been re-introduced
  - fix a missed rename in vlc, patch 1
  - make opencv3 depends on !opencv, not the othe way around
  - fix and comment dependencies in gst1-plugins-bad


Regards,
Yann E. MORIN.


The following changes since commit 4a5f878946c37deb8c1785fb8363cd1d322f7436:

  toolchain/external: better check for gcc-5 (2015-08-09 16:58:55 +0200)

are available in the git repository at:

  git://git.busybox.net/~ymorin/git/buildroot yem/sma/opencv3-opencv24

for you to fetch changes up to 927987bbdcc79cc1a299cf2a1ba052a6ae82b702:

  package/vlc: update opencv support (2015-08-09 18:08:19 +0200)

----------------------------------------------------------------
Samuel Martin (4):
      package: rename opencv -> opencv3
      package/opencv: re-introduce opencv for opencv-2.4
      Revert "package/gstreamer1/gst1-plugins-bad: disable opencv plugin with opencv-3"
      package/vlc: update opencv support

 Config.in.legacy                                   |  32 --
 package/Config.in                                  |   1 +
 package/gstreamer1/gst1-plugins-bad/Config.in      |  19 +-
 .../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                           | 278 +++++-----------
 package/opencv/opencv.mk                           | 151 ++-------
 ...pthread-based-parallel_for-with-gcc-4.4.3.patch |   0
 ...002-fix-support-for-pthreads-parallel_for.patch |   0
 package/opencv3/Config.in                          | 344 +++++++++++++++++++
 package/opencv3/opencv3.mk                         | 363 +++++++++++++++++++++
 package/vlc/Config.in                              |  14 +-
 package/vlc/vlc.mk                                 |   6 +-
 14 files changed, 1084 insertions(+), 369 deletions(-)
 create mode 100644 package/opencv/0001-core-fix-x86-PIC-code-compilation.patch
 create mode 100644 package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch
 create mode 100644 package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch
 rename package/{opencv => opencv3}/0001-Fixed-compilation-of-pthread-based-parallel_for-with-gcc-4.4.3.patch (100%)
 rename package/{opencv => opencv3}/0002-fix-support-for-pthreads-parallel_for.patch (100%)
 create mode 100644 package/opencv3/Config.in
 create mode 100644 package/opencv3/opencv3.mk

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 1/4 v2] package: rename opencv -> opencv3
  2015-08-09 16:14 [Buildroot] [PATCH 0/4 v2] OpenCV: re-introduce opencv-2.4 package (branch yem/sma/opencv3-opencv24) Yann E. MORIN
@ 2015-08-09 16:14 ` Yann E. MORIN
  2015-08-09 16:14 ` [Buildroot] [PATCH 2/4 v2] package/opencv: re-introduce opencv for opencv-2.4 Yann E. MORIN
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Yann E. MORIN @ 2015-08-09 16:14 UTC (permalink / raw)
  To: buildroot

From: Samuel Martin <s.martin49@gmail.com>

Since there is a couple of API breaks between OpenCV 2.4 and 3.0, two
distinct packages mutually exclusive will be integrated in the package
tree.

So, this change prepares the re-introduction of the OpenCV-2.4 package
by renaming the current opencv package (which provides OpenCV-3.0) to
opencv3

It also does:
- rename symbols in reverse deps (vlc)
- remove entries from Config.in.legacy

Cc: Jonathan Ben Avraham <yba@tkos.co.il>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
[yann.morin.1998 at free.fr: fix missed usage in vlc.mk; don't remove
 legacy OpenCV symbols]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/Config.in                                  |   2 +-
 ...pthread-based-parallel_for-with-gcc-4.4.3.patch |   0
 ...002-fix-support-for-pthreads-parallel_for.patch |   0
 package/{opencv => opencv3}/Config.in              | 150 +++++++-------
 package/{opencv/opencv.mk => opencv3/opencv3.mk}   | 230 ++++++++++-----------
 package/vlc/Config.in                              |   4 +-
 package/vlc/vlc.mk                                 |   4 +-
 7 files changed, 195 insertions(+), 195 deletions(-)
 rename package/{opencv => opencv3}/0001-Fixed-compilation-of-pthread-based-parallel_for-with-gcc-4.4.3.patch (100%)
 rename package/{opencv => opencv3}/0002-fix-support-for-pthreads-parallel_for.patch (100%)
 rename package/{opencv => opencv3}/Config.in (70%)
 rename package/{opencv/opencv.mk => opencv3/opencv3.mk} (55%)

diff --git a/package/Config.in b/package/Config.in
index 47d14d7..9986eb5 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -825,7 +825,7 @@ menu "Graphics"
 	source "package/libva-intel-driver/Config.in"
 	source "package/libvips/Config.in"
 	source "package/menu-cache/Config.in"
-	source "package/opencv/Config.in"
+	source "package/opencv3/Config.in"
 	source "package/opengl/Config.in"
 	source "package/openjpeg/Config.in"
 	source "package/pango/Config.in"
diff --git a/package/opencv/0001-Fixed-compilation-of-pthread-based-parallel_for-with-gcc-4.4.3.patch b/package/opencv3/0001-Fixed-compilation-of-pthread-based-parallel_for-with-gcc-4.4.3.patch
similarity index 100%
rename from package/opencv/0001-Fixed-compilation-of-pthread-based-parallel_for-with-gcc-4.4.3.patch
rename to package/opencv3/0001-Fixed-compilation-of-pthread-based-parallel_for-with-gcc-4.4.3.patch
diff --git a/package/opencv/0002-fix-support-for-pthreads-parallel_for.patch b/package/opencv3/0002-fix-support-for-pthreads-parallel_for.patch
similarity index 100%
rename from package/opencv/0002-fix-support-for-pthreads-parallel_for.patch
rename to package/opencv3/0002-fix-support-for-pthreads-parallel_for.patch
diff --git a/package/opencv/Config.in b/package/opencv3/Config.in
similarity index 70%
rename from package/opencv/Config.in
rename to package/opencv3/Config.in
index a52092d..c63b474 100644
--- a/package/opencv/Config.in
+++ b/package/opencv3/Config.in
@@ -1,5 +1,5 @@
-menuconfig BR2_PACKAGE_OPENCV
-	bool "opencv"
+menuconfig BR2_PACKAGE_OPENCV3
+	bool "opencv3"
 	select BR2_PACKAGE_ZLIB
 	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
 	depends on BR2_INSTALL_LIBSTDCPP
@@ -17,54 +17,54 @@ menuconfig BR2_PACKAGE_OPENCV
 
 	  http://opencv.org/
 
-if BR2_PACKAGE_OPENCV
+if BR2_PACKAGE_OPENCV3
 
 comment "OpenCV modules"
 
-config BR2_PACKAGE_OPENCV_LIB_CALIB3D
+config BR2_PACKAGE_OPENCV3_LIB_CALIB3D
 	bool "calib3d"
-	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
-	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV3_LIB_FEATURES2D
+	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
 	help
 	  Include opencv_calib3d (camera calibration and 3d reconstruction) module
 	  into the OpenCV build.
 
-config BR2_PACKAGE_OPENCV_LIB_FEATURES2D
+config BR2_PACKAGE_OPENCV3_LIB_FEATURES2D
 	bool "features2d"
-	select BR2_PACKAGE_OPENCV_LIB_FLANN
-	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
-	select BR2_PACKAGE_OPENCV_LIB_ML
+	select BR2_PACKAGE_OPENCV3_LIB_FLANN
+	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV3_LIB_ML
 	help
 	  Include opencv_features2d (2d features framework) module into the OpenCV
 	  build.
 
-config BR2_PACKAGE_OPENCV_LIB_FLANN
+config BR2_PACKAGE_OPENCV3_LIB_FLANN
 	bool "flann"
 	# opencv_core dependency is already enabled
 	help
 	  Include opencv_flann (clustering and search in multi-dimensional spaces)
 	  module into the OpenCV build.
 
-config BR2_PACKAGE_OPENCV_LIB_HIGHGUI
+config BR2_PACKAGE_OPENCV3_LIB_HIGHGUI
 	bool "highgui"
-	select BR2_PACKAGE_OPENCV_LIB_IMGCODECS
-	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
-	select BR2_PACKAGE_OPENCV_LIB_VIDEOIO
+	select BR2_PACKAGE_OPENCV3_LIB_IMGCODECS
+	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV3_LIB_VIDEOIO
 	help
 	  Include opencv_highgui (high-level gui and media i/o) module into the
 	  OpenCV build.
 
-if BR2_PACKAGE_OPENCV_LIB_HIGHGUI
+if BR2_PACKAGE_OPENCV3_LIB_HIGHGUI
 
 choice
 	prompt "gui toolkit"
 	help
 	  GUI toolkit to be used by the opencv_highgui module.
 
-config BR2_PACKAGE_OPENCV_GUI_NONE
+config BR2_PACKAGE_OPENCV3_GUI_NONE
 	bool "none"
 
-config BR2_PACKAGE_OPENCV_WITH_GTK
+config BR2_PACKAGE_OPENCV3_WITH_GTK
 	bool "gtk2"
 	depends on BR2_PACKAGE_LIBGTK2
 
@@ -73,7 +73,7 @@ comment "gtk2 support needs libgtk2"
 	depends on BR2_ARCH_HAS_ATOMICS # libgtk2 -> cairo
 	depends on !BR2_PACKAGE_LIBGTK2
 
-config BR2_PACKAGE_OPENCV_WITH_GTK3
+config BR2_PACKAGE_OPENCV3_WITH_GTK3
 	bool "gtk3"
 	depends on BR2_PACKAGE_LIBGTK3
 
@@ -82,7 +82,7 @@ comment "gtk3 support needs libgtk3"
 	depends on BR2_ARCH_HAS_ATOMICS # libgtk3 -> cairo
 	depends on !BR2_PACKAGE_LIBGTK3
 
-config BR2_PACKAGE_OPENCV_WITH_QT
+config BR2_PACKAGE_OPENCV3_WITH_QT
 	bool "qt4"
 	depends on BR2_PACKAGE_QT
 	select BR2_PACKAGE_QT_STL
@@ -95,7 +95,7 @@ comment "qt4 support needs qt"
 	depends on BR2_USE_MMU # qt
 	depends on !BR2_PACKAGE_QT && !BR2_PACKAGE_QT5
 
-config BR2_PACKAGE_OPENCV_WITH_QT5
+config BR2_PACKAGE_OPENCV3_WITH_QT5
 	bool "qt5"
 	depends on BR2_PACKAGE_QT5
 	select BR2_PACKAGE_QT5BASE
@@ -111,10 +111,10 @@ comment "qt5 support needs qt5"
 
 endchoice
 
-config BR2_PACKAGE_OPENCV_WITH_OPENGL
+config BR2_PACKAGE_OPENCV3_WITH_OPENGL
 	bool "opengl support"
 	# OpenGL support done using Qt5OpenGL, so depends on WITH_QT5
-	depends on BR2_PACKAGE_OPENCV_WITH_QT5
+	depends on BR2_PACKAGE_OPENCV3_WITH_QT5
 	# OpenGL support requires Qt5OpenGL with GL support, not GLES
 	depends on BR2_PACKAGE_QT5_GL_AVAILABLE
 	depends on BR2_PACKAGE_HAS_LIBGL
@@ -123,47 +123,47 @@ config BR2_PACKAGE_OPENCV_WITH_OPENGL
 	  Enable OpenGL for UI.
 
 comment "opengl support needs an OpenGL provider"
-	depends on BR2_PACKAGE_OPENCV_WITH_QT5
+	depends on BR2_PACKAGE_OPENCV3_WITH_QT5
 	depends on !BR2_PACKAGE_QT5_GL_AVAILABLE || \
 		!BR2_PACKAGE_HAS_LIBGL
 
-endif # BR2_PACKAGE_OPENCV_LIB_HIGHGUI
+endif # BR2_PACKAGE_OPENCV3_LIB_HIGHGUI
 
 
-config BR2_PACKAGE_OPENCV_LIB_IMGCODECS
+config BR2_PACKAGE_OPENCV3_LIB_IMGCODECS
 	bool "imgcodecs"
-	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
 	help
 	  Include opencv_imgcodecs (image codecs) module into the OpenCV build.
 
-config BR2_PACKAGE_OPENCV_LIB_IMGPROC
+config BR2_PACKAGE_OPENCV3_LIB_IMGPROC
 	bool "imgproc"
 	# opencv_core dependency is already enabled
 	help
 	  Include opencv_imgproc (image processing) module into the OpenCV build.
 
-config BR2_PACKAGE_OPENCV_LIB_ML
+config BR2_PACKAGE_OPENCV3_LIB_ML
 	bool "ml"
 	# opencv_core dependency is already enabled
 	help
 	  Include opencv_ml (machine learning) module into the OpenCV build.
 
-config BR2_PACKAGE_OPENCV_LIB_OBJDETECT
+config BR2_PACKAGE_OPENCV3_LIB_OBJDETECT
 	bool "objdetect"
 	# opencv_core dependency is already enabled
-	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
-	select BR2_PACKAGE_OPENCV_LIB_ML
+	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV3_LIB_ML
 	help
 	  Include opencv_objdetect (object detection) module into the OpenCV build.
 
-config BR2_PACKAGE_OPENCV_LIB_PHOTO
+config BR2_PACKAGE_OPENCV3_LIB_PHOTO
 	bool "photo"
-	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
 	help
 	  Include opencv_photo (computational photography) module into the OpenCV
 	  build.
 
-config BR2_PACKAGE_OPENCV_LIB_PYTHON
+config BR2_PACKAGE_OPENCV3_LIB_PYTHON
 	bool "python"
 	depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3
 	depends on BR2_aarch64 || BR2_arm || BR2_armeb || BR2_i386 \
@@ -175,75 +175,75 @@ config BR2_PACKAGE_OPENCV_LIB_PYTHON
 	  Include opencv_python module into the OpenCV build.
 	  No python example is installed.
 
-config BR2_PACKAGE_OPENCV_LIB_SHAPE
+config BR2_PACKAGE_OPENCV3_LIB_SHAPE
 	bool "shape"
 	# opencv_core dependency is already enabled
-	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
-	select BR2_PACKAGE_OPENCV_LIB_VIDEO
+	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV3_LIB_VIDEO
 	help
 	  Include opencv_shape (shape descriptors and matchers) module into the
 	  OpenCV build.
 
-config BR2_PACKAGE_OPENCV_LIB_STITCHING
+config BR2_PACKAGE_OPENCV3_LIB_STITCHING
 	bool "stitching"
-	select BR2_PACKAGE_OPENCV_LIB_CALIB3D
-	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
-	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
-	select BR2_PACKAGE_OPENCV_LIB_OBJDETECT
+	select BR2_PACKAGE_OPENCV3_LIB_CALIB3D
+	select BR2_PACKAGE_OPENCV3_LIB_FEATURES2D
+	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV3_LIB_OBJDETECT
 	help
 	  Include opencv_stitching (images stitching) module into the OpenCV build.
 
-config BR2_PACKAGE_OPENCV_LIB_SUPERRES
+config BR2_PACKAGE_OPENCV3_LIB_SUPERRES
 	bool "superres"
-	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
-	select BR2_PACKAGE_OPENCV_LIB_VIDEO
+	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV3_LIB_VIDEO
 	help
 	  Include opencv_superres (super resolution) module into the OpenCV build.
 
-config BR2_PACKAGE_OPENCV_LIB_TS
+config BR2_PACKAGE_OPENCV3_LIB_TS
 	bool "ts"
 	# opencv_core dependency is already enabled
-	select BR2_PACKAGE_OPENCV_LIB_HIGHGUI
-	select BR2_PACKAGE_OPENCV_LIB_IMGCODECS
-	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
-	select BR2_PACKAGE_OPENCV_LIB_VIDEOIO
+	select BR2_PACKAGE_OPENCV3_LIB_HIGHGUI
+	select BR2_PACKAGE_OPENCV3_LIB_IMGCODECS
+	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV3_LIB_VIDEOIO
 	help
 	  Include opencv_ts (test) module into the OpenCV build.
 
-config BR2_PACKAGE_OPENCV_LIB_VIDEOIO
+config BR2_PACKAGE_OPENCV3_LIB_VIDEOIO
 	bool "videoio"
-	select BR2_PACKAGE_OPENCV_LIB_IMGCODECS
-	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV3_LIB_IMGCODECS
+	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
 	help
 	  Include opencv_videoio (media i/o) module into the OpenCV build.
 
-config BR2_PACKAGE_OPENCV_LIB_VIDEO
+config BR2_PACKAGE_OPENCV3_LIB_VIDEO
 	bool "video"
-	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
 	help
 	  Include opencv_video (video analysis) module into the OpenCV build.
 
-config BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB
+config BR2_PACKAGE_OPENCV3_LIB_VIDEOSTAB
 	bool "videostab"
-	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
+	select BR2_PACKAGE_OPENCV3_LIB_CALIB3D
+	select BR2_PACKAGE_OPENCV3_LIB_FEATURES2D
+	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV3_LIB_PHOTO
+	select BR2_PACKAGE_OPENCV3_LIB_VIDEO
 	help
 	  Include opencv_videostab (video stabilization) module into the OpenCV
 	  build.
 
 comment "Test sets"
-config BR2_PACKAGE_OPENCV_BUILD_TESTS
+config BR2_PACKAGE_OPENCV3_BUILD_TESTS
 	bool "build tests"
 
-config BR2_PACKAGE_OPENCV_BUILD_PERF_TESTS
+config BR2_PACKAGE_OPENCV3_BUILD_PERF_TESTS
 	bool "build performance tests"
 
 comment "3rd party support"
 
-config BR2_PACKAGE_OPENCV_WITH_FFMPEG
+config BR2_PACKAGE_OPENCV3_WITH_FFMPEG
 	bool "ffmpeg support"
 	select BR2_PACKAGE_BZIP2
 	select BR2_PACKAGE_FFMPEG
@@ -256,10 +256,10 @@ choice
 	help
 	  OpenCV prefers gstreamer-1 over gstreamer-0.10.
 
-config BR2_PACKAGE_OPENCV_WITHOUT_GSTREAMER
+config BR2_PACKAGE_OPENCV3_WITHOUT_GSTREAMER
 	bool "none"
 
-config BR2_PACKAGE_OPENCV_WITH_GSTREAMER
+config BR2_PACKAGE_OPENCV3_WITH_GSTREAMER
 	bool "gstreamer-0.10"
 	depends on BR2_USE_MMU # gstreamer -> libglib2
 	depends on BR2_USE_WCHAR # gstreamer -> libglib2
@@ -272,7 +272,7 @@ comment "gstreamer-0.10 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_WITH_GSTREAMER1
+config BR2_PACKAGE_OPENCV3_WITH_GSTREAMER1
 	bool "gstreamer-1.x"
 	depends on BR2_USE_MMU # gstreamer1 -> libglib2
 	depends on BR2_USE_WCHAR # gstreamer1 -> libglib2
@@ -287,7 +287,7 @@ comment "gstreamer-1.x support needs a toolchain w/ wchar, threads"
 
 endchoice
 
-config BR2_PACKAGE_OPENCV_WITH_JASPER
+config BR2_PACKAGE_OPENCV3_WITH_JASPER
 	bool "jpeg2000 support"
 	select BR2_PACKAGE_JASPER
 	help
@@ -297,25 +297,25 @@ config BR2_PACKAGE_OPENCV_WITH_JASPER
 	  but uses the libjasper package installed system-wide by
 	  Buildroot.
 
-config BR2_PACKAGE_OPENCV_WITH_JPEG
+config BR2_PACKAGE_OPENCV3_WITH_JPEG
 	bool "jpeg support"
 	select BR2_PACKAGE_JPEG
 	help
 	  Use shared libjpeg from the target system.
 
-config BR2_PACKAGE_OPENCV_WITH_PNG
+config BR2_PACKAGE_OPENCV3_WITH_PNG
 	bool "png support"
 	select BR2_PACKAGE_LIBPNG
 	help
 	  Use shared libpng from the target system.
 
-config BR2_PACKAGE_OPENCV_WITH_TIFF
+config BR2_PACKAGE_OPENCV3_WITH_TIFF
 	bool "tiff support"
 	select BR2_PACKAGE_TIFF
 	help
 	  Use shared libtiff from the target system.
 
-config BR2_PACKAGE_OPENCV_WITH_V4L
+config BR2_PACKAGE_OPENCV3_WITH_V4L
 	bool "v4l support"
 	help
 	  Enable Video 4 Linux support.
@@ -324,7 +324,7 @@ config BR2_PACKAGE_OPENCV_WITH_V4L
 
 comment "Install options"
 
-config BR2_PACKAGE_OPENCV_INSTALL_DATA
+config BR2_PACKAGE_OPENCV3_INSTALL_DATA
 	bool "install extra data"
 	help
 	  Install various data that is used by cv libraries and/or demo
@@ -335,7 +335,7 @@ config BR2_PACKAGE_OPENCV_INSTALL_DATA
 
 endif # BR2_PACKAGE_OPENCV
 
-comment "opencv needs a toolchain w/ C++, NPTL, wchar, dynamic library"
+comment "opencv3 needs a toolchain w/ C++, NPTL, wchar, dynamic library"
 	depends on !BR2_xtensa
 	depends on !BR2_INSTALL_LIBSTDCPP || \
 		!BR2_USE_WCHAR || \
diff --git a/package/opencv/opencv.mk b/package/opencv3/opencv3.mk
similarity index 55%
rename from package/opencv/opencv.mk
rename to package/opencv3/opencv3.mk
index bb1bcd8..3ce78b5 100644
--- a/package/opencv/opencv.mk
+++ b/package/opencv3/opencv3.mk
@@ -1,30 +1,30 @@
 ################################################################################
 #
-# opencv
+# opencv3
 #
 ################################################################################
 
-OPENCV_VERSION = 3.0.0
-OPENCV_SITE = $(call github,itseez,opencv,$(OPENCV_VERSION))
-OPENCV_INSTALL_STAGING = YES
-OPENCV_LICENSE = BSD-3c
-OPENCV_LICENSE_FILES = LICENSE
+OPENCV3_VERSION = 3.0.0
+OPENCV3_SITE = $(call github,itseez,opencv,$(OPENCV3_VERSION))
+OPENCV3_INSTALL_STAGING = YES
+OPENCV3_LICENSE = BSD-3c
+OPENCV3_LICENSE_FILES = LICENSE
 
 # OpenCV component options
-OPENCV_CONF_OPTS += \
+OPENCV3_CONF_OPTS += \
 	-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_PERF_TESTS=$(if $(BR2_PACKAGE_OPENCV3_BUILD_PERF_TESTS),ON,OFF) \
+	-DBUILD_TESTS=$(if $(BR2_PACKAGE_OPENCV3_BUILD_TESTS),ON,OFF) \
 	-DBUILD_WITH_DEBUG_INFO=OFF
 
-ifeq ($(BR2_PACKAGE_OPENCV_BUILD_TESTS)$(BR2_PACKAGE_OPENCV_BUILD_PERF_TESTS),)
-OPENCV_CONF_OPTS += -DINSTALL_TEST=OFF
+ifeq ($(BR2_PACKAGE_OPENCV3_BUILD_TESTS)$(BR2_PACKAGE_OPENCV3_BUILD_PERF_TESTS),)
+OPENCV3_CONF_OPTS += -DINSTALL_TEST=OFF
 else
-OPENCV_CONF_OPTS += -DINSTALL_TEST=ON
+OPENCV3_CONF_OPTS += -DINSTALL_TEST=ON
 endif
 
 # OpenCV build options
-OPENCV_CONF_OPTS += \
+OPENCV3_CONF_OPTS += \
 	-DBUILD_WITH_STATIC_CRT=OFF \
 	-DENABLE_COVERAGE=OFF \
 	-DENABLE_FAST_MATH=ON \
@@ -33,16 +33,16 @@ OPENCV_CONF_OPTS += \
 	-DENABLE_OMIT_FRAME_POINTER=ON \
 	-DENABLE_PRECOMPILED_HEADERS=OFF \
 	-DENABLE_PROFILING=OFF \
-	-DOPENCV_WARNINGS_ARE_ERRORS=OFF
+	-DOPENCV3_WARNINGS_ARE_ERRORS=OFF
 
 # OpenCV link options
-OPENCV_CONF_OPTS += \
+OPENCV3_CONF_OPTS += \
 	-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF \
 	-DCMAKE_SKIP_RPATH=OFF \
 	-DCMAKE_USE_RELATIVE_PATHS=OFF
 
 # OpenCV packaging options:
-OPENCV_CONF_OPTS += \
+OPENCV3_CONF_OPTS += \
 	-DBUILD_PACKAGE=OFF \
 	-DENABLE_SOLUTION_FOLDERS=OFF \
 	-DINSTALL_CREATE_DISTRIB=OFF
@@ -60,31 +60,31 @@ OPENCV_CONF_OPTS += \
 #
 # * Contrib modules from [1] are disabled:
 #   - opencv_contrib package is not available in Buildroot;
-#   - OPENCV_EXTRA_MODULES_PATH is not set.
+#   - OPENCV3_EXTRA_MODULES_PATH is not set.
 #
 # [1] https://github.com/Itseez/opencv_contrib
-OPENCV_CONF_OPTS += \
+OPENCV3_CONF_OPTS += \
 	-DBUILD_opencv_androidcamera=OFF \
 	-DBUILD_opencv_apps=OFF \
-	-DBUILD_opencv_calib3d=$(if $(BR2_PACKAGE_OPENCV_LIB_CALIB3D),ON,OFF) \
+	-DBUILD_opencv_calib3d=$(if $(BR2_PACKAGE_OPENCV3_LIB_CALIB3D),ON,OFF) \
 	-DBUILD_opencv_core=ON \
-	-DBUILD_opencv_features2d=$(if $(BR2_PACKAGE_OPENCV_LIB_FEATURES2D),ON,OFF) \
-	-DBUILD_opencv_flann=$(if $(BR2_PACKAGE_OPENCV_LIB_FLANN),ON,OFF) \
+	-DBUILD_opencv_features2d=$(if $(BR2_PACKAGE_OPENCV3_LIB_FEATURES2D),ON,OFF) \
+	-DBUILD_opencv_flann=$(if $(BR2_PACKAGE_OPENCV3_LIB_FLANN),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_highgui=$(if $(BR2_PACKAGE_OPENCV3_LIB_HIGHGUI),ON,OFF) \
+	-DBUILD_opencv_imgcodecs=$(if $(BR2_PACKAGE_OPENCV3_LIB_IMGCODECS),ON,OFF) \
+	-DBUILD_opencv_imgproc=$(if $(BR2_PACKAGE_OPENCV3_LIB_IMGPROC),ON,OFF) \
 	-DBUILD_opencv_java=OFF \
-	-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_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_ml=$(if $(BR2_PACKAGE_OPENCV3_LIB_ML),ON,OFF) \
+	-DBUILD_opencv_objdetect=$(if $(BR2_PACKAGE_OPENCV3_LIB_OBJDETECT),ON,OFF) \
+	-DBUILD_opencv_photo=$(if $(BR2_PACKAGE_OPENCV3_LIB_PHOTO),ON,OFF) \
+	-DBUILD_opencv_shape=$(if $(BR2_PACKAGE_OPENCV3_LIB_SHAPE),ON,OFF) \
+	-DBUILD_opencv_stitching=$(if $(BR2_PACKAGE_OPENCV3_LIB_STITCHING),ON,OFF) \
+	-DBUILD_opencv_superres=$(if $(BR2_PACKAGE_OPENCV3_LIB_SUPERRES),ON,OFF) \
+	-DBUILD_opencv_ts=$(if $(BR2_PACKAGE_OPENCV3_LIB_TS),ON,OFF) \
+	-DBUILD_opencv_video=$(if $(BR2_PACKAGE_OPENCV3_LIB_VIDEO),ON,OFF) \
+	-DBUILD_opencv_videoio=$(if $(BR2_PACKAGE_OPENCV3_LIB_VIDEOIO),ON,OFF) \
+	-DBUILD_opencv_videostab=$(if $(BR2_PACKAGE_OPENCV3_LIB_VIDEOSTAB),ON,OFF) \
 	-DBUILD_opencv_viz=OFF \
 	-DBUILD_opencv_world=OFF
 
@@ -96,7 +96,7 @@ OPENCV_CONF_OPTS += \
 #   is only available on x86_64 haswell, broadwell and knl architecture.
 #
 # [2] https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/x86-Options.html#x86-Options
-OPENCV_CONF_OPTS += \
+OPENCV3_CONF_OPTS += \
 	-DENABLE_AVX=$(if $(BR2_X86_CPU_HAS_AVX),ON,OFF) \
 	-DENABLE_AVX2=$(if $(BR2_X86_CPU_HAS_AVX2),ON,OFF) \
 	-DENABLE_FMA3=OFF \
@@ -110,7 +110,7 @@ OPENCV_CONF_OPTS += \
 	-DENABLE_SSSE3=$(if $(BR2_X86_CPU_HAS_SSSE3),ON,OFF)
 
 # Cuda stuff
-OPENCV_CONF_OPTS += \
+OPENCV3_CONF_OPTS += \
 	-DBUILD_CUDA_STUBS=OFF \
 	-DBUILD_opencv_cudaarithm=OFF \
 	-DBUILD_opencv_cudabgsegm=OFF \
@@ -129,15 +129,15 @@ OPENCV_CONF_OPTS += \
 	-DWITH_CUFFT=OFF
 
 # NVidia stuff
-OPENCV_CONF_OPTS += -DWITH_NVCUVID=OFF
+OPENCV3_CONF_OPTS += -DWITH_NVCUVID=OFF
 
 # AMD stuff
-OPENCV_CONF_OPTS += \
+OPENCV3_CONF_OPTS += \
 	-DWITH_OPENCLAMDBLAS=OFF \
 	-DWITH_OPENCLAMDFFT=OFF
 
 # Intel stuff
-OPENCV_CONF_OPTS += \
+OPENCV3_CONF_OPTS += \
 	-DBUILD_WITH_DYNAMIC_IPP=OFF \
 	-DWITH_INTELPERC=OFF \
 	-DWITH_IPP=OFF \
@@ -145,16 +145,16 @@ OPENCV_CONF_OPTS += \
 	-DWITH_TBB=OFF
 
 # Smartek stuff
-OPENCV_CONF_OPTS += -DWITH_GIGEAPI=OFF
+OPENCV3_CONF_OPTS += -DWITH_GIGEAPI=OFF
 
 # Prosilica stuff
-OPENCV_CONF_OPTS += -DWITH_PVAPI=OFF
+OPENCV3_CONF_OPTS += -DWITH_PVAPI=OFF
 
 # Ximea stuff
-OPENCV_CONF_OPTS += -DWITH_XIMEA=OFF
+OPENCV3_CONF_OPTS += -DWITH_XIMEA=OFF
 
 # Non-Linux support (Android options) must remain OFF:
-OPENCV_CONF_OPTS += \
+OPENCV3_CONF_OPTS += \
 	-DANDROID=OFF \
 	-DBUILD_ANDROID_CAMERA_WRAPPER=OFF \
 	-DBUILD_ANDROID_EXAMPLES=OFF \
@@ -164,13 +164,13 @@ OPENCV_CONF_OPTS += \
 	-DWITH_ANDROID_CAMERA=OFF
 
 # Non-Linux support (Mac OSX options) must remain OFF:
-OPENCV_CONF_OPTS += \
+OPENCV3_CONF_OPTS += \
 	-DWITH_AVFOUNDATION=OFF \
 	-DWITH_CARBON=OFF \
 	-DWITH_QUICKTIME=OFF
 
 # Non-Linux support (Windows options) must remain OFF:
-OPENCV_CONF_OPTS += \
+OPENCV3_CONF_OPTS += \
 	-DWITH_CSTRIPES=OFF \
 	-DWITH_DSHOW=OFF \
 	-DWITH_MSMF=OFF \
@@ -181,7 +181,7 @@ OPENCV_CONF_OPTS += \
 
 # Software/3rd-party support options:
 # - disable all examples
-OPENCV_CONF_OPTS += \
+OPENCV3_CONF_OPTS += \
 	-DBUILD_EXAMPLES=OFF \
 	-DBUILD_JASPER=OFF \
 	-DBUILD_JPEG=OFF \
@@ -195,7 +195,7 @@ OPENCV_CONF_OPTS += \
 
 # 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 += \
+OPENCV3_CONF_OPTS += \
 	-DWITH_1394=OFF \
 	-DWITH_CLP=OFF \
 	-DWITH_EIGEN=OFF \
@@ -213,106 +213,106 @@ OPENCV_CONF_OPTS += \
 	-DWITH_WEBP=OFF \
 	-DWITH_XINE=OFF
 
-OPENCV_DEPENDENCIES += zlib
+OPENCV3_DEPENDENCIES += zlib
 
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_FFMPEG),y)
-OPENCV_CONF_OPTS += -DWITH_FFMPEG=ON
-OPENCV_DEPENDENCIES += ffmpeg bzip2
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_FFMPEG),y)
+OPENCV3_CONF_OPTS += -DWITH_FFMPEG=ON
+OPENCV3_DEPENDENCIES += ffmpeg bzip2
 else
-OPENCV_CONF_OPTS += -DWITH_FFMPEG=OFF
+OPENCV3_CONF_OPTS += -DWITH_FFMPEG=OFF
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER),y)
-OPENCV_CONF_OPTS += -DWITH_GSTREAMER_0_10=ON
-OPENCV_DEPENDENCIES += gstreamer gst-plugins-base
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_GSTREAMER),y)
+OPENCV3_CONF_OPTS += -DWITH_GSTREAMER_0_10=ON
+OPENCV3_DEPENDENCIES += gstreamer gst-plugins-base
 else
-OPENCV_CONF_OPTS += -DWITH_GSTREAMER_0_10=OFF
+OPENCV3_CONF_OPTS += -DWITH_GSTREAMER_0_10=OFF
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER1),y)
-OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON
-OPENCV_DEPENDENCIES += gstreamer1 gst1-plugins-base
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_GSTREAMER1),y)
+OPENCV3_CONF_OPTS += -DWITH_GSTREAMER=ON
+OPENCV3_DEPENDENCIES += gstreamer1 gst1-plugins-base
 else
-OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF
+OPENCV3_CONF_OPTS += -DWITH_GSTREAMER=OFF
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_GTK)$(BR2_PACKAGE_OPENCV_WITH_GTK3),)
-OPENCV_CONF_OPTS += -DWITH_GTK=OFF -DWITH_GTK_2_X=OFF
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_GTK)$(BR2_PACKAGE_OPENCV3_WITH_GTK3),)
+OPENCV3_CONF_OPTS += -DWITH_GTK=OFF -DWITH_GTK_2_X=OFF
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_GTK),y)
-OPENCV_CONF_OPTS += -DWITH_GTK=ON -DWITH_GTK_2_X=ON
-OPENCV_DEPENDENCIES += libgtk2
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_GTK),y)
+OPENCV3_CONF_OPTS += -DWITH_GTK=ON -DWITH_GTK_2_X=ON
+OPENCV3_DEPENDENCIES += libgtk2
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_GTK3),y)
-OPENCV_CONF_OPTS += -DWITH_GTK=ON -DWITH_GTK_2_X=OFF
-OPENCV_DEPENDENCIES += libgtk3
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_GTK3),y)
+OPENCV3_CONF_OPTS += -DWITH_GTK=ON -DWITH_GTK_2_X=OFF
+OPENCV3_DEPENDENCIES += libgtk3
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_JASPER),y)
-OPENCV_CONF_OPTS += -DWITH_JASPER=ON
-OPENCV_DEPENDENCIES += jasper
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_JASPER),y)
+OPENCV3_CONF_OPTS += -DWITH_JASPER=ON
+OPENCV3_DEPENDENCIES += jasper
 else
-OPENCV_CONF_OPTS += -DWITH_JASPER=OFF
+OPENCV3_CONF_OPTS += -DWITH_JASPER=OFF
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_JPEG),y)
-OPENCV_CONF_OPTS += -DWITH_JPEG=ON
-OPENCV_DEPENDENCIES += jpeg
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_JPEG),y)
+OPENCV3_CONF_OPTS += -DWITH_JPEG=ON
+OPENCV3_DEPENDENCIES += jpeg
 else
-OPENCV_CONF_OPTS += -DWITH_JPEG=OFF
+OPENCV3_CONF_OPTS += -DWITH_JPEG=OFF
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_OPENGL),y)
-OPENCV_CONF_OPTS += -DWITH_OPENGL=ON
-OPENCV_DEPENDENCIES += libgl
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_OPENGL),y)
+OPENCV3_CONF_OPTS += -DWITH_OPENGL=ON
+OPENCV3_DEPENDENCIES += libgl
 else
-OPENCV_CONF_OPTS += -DWITH_OPENGL=OFF
+OPENCV3_CONF_OPTS += -DWITH_OPENGL=OFF
 endif
 
-OPENCV_CONF_OPTS += -DWITH_OPENMP=$(if $(BR2_GCC_ENABLE_OPENMP),ON,OFF)
+OPENCV3_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
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_PNG),y)
+OPENCV3_CONF_OPTS += -DWITH_PNG=ON
+OPENCV3_DEPENDENCIES += libpng
 else
-OPENCV_CONF_OPTS += -DWITH_PNG=OFF
+OPENCV3_CONF_OPTS += -DWITH_PNG=OFF
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_QT)$(BR2_PACKAGE_OPENCV_WITH_QT5),)
-OPENCV_CONF_OPTS += -DWITH_QT=OFF
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_QT)$(BR2_PACKAGE_OPENCV3_WITH_QT5),)
+OPENCV3_CONF_OPTS += -DWITH_QT=OFF
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_QT),y)
-OPENCV_CONF_OPTS += -DWITH_QT=4
-OPENCV_DEPENDENCIES += qt
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_QT),y)
+OPENCV3_CONF_OPTS += -DWITH_QT=4
+OPENCV3_DEPENDENCIES += qt
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_QT5),y)
-OPENCV_CONF_OPTS += -DWITH_QT=5
-OPENCV_DEPENDENCIES += qt5base
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_QT5),y)
+OPENCV3_CONF_OPTS += -DWITH_QT=5
+OPENCV3_DEPENDENCIES += qt5base
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_TIFF),y)
-OPENCV_CONF_OPTS += -DWITH_TIFF=ON
-OPENCV_DEPENDENCIES += tiff
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_TIFF),y)
+OPENCV3_CONF_OPTS += -DWITH_TIFF=ON
+OPENCV3_DEPENDENCIES += tiff
 else
-OPENCV_CONF_OPTS += -DWITH_TIFF=OFF
+OPENCV3_CONF_OPTS += -DWITH_TIFF=OFF
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_V4L),y)
-OPENCV_CONF_OPTS += \
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_V4L),y)
+OPENCV3_CONF_OPTS += \
 	-DWITH_LIBV4L=$(if $(BR2_PACKAGE_LIBV4L),ON,OFF) \
 	-DWITH_V4L=ON
-OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBV4L),libv4l)
+OPENCV3_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBV4L),libv4l)
 else
-OPENCV_CONF_OPTS += -DWITH_V4L=OFF -DWITH_LIBV4L=OFF
+OPENCV3_CONF_OPTS += -DWITH_V4L=OFF -DWITH_LIBV4L=OFF
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV_LIB_PYTHON),y)
+ifeq ($(BR2_PACKAGE_OPENCV3_LIB_PYTHON),y)
 ifeq ($(BR2_PACKAGE_PYTHON),y)
-OPENCV_CONF_OPTS += \
+OPENCV3_CONF_OPTS += \
 	-DBUILD_opencv_python2=ON \
 	-DBUILD_opencv_python3=OFF \
 	-DPYTHON2_EXECUTABLE=$(HOST_DIR)/usr/bin/python2 \
@@ -321,9 +321,9 @@ OPENCV_CONF_OPTS += \
 	-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
+OPENCV3_DEPENDENCIES += python
 else
-OPENCV_CONF_OPTS += \
+OPENCV3_CONF_OPTS += \
 	-DBUILD_opencv_python2=OFF \
 	-DBUILD_opencv_python3=ON \
 	-DPYTHON3_EXECUTABLE=$(HOST_DIR)/usr/bin/python3 \
@@ -332,32 +332,32 @@ OPENCV_CONF_OPTS += \
 	-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
+OPENCV3_DEPENDENCIES += python3
 endif
-OPENCV_DEPENDENCIES += python-numpy
+OPENCV3_DEPENDENCIES += python-numpy
 else
-OPENCV_CONF_OPTS += \
+OPENCV3_CONF_OPTS += \
 	-DBUILD_opencv_python2=OFF \
 	-DBUILD_opencv_python3=OFF
 endif
 
 # Installation hooks:
-define OPENCV_CLEAN_INSTALL_DOC
+define OPENCV3_CLEAN_INSTALL_DOC
 	$(RM) -fr $(TARGET_DIR)/usr/share/OpenCV/doc
 endef
-OPENCV_POST_INSTALL_TARGET_HOOKS += OPENCV_CLEAN_INSTALL_DOC
+OPENCV3_POST_INSTALL_TARGET_HOOKS += OPENCV3_CLEAN_INSTALL_DOC
 
-define OPENCV_CLEAN_INSTALL_CMAKE
+define OPENCV3_CLEAN_INSTALL_CMAKE
 	$(RM) -f $(TARGET_DIR)/usr/share/OpenCV/OpenCVConfig*.cmake
 endef
-OPENCV_POST_INSTALL_TARGET_HOOKS += OPENCV_CLEAN_INSTALL_CMAKE
+OPENCV3_POST_INSTALL_TARGET_HOOKS += OPENCV3_CLEAN_INSTALL_CMAKE
 
-ifneq ($(BR2_PACKAGE_OPENCV_INSTALL_DATA),y)
-define OPENCV_CLEAN_INSTALL_DATA
+ifneq ($(BR2_PACKAGE_OPENCV3_INSTALL_DATA),y)
+define OPENCV3_CLEAN_INSTALL_DATA
 	$(RM) -fr $(TARGET_DIR)/usr/share/OpenCV/haarcascades \
 		$(TARGET_DIR)/usr/share/OpenCV/lbpcascades
 endef
-OPENCV_POST_INSTALL_TARGET_HOOKS += OPENCV_CLEAN_INSTALL_DATA
+OPENCV3_POST_INSTALL_TARGET_HOOKS += OPENCV3_CLEAN_INSTALL_DATA
 endif
 
 $(eval $(cmake-package))
diff --git a/package/vlc/Config.in b/package/vlc/Config.in
index 471f4a7..6679cc9 100644
--- a/package/vlc/Config.in
+++ b/package/vlc/Config.in
@@ -11,8 +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
+	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC if BR2_PACKAGE_OPENCV3
+	select BR2_PACKAGE_OPENCV3_LIB_OBJDETECT if BR2_PACKAGE_OPENCV3
 	help
 	  VLC is a free and open source cross-platform multimedia player
 	  and framework that plays most multimedia files as well as DVD,
diff --git a/package/vlc/vlc.mk b/package/vlc/vlc.mk
index e408635..fa74a7b 100644
--- a/package/vlc/vlc.mk
+++ b/package/vlc/vlc.mk
@@ -153,9 +153,9 @@ else
 VLC_CONF_OPTS += --disable-gles2
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV),y)
+ifeq ($(BR2_PACKAGE_OPENCV3),y)
 VLC_CONF_OPTS += --enable-opencv
-VLC_DEPENDENCIES += opencv
+VLC_DEPENDENCIES += opencv3
 else
 VLC_CONF_OPTS += --disable-opencv
 endif
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 2/4 v2] package/opencv: re-introduce opencv for opencv-2.4
  2015-08-09 16:14 [Buildroot] [PATCH 0/4 v2] OpenCV: re-introduce opencv-2.4 package (branch yem/sma/opencv3-opencv24) Yann E. MORIN
  2015-08-09 16:14 ` [Buildroot] [PATCH 1/4 v2] package: rename opencv -> opencv3 Yann E. MORIN
@ 2015-08-09 16:14 ` Yann E. MORIN
  2015-08-09 16:14 ` [Buildroot] [PATCH 3/4 v2] Revert "package/gstreamer1/gst1-plugins-bad: disable opencv plugin with opencv-3" Yann E. MORIN
  2015-08-09 16:14 ` [Buildroot] [PATCH 4/4 v2] package/vlc: update opencv support Yann E. MORIN
  3 siblings, 0 replies; 7+ messages in thread
From: Yann E. MORIN @ 2015-08-09 16:14 UTC (permalink / raw)
  To: buildroot

From: Samuel Martin <s.martin49@gmail.com>

As Jonathan noticed in [1], users' applications may depend on opencv-2.4
APIs removed in opencv-3.0.

So, re-introduce opencv package as it was right before the bump to
opencv-3.0 (i.e.: commit bf00b5a9ea1ab4189fe5c7dea05f40d0bbbf2082).

Also, add the dependency on !BR2_PACKAGE_OPENCV3 since they are mutually
exclusive.

[1] http://lists.busybox.net/pipermail/buildroot/2015-August/135270.html

Cc: Jonathan Ben Avraham <yba@tkos.co.il>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
[yann.morin.1998 at free.fr: remove legacy symbols, now; make opencv3
depends on !opencv, not the other way around]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

---
Jonathan: feel free to apply any patch on this package to bump opencv to
the latest release on the 2.4 branch.
---
 Config.in.legacy                                   |  32 ---
 package/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                           | 223 ++++++++++++++++++
 package/opencv/opencv.mk                           | 250 +++++++++++++++++++++
 package/opencv3/Config.in                          |   1 +
 8 files changed, 720 insertions(+), 32 deletions(-)
 create mode 100644 package/opencv/0001-core-fix-x86-PIC-code-compilation.patch
 create mode 100644 package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch
 create mode 100644 package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch
 create mode 100644 package/opencv/Config.in
 create mode 100644 package/opencv/opencv.mk

diff --git a/Config.in.legacy b/Config.in.legacy
index 3b77b34..3330566 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -194,38 +194,6 @@ 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 no longer exists"
-	select BR2_LEGACY
-	help
-	  OpenCV >=3.0 does not come with in-tree contrib modules.
-
-	  They have been moved out of the OpenCV base tree, into the opencv_contrib
-	  repository:
-	    https://github.com/Itseez/opencv_contrib
-
-config BR2_PACKAGE_OPENCV_LIB_GPU
-	bool "opencv gpu module no longer exists"
-	select BR2_LEGACY
-	help
-	  opencv_gpu module no longer exists as is in OpenCV >=3.0.
-
-	  It has been split into several modules prefixed with "cuda" that require
-	  Cuda programming toolkit, which is not available in Buildroot. So cuda
-	  modules are forcibly disabled in Buildroot.
-
-config BR2_PACKAGE_OPENCV_LIB_LEGACY
-	bool "opencv legacy module no longer exists"
-	select BR2_LEGACY
-	help
-	  opencv_legacy module no longer exists in OpenCV >=3.0.
-
-config BR2_PACKAGE_OPENCV_LIB_NONFREE
-	bool "opencv nonfree module no longer exists"
-	select BR2_LEGACY
-	help
-	  opencv_nonfree module no longer exists in OpenCV >=3.0.
-
 ###############################################################################
 comment "Legacy options removed in 2015.05"
 
diff --git a/package/Config.in b/package/Config.in
index 9986eb5..b356c89 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -825,6 +825,7 @@ menu "Graphics"
 	source "package/libva-intel-driver/Config.in"
 	source "package/libvips/Config.in"
 	source "package/menu-cache/Config.in"
+	source "package/opencv/Config.in"
 	source "package/opencv3/Config.in"
 	source "package/opengl/Config.in"
 	source "package/openjpeg/Config.in"
diff --git a/package/opencv/0001-core-fix-x86-PIC-code-compilation.patch b/package/opencv/0001-core-fix-x86-PIC-code-compilation.patch
new file mode 100644
index 0000000..9e8c2e9
--- /dev/null
+++ b/package/opencv/0001-core-fix-x86-PIC-code-compilation.patch
@@ -0,0 +1,49 @@
+From ea50be0529c248961e1b66293f8a9e4b807294a6 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sun, 12 Oct 2014 10:17:23 +0200
+Subject: [PATCH] core: fix x86 PIC code compilation
+
+This bug was triggered by Buildroot autobuilders [1,2], causing this
+kind of failures [3,4]:
+
+  [ 14%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/system.cpp.o
+  /home/test/autobuild/instance-0/output/build/opencv-2.4.10/modules/core/src/system.cpp: In function '(static initializers for /home/test/autobuild/instance-0/output/build/opencv-2.4.10/modules/core/src/system.cpp)':
+  /home/test/autobuild/instance-0/output/build/opencv-2.4.10/modules/core/src/system.cpp:280:10: error: inconsistent operand constraints in an 'asm'
+  make[3]: *** [modules/core/CMakeFiles/opencv_core.dir/src/system.cpp.o] Error 1
+
+[1] http://buildroot.org/
+[2] http://autobuild.buildroot.org/
+[3] http://autobuild.buildroot.org/?reason=opencv-2.4.10
+[4] http://autobuild.buildroot.org/results/483/4838285b25d6293a5cf0bb9eadd5040a7c75d766/build-end.log
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ modules/core/src/system.cpp | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/modules/core/src/system.cpp b/modules/core/src/system.cpp
+index 5a970d5..e9ffdc7 100644
+--- a/modules/core/src/system.cpp
++++ b/modules/core/src/system.cpp
+@@ -267,14 +267,17 @@ struct HWFeatures
+          : "cc"
+         );
+         #else
++        // We need to preserve ebx since we are compiling PIC code.
++        // This means we cannot use "=b" for the 2nd output register.
+         asm volatile
+         (
+          "pushl %%ebx\n\t"
+          "movl $7,%%eax\n\t"
+          "movl $0,%%ecx\n\t"
+          "cpuid\n\t"
++         "movl %%ebx,%1\n\t"
+          "popl %%ebx\n\t"
+-         : "=a"(cpuid_data[0]), "=b"(cpuid_data[1]), "=c"(cpuid_data[2]), "=d"(cpuid_data[3])
++         : "=a"(cpuid_data[0]), "=r"(cpuid_data[1]), "=c"(cpuid_data[2]), "=d"(cpuid_data[3])
+          :
+          : "cc"
+         );
+-- 
+2.1.2
+
diff --git a/package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch b/package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch
new file mode 100644
index 0000000..d71235d
--- /dev/null
+++ b/package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch
@@ -0,0 +1,40 @@
+superres: Fix return value VideoFrameSource_GPU
+
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+
+From 2e393ab83362743ba1825ad4b31d4a2925c606b4 Mon Sep 17 00:00:00 2001
+From: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+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
diff --git a/package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch b/package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch
new file mode 100644
index 0000000..768f08d
--- /dev/null
+++ b/package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch
@@ -0,0 +1,156 @@
+From eceada586bbf18fc267e437522ec4f1f23ddc656 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Fri, 3 Oct 2014 00:32:40 +0200
+Subject: [PATCH] cmake/OpenCVGenPkgconfig.cmake: rework opencv.pc generation
+
+Using absolute path to locate the components in the "Libs:" field of the
+*.pc can badly break cross-compilation, especially when building
+statically linked objects.
+
+Indeed, pkg-config automatically replaces the '-I...' and '-L...' paths
+when the PKG_CONFIG_SYSROOT_DIR and PKG_CONFIG_LIBDIR environment
+variables are set [1]. This feature is very helpful and common in
+cross-compilation framework like Buildroot [2,3].
+
+When there are absolute paths in the *.pc files, pkg-config won't be
+able to do the path substitions for these paths when the afromentioned
+environment variables are set.
+In such case, since the prefix is the target one, not the sysroot one,
+these libraries' abolute paths will point to:
+- in the best case: a non-existing file (i.e. these files do not exists
+  on the host system;
+- at worst: the host system's libraries. This will make the linking
+  failed because these host system's libraries will most likely not be
+  build for the target architecture [4].
+
+So, this patch replace the components' absolute paths by the form:
+  -L<libdir> -l<libname>
+
+This way, the linker will be able to resolve each dependency path,
+whatever the kind of objects/build (shared object or static build) it
+is dealing with.
+
+Note that for static link, the library order does matter [5]. The order
+of the opencv components has been carefully chosen to comply with this
+requirement.
+
+Fixes #3931
+
+[1] http://linux.die.net/man/1/pkg-config
+[2] http://buildroot.org/
+[3] http://git.buildroot.net/buildroot/tree/package/pkgconf/pkg-config.in
+[4] http://autobuild.buildroot.net/results/e8a/e8a859276db34aff87ef181b0cce98916b0afc90/build-end.log
+[5] http://stackoverflow.com/questions/45135/linker-order-gcc
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+---
+Note: this patch properly applies on top of the master branch, though it
+      has been written on top of the 2.4 branch.
+---
+ cmake/OpenCVGenPkgconfig.cmake | 64 +++++++++++++++++++++++++++---------------
+ 1 file changed, 42 insertions(+), 22 deletions(-)
+
+diff --git a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake
+index fa57db9..183c56d 100644
+--- a/cmake/OpenCVGenPkgconfig.cmake
++++ b/cmake/OpenCVGenPkgconfig.cmake
+@@ -8,10 +8,6 @@
+ #
+ # ${BIN_DIR}/unix-install/opencv.pc -> For use *with* "make install"
+ # -------------------------------------------------------------------------------------------
+-set(prefix      "${CMAKE_INSTALL_PREFIX}")
+-set(exec_prefix "\${prefix}")
+-set(libdir      "") #TODO: need link paths for OpenCV_EXTRA_COMPONENTS
+-set(includedir  "\${prefix}/${OPENCV_INCLUDE_INSTALL_PATH}")
+ 
+ if(CMAKE_BUILD_TYPE MATCHES "Release")
+   set(ocv_optkind OPT)
+@@ -35,42 +31,66 @@ ocv_list_reverse(OpenCV_LIB_COMPONENTS)
+ ocv_list_reverse(OpenCV_EXTRA_COMPONENTS)
+ 
+ #build the list of components
+-set(OpenCV_LIB_COMPONENTS_ "")
+-foreach(CVLib ${OpenCV_LIB_COMPONENTS})
+-  get_target_property(libpath ${CVLib} LOCATION_${CMAKE_BUILD_TYPE})
+-  get_filename_component(libname "${libpath}" NAME)
+ 
+-  if(INSTALL_TO_MANGLED_PATHS)
+-    set(libname "${libname}.${OPENCV_VERSION}")
+-  endif()
++# Note:
++#   when linking against static libraries, if libfoo depends on libbar, then
++#   libfoo must come first in the linker flags.
++
++# world is a special target whose library should come first, especially for
++# static link.
++if(OpenCV_LIB_COMPONENTS MATCHES "opencv_world")
++  list(REMOVE_ITEM OpenCV_LIB_COMPONENTS "opencv_world")
++  list(INSERT OpenCV_LIB_COMPONENTS 0 "opencv_world")
++endif()
++
++set(OpenCV_LIB_COMPONENTS_)
++foreach(CVLib ${OpenCV_LIB_COMPONENTS})
+ 
+-  #need better solution....
+-  if(libpath MATCHES "3rdparty")
+-    set(installDir "share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH}")
++  get_target_property(libloc ${CVLib} LOCATION_${CMAKE_BUILD_TYPE})
++  if(libloc MATCHES "3rdparty")
++    set(libpath "\${exec_prefix}/share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH}")
+   else()
+-    set(installDir "${OPENCV_LIB_INSTALL_PATH}")
++    set(libpath "\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}")
+   endif()
++  list(APPEND OpenCV_LIB_COMPONENTS_ "-L${libpath}")
++
++  get_filename_component(libname ${CVLib} NAME_WE)
++  string(REGEX REPLACE "^lib" "" libname "${libname}")
++  list(APPEND OpenCV_LIB_COMPONENTS_ "-l${libname}")
+ 
+-  set(OpenCV_LIB_COMPONENTS_ "${OpenCV_LIB_COMPONENTS_} \${exec_prefix}/${installDir}/${libname}")
+ endforeach()
+ 
+ # add extra dependencies required for OpenCV
+-set(OpenCV_LIB_COMPONENTS ${OpenCV_LIB_COMPONENTS_})
+ if(OpenCV_EXTRA_COMPONENTS)
+   foreach(extra_component ${OpenCV_EXTRA_COMPONENTS})
+ 
+-    if(extra_component MATCHES "^-[lL]" OR extra_component MATCHES "[\\/]")
+-      set(maybe_l_prefix "")
++    if(extra_component MATCHES "^-[lL]")
++      set(libprefix "")
++      set(libname "${extra_component}")
++    elseif(extra_component MATCHES "[\\/]")
++      get_filename_component(libdir "${extra_component}" PATH)
++      list(APPEND OpenCV_LIB_COMPONENTS_ "-L${libdir}")
++      get_filename_component(libname "${extra_component}" NAME_WE)
++      string(REGEX REPLACE "^lib" "" libname "${libname}")
++      set(libprefix "-l")
+     else()
+-      set(maybe_l_prefix "-l")
++      set(libprefix "-l")
++      set(libname "${extra_component}")
+     endif()
+-
+-    set(OpenCV_LIB_COMPONENTS "${OpenCV_LIB_COMPONENTS} ${maybe_l_prefix}${extra_component}")
++    list(APPEND OpenCV_LIB_COMPONENTS_ "${libprefix}${libname}")
+ 
+   endforeach()
+ endif()
+ 
++list(REMOVE_DUPLICATES OpenCV_LIB_COMPONENTS_)
++string(REPLACE ";" " " OpenCV_LIB_COMPONENTS "${OpenCV_LIB_COMPONENTS_}")
++
+ #generate the .pc file
++set(prefix      "${CMAKE_INSTALL_PREFIX}")
++set(exec_prefix "\${prefix}")
++set(libdir      "\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}")
++set(includedir  "\${prefix}/${OPENCV_INCLUDE_INSTALL_PATH}")
++
+ if(INSTALL_TO_MANGLED_PATHS)
+   set(OPENCV_PC_FILE_NAME "opencv-${OPENCV_VERSION}.pc")
+ else()
+-- 
+2.4.1
+
diff --git a/package/opencv/Config.in b/package/opencv/Config.in
new file mode 100644
index 0000000..aca5174
--- /dev/null
+++ b/package/opencv/Config.in
@@ -0,0 +1,223 @@
+menuconfig BR2_PACKAGE_OPENCV
+	bool "opencv-2.4"
+	select BR2_PACKAGE_ZLIB
+	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_USE_WCHAR
+	help
+	  OpenCV (Open Source Computer Vision) is a library of programming
+	  functions for real time computer vision.
+
+	  http://opencv.org/
+
+if BR2_PACKAGE_OPENCV
+
+comment "OpenCV modules"
+
+config BR2_PACKAGE_OPENCV_LIB_CALIB3D
+	bool "calib3d"
+	default y
+	help
+	  Include opencv_calib3d module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_CONTRIB
+	bool "contrib"
+	default y
+	help
+	  Include opencv_contrib module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_FEATURES2D
+	bool "features2d"
+	default y
+	help
+	  Include opencv_features2d module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_FLANN
+	bool "flann"
+	default y
+	help
+	  Include opencv_flann module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_GPU
+	bool "gpu"
+	help
+	  Include opencv_gpu module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_HIGHGUI
+	bool "highgui"
+	default y
+	help
+	  Include opencv_highgui module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	bool "imgproc"
+	default y
+	help
+	  Include opencv_imgproc module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_LEGACY
+	bool "legacy"
+	default y
+	help
+	  Include opencv_legacy module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_ML
+	bool "ml (machine learning)"
+	default y
+	help
+	  Include opencv_ml module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_NONFREE
+	bool "nonfree"
+	help
+	  Include opencv_nonfree module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_OBJDETECT
+	bool "objdetect"
+	default y
+	help
+	  Include opencv_objdetect module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_PHOTO
+	bool "photo"
+	default y
+	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_STITCHING
+	bool "stitching"
+	default y
+	help
+	  Include opencv_stitching module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_SUPERRES
+	bool "superres"
+	default y
+	help
+	  Include opencv_superres "super resolution" - module into the OpenCV
+	  build.
+
+config BR2_PACKAGE_OPENCV_LIB_TS
+	bool "ts (touchscreen)"
+	select BR2_PACKAGE_OPENCV_LIB_HIGHGUI
+	default y
+	help
+	  Include opencv_ts module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_VIDEO
+	bool "video"
+	default y
+	help
+	  Include opencv_video module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB
+	bool "videostab"
+	default y
+	help
+	  Include opencv_videostab module into the OpenCV build.
+
+comment "Test sets"
+config BR2_PACKAGE_OPENCV_BUILD_TESTS
+	bool "build tests"
+
+config BR2_PACKAGE_OPENCV_BUILD_PERF_TESTS
+	bool "build performance tests"
+
+comment "3rd party support"
+
+config BR2_PACKAGE_OPENCV_WITH_FFMPEG
+	bool "ffmpeg support"
+	select BR2_PACKAGE_BZIP2
+	select BR2_PACKAGE_FFMPEG
+	select BR2_PACKAGE_FFMPEG_SWSCALE
+	help
+	  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
+	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_WITH_GTK
+	bool "gtk support"
+	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_JASPER
+	bool "jpeg2000 support"
+	select BR2_PACKAGE_JASPER
+	help
+	  Enable jpeg2000 support.
+
+	  Note: this does not use the libjasper bundled with opencv,
+	  but uses the libjasper package installed system-wide by
+	  Buildroot.
+
+config BR2_PACKAGE_OPENCV_WITH_JPEG
+	bool "jpeg support"
+	select BR2_PACKAGE_JPEG
+	help
+	  Use shared libjpeg from the target system.
+
+config BR2_PACKAGE_OPENCV_WITH_PNG
+	bool "png support"
+	select BR2_PACKAGE_LIBPNG
+	help
+	  Use shared libpng from the target system.
+
+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
+	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_WITH_TIFF
+	bool "tiff support"
+	select BR2_PACKAGE_TIFF
+	help
+	  Use shared libtiff from the target system.
+
+config BR2_PACKAGE_OPENCV_WITH_V4L
+	bool "v4l support"
+	help
+	  Enable Video 4 Linux support.
+
+	  If the package libv4l is enabled, its support is automatically enabled.
+
+comment "Install options"
+
+config BR2_PACKAGE_OPENCV_INSTALL_DATA
+	bool "install extra data"
+	help
+	  Install various data that is used by cv libraries and/or demo
+	  applications, specifically for haarcascades and lbpcascades
+	  features.
+
+	  For further information: see OpenCV documentation.
+
+endif # BR2_PACKAGE_OPENCV
+
+comment "opencv needs a toolchain w/ C++, NPTL, wchar"
+	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS_NPTL)
diff --git a/package/opencv/opencv.mk b/package/opencv/opencv.mk
new file mode 100644
index 0000000..ee11220
--- /dev/null
+++ b/package/opencv/opencv.mk
@@ -0,0 +1,250 @@
+################################################################################
+#
+# opencv
+#
+################################################################################
+
+OPENCV_VERSION = 2.4.10
+OPENCV_SITE = $(call github,itseez,opencv,$(OPENCV_VERSION))
+OPENCV_INSTALL_STAGING = YES
+OPENCV_LICENSE = BSD-3c
+OPENCV_LICENSE_FILES = LICENSE
+
+# OpenCV component options
+OPENCV_CONF_OPTS += \
+	-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
+
+# OpenCV build options
+OPENCV_CONF_OPTS += \
+	-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 \
+	-DOPENCV_CAN_BREAK_BINARY_COMPATIBILITY=ON
+
+# OpenCV link options
+OPENCV_CONF_OPTS += \
+	-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF \
+	-DCMAKE_SKIP_RPATH=OFF \
+	-DCMAKE_USE_RELATIVE_PATHS=OFF
+
+# OpenCV packaging options:
+OPENCV_CONF_OPTS += \
+	-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_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_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_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_videostab=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB),ON,OFF) \
+	-DBUILD_opencv_world=OFF
+
+# Hardware support options.
+#
+# * 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_AVX=$(if $(BR2_X86_CPU_HAS_AVX),ON,OFF) \
+	-DENABLE_AVX2=$(if $(BR2_X86_CPU_HAS_AVX2),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_SSSE3=$(if $(BR2_X86_CPU_HAS_SSSE3),ON,OFF)
+
+# Cuda stuff
+OPENCV_CONF_OPTS += \
+	-DWITH_CUBLAS=OFF \
+	-DWITH_CUDA=OFF \
+	-DWITH_CUFFT=OFF
+
+# NVidia stuff
+OPENCV_CONF_OPTS += -DWITH_NVCUVID=OFF
+
+# AMD stuff
+OPENCV_CONF_OPTS += \
+	-DWITH_OPENCLAMDBLAS=OFF \
+	-DWITH_OPENCLAMDFFT=OFF
+
+# Intel stuff
+OPENCV_CONF_OPTS += \
+	-DWITH_INTELPERC=OFF \
+	-DWITH_IPP=OFF \
+	-DWITH_TBB=OFF
+
+# Smartek stuff
+OPENCV_CONF_OPTS += -DWITH_GIGEAPI=OFF
+
+# Prosilica stuff
+OPENCV_CONF_OPTS += -DWITH_PVAPI=OFF
+
+# Ximea stuff
+OPENCV_CONF_OPTS += -DWITH_XIMEA=OFF
+
+# Non-Linux support (Android options) must remain OFF:
+OPENCV_CONF_OPTS += \
+	-DBUILD_ANDROID_CAMERA_WRAPPER=OFF \
+	-DBUILD_ANDROID_EXAMPLES=OFF \
+	-DBUILD_FAT_JAVA_LIB=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 += \
+	-DWITH_AVFOUNDATION=OFF \
+	-DWITH_CARBON=OFF \
+	-DWITH_QUICKTIME=OFF
+
+# Non-Linux support (Windows options) must remain OFF:
+OPENCV_CONF_OPTS += \
+	-DWITH_CSTRIPES=OFF \
+	-DWITH_DSHOW=OFF \
+	-DWITH_MSMF=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 \
+	-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_IMAGEIO=OFF \
+	-DWITH_OPENCL=OFF \
+	-DWITH_OPENEXR=OFF \
+	-DWITH_OPENGL=OFF \
+	-DWITH_OPENMP=OFF \
+	-DWITH_OPENNI=OFF \
+	-DWITH_UNICAP=OFF \
+	-DWITH_XINE=OFF
+
+OPENCV_DEPENDENCIES += zlib
+
+ifeq ($(BR2_PACKAGE_OPENCV_WITH_FFMPEG),y)
+OPENCV_CONF_OPTS += -DWITH_FFMPEG=ON
+OPENCV_DEPENDENCIES += ffmpeg bzip2
+else
+OPENCV_CONF_OPTS += -DWITH_FFMPEG=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER),y)
+OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON
+OPENCV_DEPENDENCIES += gstreamer gst-plugins-base
+else
+OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_OPENCV_WITH_GTK),y)
+OPENCV_CONF_OPTS += -DWITH_GTK=ON
+OPENCV_DEPENDENCIES += libgtk2
+else
+OPENCV_CONF_OPTS += -DWITH_GTK=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_OPENCV_WITH_JASPER),y)
+OPENCV_CONF_OPTS += -DWITH_JASPER=ON
+OPENCV_DEPENDENCIES += jasper
+else
+OPENCV_CONF_OPTS += -DWITH_JASPER=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_OPENCV_WITH_JPEG),y)
+OPENCV_CONF_OPTS += -DWITH_JPEG=ON
+OPENCV_DEPENDENCIES += jpeg
+else
+OPENCV_CONF_OPTS += -DWITH_JPEG=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_OPENCV_WITH_PNG),y)
+OPENCV_CONF_OPTS += -DWITH_PNG=ON
+OPENCV_DEPENDENCIES += libpng
+else
+OPENCV_CONF_OPTS += -DWITH_PNG=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_OPENCV_WITH_QT),y)
+OPENCV_CONF_OPTS += -DWITH_QT=4
+OPENCV_DEPENDENCIES += qt
+else
+OPENCV_CONF_OPTS += -DWITH_QT=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_OPENCV_WITH_TIFF),y)
+OPENCV_CONF_OPTS += -DWITH_TIFF=ON
+OPENCV_DEPENDENCIES += tiff
+else
+OPENCV_CONF_OPTS += -DWITH_TIFF=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_OPENCV_WITH_V4L),y)
+OPENCV_CONF_OPTS += \
+	-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
+endif
+
+# Installation hooks:
+define OPENCV_CLEAN_INSTALL_DOC
+	$(RM) -fr $(TARGET_DIR)/usr/share/OpenCV/doc
+endef
+OPENCV_POST_INSTALL_TARGET_HOOKS += OPENCV_CLEAN_INSTALL_DOC
+
+define OPENCV_CLEAN_INSTALL_CMAKE
+	$(RM) -f $(TARGET_DIR)/usr/share/OpenCV/OpenCVConfig*.cmake
+endef
+OPENCV_POST_INSTALL_TARGET_HOOKS += OPENCV_CLEAN_INSTALL_CMAKE
+
+ifneq ($(BR2_PACKAGE_OPENCV_INSTALL_DATA),y)
+define OPENCV_CLEAN_INSTALL_DATA
+	$(RM) -fr $(TARGET_DIR)/usr/share/OpenCV/haarcascades \
+		$(TARGET_DIR)/usr/share/OpenCV/lbpcascades
+endef
+OPENCV_POST_INSTALL_TARGET_HOOKS += OPENCV_CLEAN_INSTALL_DATA
+endif
+
+$(eval $(cmake-package))
diff --git a/package/opencv3/Config.in b/package/opencv3/Config.in
index c63b474..83737d8 100644
--- a/package/opencv3/Config.in
+++ b/package/opencv3/Config.in
@@ -7,6 +7,7 @@ menuconfig BR2_PACKAGE_OPENCV3
 	depends on !BR2_STATIC_LIBS # include dlfcn.h
 	# Causes some toolchain failures on Xtensa
 	depends on !BR2_xtensa
+	depends on !BR2_PACKAGE_OPENCV
 	help
 	  OpenCV (Open Source Computer Vision) is a library of programming
 	  functions for real time computer vision.
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 3/4 v2] Revert "package/gstreamer1/gst1-plugins-bad: disable opencv plugin with opencv-3"
  2015-08-09 16:14 [Buildroot] [PATCH 0/4 v2] OpenCV: re-introduce opencv-2.4 package (branch yem/sma/opencv3-opencv24) Yann E. MORIN
  2015-08-09 16:14 ` [Buildroot] [PATCH 1/4 v2] package: rename opencv -> opencv3 Yann E. MORIN
  2015-08-09 16:14 ` [Buildroot] [PATCH 2/4 v2] package/opencv: re-introduce opencv for opencv-2.4 Yann E. MORIN
@ 2015-08-09 16:14 ` Yann E. MORIN
  2015-08-09 18:36   ` Samuel Martin
  2015-08-09 16:14 ` [Buildroot] [PATCH 4/4 v2] package/vlc: update opencv support Yann E. MORIN
  3 siblings, 1 reply; 7+ messages in thread
From: Yann E. MORIN @ 2015-08-09 16:14 UTC (permalink / raw)
  To: buildroot

From: Samuel Martin <s.martin49@gmail.com>

This reverts commit 5e238a87eacf2a0c62736c4123961651afb1ba87.

Also update the dependencies.

Cc: Jonathan Ben Avraham <yba@tkos.co.il>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
[yann.morin.1998 at free.fr: fix dependencies at the same time]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/gstreamer1/gst1-plugins-bad/Config.in | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/package/gstreamer1/gst1-plugins-bad/Config.in b/package/gstreamer1/gst1-plugins-bad/Config.in
index bc99527..494a282 100644
--- a/package/gstreamer1/gst1-plugins-bad/Config.in
+++ b/package/gstreamer1/gst1-plugins-bad/Config.in
@@ -557,9 +557,22 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NEON
 
 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
+	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # opencv
+	depends on BR2_INSTALL_LIBSTDCPP # opencv
+	depends on BR2_USE_WCHAR # opencv
+	select BR2_PACKAGE_OPENCV
+	# Remove the following opencv modules when gstreamer fixes the
+	# problem of including the old "cv.h" header
+	# bug: https://bugzilla.gnome.org/show_bug.cgi?id=725163
+	select BR2_PACKAGE_OPENCV_LIB_CALIB3D
+	select BR2_PACKAGE_OPENCV_LIB_CONTRIB
+	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
+	select BR2_PACKAGE_OPENCV_LIB_FLANN
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV_LIB_LEGACY
+	select BR2_PACKAGE_OPENCV_LIB_ML
+	select BR2_PACKAGE_OPENCV_LIB_OBJDETECT
+	select BR2_PACKAGE_OPENCV_LIB_VIDEO
 	help
 	  GStreamer OpenCV Plugins
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 4/4 v2] package/vlc: update opencv support
  2015-08-09 16:14 [Buildroot] [PATCH 0/4 v2] OpenCV: re-introduce opencv-2.4 package (branch yem/sma/opencv3-opencv24) Yann E. MORIN
                   ` (2 preceding siblings ...)
  2015-08-09 16:14 ` [Buildroot] [PATCH 3/4 v2] Revert "package/gstreamer1/gst1-plugins-bad: disable opencv plugin with opencv-3" Yann E. MORIN
@ 2015-08-09 16:14 ` Yann E. MORIN
  3 siblings, 0 replies; 7+ messages in thread
From: Yann E. MORIN @ 2015-08-09 16:14 UTC (permalink / raw)
  To: buildroot

From: Samuel Martin <s.martin49@gmail.com>

vlc supports both opencv-2.4 and opencv-3, so adjust the vlc package to
reflect this.

Cc: Jonathan Ben Avraham <yba@tkos.co.il>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
---
 package/vlc/Config.in | 14 ++++++++++++--
 package/vlc/vlc.mk    |  6 +++++-
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/package/vlc/Config.in b/package/vlc/Config.in
index 6679cc9..71e4f34 100644
--- a/package/vlc/Config.in
+++ b/package/vlc/Config.in
@@ -11,8 +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_OPENCV3_LIB_IMGPROC if BR2_PACKAGE_OPENCV3
-	select BR2_PACKAGE_OPENCV3_LIB_OBJDETECT if BR2_PACKAGE_OPENCV3
+	select BR2_PACKAGE_VLC_OPENCV_BACKEND if BR2_PACKAGE_OPENCV
+	select BR2_PACKAGE_VLC_OPENCV3_BACKEND if BR2_PACKAGE_OPENCV3
 	help
 	  VLC is a free and open source cross-platform multimedia player
 	  and framework that plays most multimedia files as well as DVD,
@@ -20,6 +20,16 @@ config BR2_PACKAGE_VLC
 
 	  http://www.videolan.org/vlc/
 
+config BR2_PACKAGE_VLC_OPENCV_BACKEND
+	bool
+	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV_LIB_OBJDETECT
+
+config BR2_PACKAGE_VLC_OPENCV3_BACKEND
+	bool
+	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
+	select BR2_PACKAGE_OPENCV3_LIB_OBJDETECT
+
 comment "vlc needs a uclibc snapshot, uclibc-ng or (e)glibc toolchain w/ C++, wchar, threads, headers >= 3.7"
 	depends on !(BR2_UCLIBC_VERSION_SNAPSHOT || BR2_UCLIBC_VERSION_NG || BR2_TOOLCHAIN_USES_GLIBC) \
 		|| !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR \
diff --git a/package/vlc/vlc.mk b/package/vlc/vlc.mk
index fa74a7b..6f7fd58 100644
--- a/package/vlc/vlc.mk
+++ b/package/vlc/vlc.mk
@@ -153,9 +153,13 @@ else
 VLC_CONF_OPTS += --disable-gles2
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV3),y)
+ifeq ($(BR2_PACKAGE_OPENCV)$(BR2_PACKAGE_OPENCV3),y)
 VLC_CONF_OPTS += --enable-opencv
+ifeq ($(BR2_PACKAGE_OPENCV),y)
+VLC_DEPENDENCIES += opencv
+else
 VLC_DEPENDENCIES += opencv3
+endif
 else
 VLC_CONF_OPTS += --disable-opencv
 endif
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 3/4 v2] Revert "package/gstreamer1/gst1-plugins-bad: disable opencv plugin with opencv-3"
  2015-08-09 16:14 ` [Buildroot] [PATCH 3/4 v2] Revert "package/gstreamer1/gst1-plugins-bad: disable opencv plugin with opencv-3" Yann E. MORIN
@ 2015-08-09 18:36   ` Samuel Martin
  2015-08-09 18:52     ` Yann E. MORIN
  0 siblings, 1 reply; 7+ messages in thread
From: Samuel Martin @ 2015-08-09 18:36 UTC (permalink / raw)
  To: buildroot

Yann,

On Sun, Aug 9, 2015 at 6:14 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> From: Samuel Martin <s.martin49@gmail.com>
>
> This reverts commit 5e238a87eacf2a0c62736c4123961651afb1ba87.
>
> Also update the dependencies.
>
> Cc: Jonathan Ben Avraham <yba@tkos.co.il>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Signed-off-by: Samuel Martin <s.martin49@gmail.com>
> [yann.morin.1998 at free.fr: fix dependencies at the same time]
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> ---
>  package/gstreamer1/gst1-plugins-bad/Config.in | 19 ++++++++++++++++---
>  1 file changed, 16 insertions(+), 3 deletions(-)
>
> diff --git a/package/gstreamer1/gst1-plugins-bad/Config.in b/package/gstreamer1/gst1-plugins-bad/Config.in
> index bc99527..494a282 100644
> --- a/package/gstreamer1/gst1-plugins-bad/Config.in
> +++ b/package/gstreamer1/gst1-plugins-bad/Config.in
> @@ -557,9 +557,22 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NEON
>
>  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
> +       depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # opencv
> +       depends on BR2_INSTALL_LIBSTDCPP # opencv
> +       depends on BR2_USE_WCHAR # opencv
> +       select BR2_PACKAGE_OPENCV
> +       # Remove the following opencv modules when gstreamer fixes the
> +       # problem of including the old "cv.h" header
> +       # bug: https://bugzilla.gnome.org/show_bug.cgi?id=725163
> +       select BR2_PACKAGE_OPENCV_LIB_CALIB3D
> +       select BR2_PACKAGE_OPENCV_LIB_CONTRIB
> +       select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
> +       select BR2_PACKAGE_OPENCV_LIB_FLANN
> +       select BR2_PACKAGE_OPENCV_LIB_IMGPROC
> +       select BR2_PACKAGE_OPENCV_LIB_LEGACY
> +       select BR2_PACKAGE_OPENCV_LIB_ML
> +       select BR2_PACKAGE_OPENCV_LIB_OBJDETECT
> +       select BR2_PACKAGE_OPENCV_LIB_VIDEO
>         help
>           GStreamer OpenCV Plugins

How do you ensure that gst1-plugins-bad cannot select opencv when
opencv3 is already selected?

Regards,

-- 
Samuel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 3/4 v2] Revert "package/gstreamer1/gst1-plugins-bad: disable opencv plugin with opencv-3"
  2015-08-09 18:36   ` Samuel Martin
@ 2015-08-09 18:52     ` Yann E. MORIN
  0 siblings, 0 replies; 7+ messages in thread
From: Yann E. MORIN @ 2015-08-09 18:52 UTC (permalink / raw)
  To: buildroot

Samuel, All,

On 2015-08-09 20:36 +0200, Samuel Martin spake thusly:
> On Sun, Aug 9, 2015 at 6:14 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> > From: Samuel Martin <s.martin49@gmail.com>
> >
> > This reverts commit 5e238a87eacf2a0c62736c4123961651afb1ba87.
> >
> > Also update the dependencies.
> >
> > Cc: Jonathan Ben Avraham <yba@tkos.co.il>
> > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> > Signed-off-by: Samuel Martin <s.martin49@gmail.com>
> > [yann.morin.1998 at free.fr: fix dependencies at the same time]
> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> > ---
> >  package/gstreamer1/gst1-plugins-bad/Config.in | 19 ++++++++++++++++---
> >  1 file changed, 16 insertions(+), 3 deletions(-)
> >
> > diff --git a/package/gstreamer1/gst1-plugins-bad/Config.in b/package/gstreamer1/gst1-plugins-bad/Config.in
> > index bc99527..494a282 100644
> > --- a/package/gstreamer1/gst1-plugins-bad/Config.in
> > +++ b/package/gstreamer1/gst1-plugins-bad/Config.in
> > @@ -557,9 +557,22 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NEON
> >
> >  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
> > +       depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # opencv
> > +       depends on BR2_INSTALL_LIBSTDCPP # opencv
> > +       depends on BR2_USE_WCHAR # opencv
> > +       select BR2_PACKAGE_OPENCV
> > +       # Remove the following opencv modules when gstreamer fixes the
> > +       # problem of including the old "cv.h" header
> > +       # bug: https://bugzilla.gnome.org/show_bug.cgi?id=725163
> > +       select BR2_PACKAGE_OPENCV_LIB_CALIB3D
> > +       select BR2_PACKAGE_OPENCV_LIB_CONTRIB
> > +       select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
> > +       select BR2_PACKAGE_OPENCV_LIB_FLANN
> > +       select BR2_PACKAGE_OPENCV_LIB_IMGPROC
> > +       select BR2_PACKAGE_OPENCV_LIB_LEGACY
> > +       select BR2_PACKAGE_OPENCV_LIB_ML
> > +       select BR2_PACKAGE_OPENCV_LIB_OBJDETECT
> > +       select BR2_PACKAGE_OPENCV_LIB_VIDEO
> >         help
> >           GStreamer OpenCV Plugins
> 
> How do you ensure that gst1-plugins-bad cannot select opencv when
> opencv3 is already selected?

Because OPENCV3 depends on !OPENCV.

So, if a user selects BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENCV, OpenCV
gets selected, and OpenCV 3 is not available.

If you do otherwise, like;

    config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENCV
        bool "opencv"
        depends on !BR2_PACKAGE_OPENCV3
        select BR2_PACKAGE_OPENCV

you get circular dependencies.

The only alternative is to depend on BR2_PACKAGE_OPENCV rather than
select it.

But now I see we anyway already have a circular dependency. sigh... :-(

Lemme fix that...

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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-08-09 18:52 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-09 16:14 [Buildroot] [PATCH 0/4 v2] OpenCV: re-introduce opencv-2.4 package (branch yem/sma/opencv3-opencv24) Yann E. MORIN
2015-08-09 16:14 ` [Buildroot] [PATCH 1/4 v2] package: rename opencv -> opencv3 Yann E. MORIN
2015-08-09 16:14 ` [Buildroot] [PATCH 2/4 v2] package/opencv: re-introduce opencv for opencv-2.4 Yann E. MORIN
2015-08-09 16:14 ` [Buildroot] [PATCH 3/4 v2] Revert "package/gstreamer1/gst1-plugins-bad: disable opencv plugin with opencv-3" Yann E. MORIN
2015-08-09 18:36   ` Samuel Martin
2015-08-09 18:52     ` Yann E. MORIN
2015-08-09 16:14 ` [Buildroot] [PATCH 4/4 v2] package/vlc: update opencv support Yann E. MORIN

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox