From: Koen Kooi <koen@dominion.thruhere.net>
To: openembedded-devel@lists.openembedded.org
Subject: Re: [meta-oe][PATCH] opencv: import from oe-classic and upgrade to 2.3.1
Date: Mon, 31 Oct 2011 11:46:52 +0100 [thread overview]
Message-ID: <j8luas$7vb$2@dough.gmane.org> (raw)
In-Reply-To: <1320038418-24191-1-git-send-email-cwabbott0@gmail.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Can you please send a v2 with the PRIORITY fields removed?
Op 31-10-11 06:20, Connor Abbott schreef:
> OpenCV <= 2.2 won't compile on oe-core due to the lack of v4l1 headers,
> and therefore wasn't included in this patch. Also, the support for newer
> cv2-style python bindings is a bit hacked up at the moment due to the way
> OpenCV detects the Python version and Numpy headers (see
> 0001-Fix-CMakeLists.txt-numpy-detection.patch). In particular, it
> requires the native & target python to be the same version and have
> similar site-packages directories, which is true at least for now in OE.
> Signed-off-by: Connor Abbott <cwabbott0@gmail.com> ---
> .../recipes-support/opencv/opencv-samples_2.3.bb | 43 +++++++++++
> .../0001-Fix-CMakeLists.txt-numpy-detection.patch | 37 ++++++++++
> meta-oe/recipes-support/opencv/opencv_2.3.bb | 76
> ++++++++++++++++++++ 3 files changed, 156 insertions(+), 0 deletions(-)
> create mode 100644 meta-oe/recipes-support/opencv/opencv-samples_2.3.bb
> create mode 100644
> meta-oe/recipes-support/opencv/opencv/0001-Fix-CMakeLists.txt-numpy-detection.patch
>
>
create mode 100644 meta-oe/recipes-support/opencv/opencv_2.3.bb
>
> diff --git a/meta-oe/recipes-support/opencv/opencv-samples_2.3.bb
> b/meta-oe/recipes-support/opencv/opencv-samples_2.3.bb new file mode
> 100644 index 0000000..5cac4a5 --- /dev/null +++
> b/meta-oe/recipes-support/opencv/opencv-samples_2.3.bb @@ -0,0 +1,43 @@
> +DESCRIPTION = "Opencv : The Open Computer Vision Library" +HOMEPAGE =
> "http://opencv.willowgarage.com/wiki/" +SECTION = "libs" +PRIORITY =
> "optional" +LICENSE = "BSD" + +DEPENDS = "opencv" + +LIC_FILES_CHKSUM =
> "file://include/opencv2/opencv.hpp;endline=41;md5=6d690d8488a6fca7a2c192932466bb14
> \ +" + +SRC_URI =
> "svn://code.ros.org/svn/opencv/tags/2.3.1;module=opencv;proto=https \ +"
> + +SRCREV = "6923" +PV = "2.3.1" +PR = "r0" + +S = "${WORKDIR}/opencv" +
> +do_install() { + cd samples/c + install -d ${D}/${bindir} + install
> -d ${D}/${datadir}/opencv/samples + + cp * ${D}/${datadir}/opencv/samples
> || true + + for i in *.c; do + echo "compiling $i" +
> ${CXX} ${CFLAGS} ${LDFLAGS} -ggdb `pkg-config --cflags opencv` -o
> `basename $i .c` $i `pkg-config --libs opencv` || true + install -m 0755
> `basename $i .c` ${D}/${bindir} || true + rm
> ${D}/${datadir}/opencv/samples/`basename $i .c` || true + done + for i
> in *.cpp; do + echo "compiling $i" + ${CXX} ${CFLAGS}
> ${LDFLAGS} -ggdb `pkg-config --cflags opencv` -o `basename $i .cpp` $i
> `pkg-config --libs opencv` || true + install -m 0755 `basename $i .cpp`
> ${D}/${bindir} || true + rm ${D}/${datadir}/opencv/samples/`basename $i
> .cpp` || true + done +} + +FILES_${PN}-dev +=
> "${datadir}/opencv/samples/*.c* ${datadir}/opencv/samples/*.vcp*
> ${datadir}/opencv/samples/build*" +FILES_${PN} += "${bindir}
> ${datadir}/opencv" diff --git
> a/meta-oe/recipes-support/opencv/opencv/0001-Fix-CMakeLists.txt-numpy-detection.patch
> b/meta-oe/recipes-support/opencv/opencv/0001-Fix-CMakeLists.txt-numpy-detection.patch
>
>
new file mode 100644
> index 0000000..dba00f8 --- /dev/null +++
> b/meta-oe/recipes-support/opencv/opencv/0001-Fix-CMakeLists.txt-numpy-detection.patch
>
>
@@ -0,0 +1,37 @@
> +From a7301911a3cdf9196abd93ff894a9e86e0bcdc5e Mon Sep 17 00:00:00 2001
> +From: Connor Abbott <cwabbott0@gmail.com> +Date: Sun, 30 Oct 2011
> 20:00:03 -0400 +Subject: [PATCH] Fix CMakeLists.txt numpy detection +
> +Right now, the code opencv uses to detect where the numpy include files
> are doesn't work with cross-compiling because it uses the native python
> to determine the environment. To make this a little better, allow the
> user to explictly specify the path using
> -DPYTHON_NUMPY_INCLUDE_DIRS=path/to/numpy/include/dir . +Signed-off-by:
> Connor Abbott <cwabbott0@gmail.com> +--- + CMakeLists.txt | 12
> ++++++++---- + 1 files changed, 8 insertions(+), 4 deletions(-) + +diff
> --git a/CMakeLists.txt b/CMakeLists.txt +index ff8f20c..8edbd78 100644
> +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -715,10 +715,14 @@ IF
> ("${PYTHON_VERSION_MAJOR_MINOR}" VERSION_GREATER 2.4) + ENDIF() + + #
> Attempt to discover the NumPy include directory. If this succeeds, then
> build python API with NumPy +-execute_process(COMMAND
> ${PYTHON_EXECUTABLE} -c "import os; os.environ['DISTUTILS_USE_SDK']='1';
> import numpy.distutils; print
> numpy.distutils.misc_util.get_numpy_include_dirs()[0]" +-
> RESULT_VARIABLE PYTHON_NUMPY_PROCESS +- OUTPUT_VARIABLE
> PYTHON_NUMPY_INCLUDE_DIRS +-
> OUTPUT_STRIP_TRAILING_WHITESPACE) ++if(NOT DEFINED
> PYTHON_NUMPY_INCLUDE_DIRS) ++ execute_process(COMMAND
> ${PYTHON_EXECUTABLE} -c "import os; os.environ['DISTUTILS_USE_SDK']='1';
> import numpy.distutils; print
> numpy.distutils.misc_util.get_numpy_include_dirs()[0]" ++
> RESULT_VARIABLE PYTHON_NUMPY_PROCESS ++ OUTPUT_VARIABLE
> PYTHON_NUMPY_INCLUDE_DIRS ++
> OUTPUT_STRIP_TRAILING_WHITESPACE) ++else() ++ set(PYTHON_NUMPY_PROCESS
> 0) ++endif() + + if(PYTHON_NUMPY_PROCESS EQUAL 0) +
> set(PYTHON_USE_NUMPY 1) +-- +1.7.4.1 + diff --git
> a/meta-oe/recipes-support/opencv/opencv_2.3.bb
> b/meta-oe/recipes-support/opencv/opencv_2.3.bb new file mode 100644 index
> 0000000..220116d --- /dev/null +++
> b/meta-oe/recipes-support/opencv/opencv_2.3.bb @@ -0,0 +1,76 @@
> +DESCRIPTION = "Opencv : The Open Computer Vision Library" +HOMEPAGE =
> "http://opencv.willowgarage.com/wiki/" +SECTION = "libs" +PRIORITY =
> "optional" +LICENSE = "BSD" + +ARM_INSTRUCTION_SET = "arm" +
> +LIC_FILES_CHKSUM =
> "file://include/opencv2/opencv.hpp;endline=41;md5=6d690d8488a6fca7a2c192932466bb14
> \ +" + +DEPENDS = "python-numpy ffmpeg gtk+ libtool swig swig-native
> python jpeg bzip2 zlib libpng tiff glib-2.0" + +SRC_URI =
> "svn://code.ros.org/svn/opencv/tags/2.3.1;module=opencv;proto=https \
> +file://opencv/0001-Fix-CMakeLists.txt-numpy-detection.patch \ +" +
> +SRCREV = "6923" + +PV = "2.3.1" +PR = "r0" + +S = "${WORKDIR}/opencv" +
> +EXTRA_OECMAKE =
> "-DPYTHON_NUMPY_INCLUDE_DIRS=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include
> \ +-DBUILD_PYTHON_SUPPORT=ON \ +" + +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 = bb.data.expand('${libdir}',
> d) + cv_libdir_dbg = bb.data.expand('${libdir}/.debug', d) +
> 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 = bb.data.getVar('PN', d, 1) + metapkg = pn +
> '-dev' + bb.data.setVar('ALLOW_EMPTY_' + metapkg, "1", d) + blacklist = [
> metapkg ] + metapkg_rdepends = [ ] + packages =
> bb.data.getVar('PACKAGES', d, 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) +
> bb.data.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends), d)
> +} + +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" + +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 +} \ No newline at end of file
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
Comment: GPGTools - http://gpgtools.org
iD8DBQFOrnycMkyGM64RGpERAkBoAJ9M7fp8O1f4X9F4wG/d6Lm4jKpR3ACeNcdK
WA0OW/0cYuV7mhrnZ0MjgYI=
=PzOO
-----END PGP SIGNATURE-----
prev parent reply other threads:[~2011-10-31 10:56 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-31 5:20 [meta-oe][PATCH] opencv: import from oe-classic and upgrade to 2.3.1 Connor Abbott
2011-10-31 10:46 ` Koen Kooi [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='j8luas$7vb$2@dough.gmane.org' \
--to=koen@dominion.thruhere.net \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.