[oe] [meta-oe][PATCH v2] opencv: Add recipe for OpenCV v3.0.0-alpha.
Martin Jansa
martin.jansa at gmail.com
Fri Oct 10 10:35:07 UTC 2014
On Wed, Oct 08, 2014 at 04:48:58AM +0200, Martin Jansa wrote:
> On Tue, Oct 07, 2014 at 02:06:49PM +1100, Nick D'Ademo wrote:
> > Includes fix which disables IPP for ARM builds.
>
And also new QA issues:
opencv-2.99+3.0.0-alpha+gitAUTOINC+fb9a143429: libopencv-highgui rdepends on gtk+3, but it isn't a build dependency? [build-deps]
opencv-2.99+3.0.0-alpha+gitAUTOINC+fb9a143429: libopencv-videoio rdepends on gstreamer1.0, but it isn't a build dependency? [build-deps]
opencv-2.99+3.0.0-alpha+gitAUTOINC+fb9a143429: libopencv-videoio rdepends on libgstapp-1.0, but it isn't a build dependency? [build-deps]
opencv-2.99+3.0.0-alpha+gitAUTOINC+fb9a143429: libopencv-videoio rdepends on libgstpbutils-1.0, but it isn't a build dependency? [build-deps]
opencv-2.99+3.0.0-alpha+gitAUTOINC+fb9a143429: libopencv-videoio rdepends on libgstriff-1.0, but it isn't a build dependency? [build-deps]
> I'm sorry, but it's causing vlc build failure:
>
> | /home/jenkins/oe/world/shr-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/vlc/2.1.4-r0/vlc-2.1.4/modules/video_filter/opencv_example.cpp:132:59: error: 'cvReleaseHaarClassifierCascade' was not declared in this scope
> | cvReleaseHaarClassifierCascade( &p_sys->p_cascade );
> | ^
> | /home/jenkins/oe/world/shr-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/vlc/2.1.4-r0/vlc-2.1.4/modules/video_filter/opencv_example.cpp: In function 'picture_t* Filter(filter_t*, picture_t*)':
> | /home/jenkins/oe/world/shr-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/vlc/2.1.4-r0/vlc-2.1.4/modules/video_filter/opencv_example.cpp:175:45: error: 'CV_HAAR_DO_CANNY_PRUNING' was not declared in this scope
> | CV_HAAR_DO_CANNY_PRUNING,
> | ^
> | /home/jenkins/oe/world/shr-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/vlc/2.1.4-r0/vlc-2.1.4/modules/video_filter/opencv_example.cpp:176:60: error: 'cvHaarDetectObjects' was not declared in this scope
> | cvSize(20, 20) );
> | ^
> | /home/jenkins/oe/world/shr-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/vlc/2.1.4-r0/vlc-2.1.4/modules/video_filter/opencv_example.cpp:197:58: error: 'CV_RGB' was not declared in this scope
> | cvRectangle( p_img[0], pt1, pt2, CV_RGB(0,0,0), 3, 8, 0 );
> | ^
> | /home/jenkins/oe/world/shr-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/vlc/2.1.4-r0/vlc-2.1.4/modules/video_filter/opencv_example.cpp:197:69: error: 'cvRectangle' was not declared in this scope
> | cvRectangle( p_img[0], pt1, pt2, CV_RGB(0,0,0), 3, 8, 0 );
> | ^
> | /home/jenkins/oe/world/shr-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/vlc/2.1.4-r0/vlc-2.1.4/modules/video_filter/opencv_example.cpp:201:57: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
> | p_sys->event_info.p_region[i].p_description = "Face Detected";
> | ^
>
> Can you look into it as well (at least to disable opencv example while building vlc).
>
> Thanks
>
> > Signed-off-by: Nick D'Ademo <nickdademo at gmail.com>
> > ---
> > meta-oe/recipes-support/opencv/opencv_git.bb | 96 ++++++++++++++++++++++++++++
> > 1 file changed, 96 insertions(+)
> > create mode 100644 meta-oe/recipes-support/opencv/opencv_git.bb
> >
> > diff --git a/meta-oe/recipes-support/opencv/opencv_git.bb b/meta-oe/recipes-support/opencv/opencv_git.bb
> > new file mode 100644
> > index 0000000..bf6fd84
> > --- /dev/null
> > +++ b/meta-oe/recipes-support/opencv/opencv_git.bb
> > @@ -0,0 +1,96 @@
> > +DESCRIPTION = "Opencv : The Open Computer Vision Library"
> > +HOMEPAGE = "http://opencv.org/"
> > +SECTION = "libs"
> > +
> > +LICENSE = "BSD"
> > +LIC_FILES_CHKSUM = "file://include/opencv2/opencv.hpp;endline=41;md5=6d690d8488a6fca7a2c192932466bb14"
> > +
> > +ARM_INSTRUCTION_SET = "arm"
> > +
> > +DEPENDS = "python-numpy libtool swig swig-native python bzip2 zlib glib-2.0 gstreamer gst-plugins-base"
> > +
> > +# Commit hash for 3.0.0-alpha tag
> > +SRCREV = "fb9a143429f86603ff93e5bcb2d94b94780b7234"
> > +SRC_URI = "git://github.com/Itseez/opencv.git;branch=master \
> > + file://opencv-fix-pkgconfig-generation.patch \
> > +"
> > +
> > +PV = "2.99+3.0.0-alpha+git${SRCPV}"
> > +
> > +S = "${WORKDIR}/git"
> > +
> > +# Do an out-of-tree build
> > +OECMAKE_SOURCEPATH = "${S}"
> > +OECMAKE_BUILDPATH = "${WORKDIR}/build-${TARGET_ARCH}"
> > +
> > +EXTRA_OECMAKE = "-DPYTHON_NUMPY_INCLUDE_DIR:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include \
> > + -DBUILD_PYTHON_SUPPORT=ON \
> > + -DWITH_FFMPEG=ON \
> > + -DCMAKE_SKIP_RPATH=ON \
> > + ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \
> > + ${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
> > + ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
> > + ${@bb.utils.contains("TUNE_FEATURES", "arm", "-DWITH_IPP=OFF", "", d)} \
> > +"
> > +
> > +PACKAGECONFIG ??= "eigen gtk jpeg libav png tiff v4l jasper"
> > +PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen,"
> > +PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+,"
> > +PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg,"
> > +PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav,"
> > +PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,"
> > +PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff,"
> > +PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils,"
> > +PACKAGECONFIG[jasper] = "-DBUILD_JASPER=ON,-DBUILD_JASPER=OFF,jasper"
> > +PACKAGECONFIG[pvapi] = '-DWITH_PVAPI=ON -DPVAPI_LIBRARY="${STAGING_LIBDIR}/libPvAPI.a",-DWITH_PVAPI=OFF,pvapi'
> > +
> > +inherit distutils-base pkgconfig cmake
> > +
> > +export BUILD_SYS
> > +export HOST_SYS
> > +export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}"
> > +export PYTHON="${STAGING_BINDIR_NATIVE}/python"
> > +
> > +TARGET_CC_ARCH += "-I${S}/include "
> > +
> > +PACKAGES += "${PN}-apps python-opencv"
> > +
> > +python populate_packages_prepend () {
> > + cv_libdir = d.expand('${libdir}')
> > + do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True)
> > + do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
> > + do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
> > + do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True)
> > +
> > + pn = d.getVar('PN', 1)
> > + metapkg = pn + '-dev'
> > + d.setVar('ALLOW_EMPTY_' + metapkg, "1")
> > + blacklist = [ metapkg ]
> > + metapkg_rdepends = [ ]
> > + packages = d.getVar('PACKAGES', 1).split()
> > + for pkg in packages[1:]:
> > + if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'):
> > + metapkg_rdepends.append(pkg)
> > + d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends))
> > +}
> > +
> > +PACKAGES_DYNAMIC += "^libopencv-.*"
> > +
> > +FILES_${PN} = ""
> > +FILES_${PN}-apps = "${bindir}/* ${datadir}/OpenCV"
> > +FILES_${PN}-dbg += "${libdir}/.debug"
> > +FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig"
> > +FILES_${PN}-doc = "${datadir}/OpenCV/doc"
> > +FILES_${PN}-staticdev += "${datadir}/OpenCV/3rdparty${base_libdir}"
> > +
> > +ALLOW_EMPTY_${PN} = "1"
> > +
> > +INSANE_SKIP_python-opencv = "True"
> > +DESCRIPTION_python-opencv = "Python bindings to opencv"
> > +FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
> > +RDEPENDS_python-opencv = "python-core python-numpy"
> > +
> > +do_install_append() {
> > + cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/
> > + sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h
> > +}
> > --
> > 1.9.1
> >
> > --
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>
> --
> Martin 'JaMa' Jansa jabber: Martin.Jansa at gmail.com
--
Martin 'JaMa' Jansa jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20141010/3668b881/attachment-0002.sig>
More information about the Openembedded-devel
mailing list