[Buildroot] [PATCH v5] package: add opencv

Samuel Martin s.martin49 at gmail.com
Sun Oct 23 18:58:45 UTC 2011


OpenCV is a free, open-source, cross-platform computer vision library

Changelog:
 v1: initial submission
 v2: changes according to Thomas Petazonni's review:
     - remove obvious unneeded options
     - typo and style fixes
     - do not use 3RDPARTY_LIBS
 v3: changes according to Thomas Petazonni's review:
     - typo and style fixes
     - remove host package (not needed)
 v4: update CMAKETARGET call to follow the infra.
 v5: - add post install hooks (following Mike Davies' remarks):
       - do not install doc
       - do not install OpenCVConfig.cmake in the target
     - optionally install data in the target
     - remove the 'Build examples' option (only install source files)
     - disable precompiled header usage (automacally disabled when
       compiler size optimization is set)

Signed-off-by: Samuel Martin <s.martin49 at gmail.com>
---
 package/Config.in        |    1 +
 package/opencv/Config.in |   77 ++++++++++++++++++++++++++++++++++++++++++++
 package/opencv/opencv.mk |   80 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 158 insertions(+), 0 deletions(-)
 create mode 100644 package/opencv/Config.in
 create mode 100644 package/opencv/opencv.mk

diff --git a/package/Config.in b/package/Config.in
index 3b2769d..c6ca350 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -297,6 +297,7 @@ source "package/libraw/Config.in"
 source "package/librsvg/Config.in"
 source "package/libsvgtiny/Config.in"
 source "package/libungif/Config.in"
+source "package/opencv/Config.in"
 source "package/pango/Config.in"
 source "package/pixman/Config.in"
 source "package/tiff/Config.in"
diff --git a/package/opencv/Config.in b/package/opencv/Config.in
new file mode 100644
index 0000000..41cb6c8
--- /dev/null
+++ b/package/opencv/Config.in
@@ -0,0 +1,77 @@
+menuconfig BR2_PACKAGE_OPENCV
+	bool "opencv"
+	select BR2_PACKAGE_ZLIB
+	help
+	  OpenCV (Open Source Computer Vision) is a library of programming
+	  functions for real time computer vision.
+
+	  http://opencv.willowgarage.com/wiki/
+
+if BR2_PACKAGE_OPENCV
+
+comment "Built targets"
+
+config BR2_PACKAGE_OPENCV_BUILD_NEW_PYTHON_SUPPORT
+	bool "Python support"
+	select BR2_PACKAGE_PYTHON
+
+config BR2_PACKAGE_OPENCV_BUILD_TESTS
+	bool "Tests"
+
+comment "Install options"
+
+config BR2_PACKAGE_OPENCV_INSTALL_DATA
+	bool "Install 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.
+
+comment "Build options"
+
+config BR2_PACKAGE_OPENCV_WITH_FFMPEG
+	bool "FFMPEG support"
+	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"
+	select BR2_PACKAGE_GSTREAMER
+	select BR2_PACKAGE_GST_PLUGINS_BASE
+	select BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_APP
+
+config BR2_PACKAGE_OPENCV_WITH_GTK
+	bool "GTK support"
+	depends on BR2_PACKAGE_LIBGTK2 && BR2_PACKAGE_LIBGLIB2
+
+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"
+	select BR2_PACKAGE_QT
+
+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 "Video 4 Linux support"
+	select BR2_PACKAGE_LIBV4L
+	default y
+
+endif
diff --git a/package/opencv/opencv.mk b/package/opencv/opencv.mk
new file mode 100644
index 0000000..48add1e
--- /dev/null
+++ b/package/opencv/opencv.mk
@@ -0,0 +1,80 @@
+#############################################################
+#
+# OpenCV (Open Source Computer Vision)
+#
+#############################################################
+OPENCV_SERIES  = 2.3
+OPENCV_VERSION = $(OPENCV_SERIES).0
+OPENCV_SITE    = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/project/opencvlibrary/opencv-unix/$(OPENCV_SERIES)
+OPENCV_SOURCE  = OpenCV-$(OPENCV_VERSION).tar.bz2
+OPENCV_INSTALL_STAGING = YES
+
+# Build type
+OPENCV_CONF_OPT += -DCMAKE_BUILD_TYPE=$(if $(BR2_ENABLE_DEBUG),Debug,Release)
+# Built targets
+OPENCV_CONF_OPT += -DBUILD_DOCS=OFF
+OPENCV_CONF_OPT += -DBUILD_EXAMPLES=OFF
+OPENCV_CONF_OPT += -DBUILD_NEW_PYTHON_SUPPORT=$(if $(BR2_PACKAGE_OPENCV_BUILD_NEW_PYTHON_SUPPORT),ON,OFF)
+OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_OPENCV_BUILD_NEW_PYTHON_SUPPORT),python host-python,)
+OPENCV_CONF_OPT += -DBUILD_PACKAGE=OFF
+OPENCV_CONF_OPT += -DBUILD_TESTS=$(if $(BR2_PACKAGE_OPENCV_BUILD_TESTS),ON,OFF)
+# Build options
+OPENCV_CONF_OPT += -DBUILD_SHARED_LIBS=$(if $(BR2_PREFER_STATIC_LIB),OFF,ON)
+OPENCV_CONF_OPT += -DOPENCV_BUILD_3RDPARTY_LIBS=OFF
+OPENCV_CONF_OPT += -DENABLE_PROFILING=OFF
+OPENCV_CONF_OPT += -DCMAKE_SKIP_RPATH=OFF
+OPENCV_CONF_OPT += -DUSE_FAST_MATH=ON
+OPENCV_CONF_OPT += -DUSE_OMIT_FRAME_POINTER=ON
+OPENCV_CONF_OPT += -DUSE_PRECOMPILED_HEADERS=OFF
+OPENCV_CONF_OPT += -DWITH_1394=OFF
+OPENCV_CONF_OPT += -DWITH_CUDA=OFF
+OPENCV_CONF_OPT += -DWITH_EIGEN=OFF
+OPENCV_CONF_OPT += -DWITH_FFMPEG=$(if $(BR2_PACKAGE_OPENCV_WITH_FFMPEG),ON,OFF)
+OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_OPENCV_WITH_FFMPEG),ffmpeg,)
+OPENCV_CONF_OPT += -DWITH_GSTREAMER=$(if $(BR2_PACKAGE_OPENCV_WITH_GSTREAMER),ON,OFF)
+OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_OPENCV_WITH_GSTREAMER),gstreamer gst-plugins-base,)
+OPENCV_CONF_OPT += -DWITH_GTK=$(if $(BR2_PACKAGE_OPENCV_WITH_GTK),ON,OFF)
+OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_OPENCV_WITH_GTK),libgtk2 libglib2,)
+OPENCV_CONF_OPT += -DWITH_IPP=OFF
+OPENCV_CONF_OPT += -DWITH_JASPER=OFF
+OPENCV_CONF_OPT += -DWITH_JPEG=$(if $(BR2_PACKAGE_OPENCV_WITH_JPEG),ON,OFF)
+OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_OPENCV_WITH_JPEG),jpeg,)
+OPENCV_CONF_OPT += -DWITH_OPENEXR=OFF
+OPENCV_CONF_OPT += -DWITH_OPENNI=OFF
+OPENCV_CONF_OPT += -DWITH_PNG=$(if $(BR2_PACKAGE_OPENCV_WITH_PNG),ON,OFF)
+OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_OPENCV_WITH_PNG),libpng,)
+OPENCV_CONF_OPT += -DWITH_PVAPI=OFF
+OPENCV_CONF_OPT += -DWITH_QT=$(if $(BR2_PACKAGE_OPENCV_WITH_QT),ON,OFF)
+OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_OPENCV_WITH_QT),qt,)
+OPENCV_CONF_OPT += -DWITH_QT_OPENGL=OFF
+OPENCV_CONF_OPT += -DWITH_TBB=OFF
+OPENCV_CONF_OPT += -DWITH_TIFF=$(if $(BR2_PACKAGE_OPENCV_WITH_TIFF),ON,OFF)
+OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_OPENCV_WITH_TIFF),tiff,)
+OPENCV_CONF_OPT += -DWITH_UNICAP=OFF
+OPENCV_CONF_OPT += -DWITH_V4L=$(if $(BR2_PACKAGE_OPENCV_WITH_V4L),ON,OFF)
+OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_OPENCV_WITH_V4L),libv4l,)
+OPENCV_CONF_OPT += -DWITH_XINE=OFF
+# Install options
+OPENCV_CONF_OPT += -DINSTALL_C_EXAMPLES=OFF
+OPENCV_CONF_OPT += -DINSTALL_PYTHON_EXAMPLES=OFF
+
+define OPENCV_CLEAN_INSTALL_DOC
+	$(RM) -fr $(TARGET_DIR)/usr/share/opencv/doc
+endef
+
+define OPENCV_CLEAN_INSTALL_CMAKE
+	$(RM) -fr $(TARGET_DIR)/usr/share/opencv/*.cmake
+endef
+
+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_DOC OPENCV_CLEAN_INSTALL_CMAKE
+OPENCV_POST_INSTALL_TARGET_HOOKS += $(if $(BR2_PACKAGE_OPENCV_INSTALL_DATA),,OPENCV_CLEAN_INSTALL_DATA)
+
+OPENCV_POST_INSTALL_STAGING_HOOKS += OPENCV_CLEAN_INSTALL_DOC
+OPENCV_POST_INSTALL_STAGING_HOOKS += $(if $(BR2_PACKAGE_OPENCV_INSTALL_DATA),,OPENCV_CLEAN_INSTALL_DATA)
+
+$(eval $(call CMAKETARGETS))
-- 
1.7.0.4



More information about the buildroot mailing list