[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