summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-support/opencv/opencv_3.2.bb
diff options
context:
space:
mode:
authorIsmo Puustinen <ismo.puustinen@intel.com>2017-08-10 12:58:18 +0300
committerMartin Jansa <Martin.Jansa@gmail.com>2017-08-13 13:21:02 +0200
commit31fceb560c0b81cff3aa439e3f43fd7a04dc477f (patch)
treebaf8b38202f478ca3de3ed02f30267c070e26eda /meta-oe/recipes-support/opencv/opencv_3.2.bb
parent910b7137589385f56b7e246c305302b9b4cabf79 (diff)
downloadmeta-openembedded-31fceb560c0b81cff3aa439e3f43fd7a04dc477f.tar.gz
opencv: update to version 3.3.
Update OpenCV recipe from version 3.2 to 3.3. Rebase patches and drop those which are no longer relevant or already contained in upstream OpenCV. Fix changed build options, such as UPDATE_PROTO_FILES to PROTOBUF_UPDATE_FILES. Update also subcomponents (opencv-contrib and opencv-3rdparty) to match with 3.3. Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta-oe/recipes-support/opencv/opencv_3.2.bb')
-rw-r--r--meta-oe/recipes-support/opencv/opencv_3.2.bb175
1 files changed, 0 insertions, 175 deletions
diff --git a/meta-oe/recipes-support/opencv/opencv_3.2.bb b/meta-oe/recipes-support/opencv/opencv_3.2.bb
deleted file mode 100644
index fc62e9975..000000000
--- a/meta-oe/recipes-support/opencv/opencv_3.2.bb
+++ /dev/null
@@ -1,175 +0,0 @@
1SUMMARY = "Opencv : The Open Computer Vision Library"
2HOMEPAGE = "http://opencv.org/"
3SECTION = "libs"
4
5LICENSE = "BSD-3-Clause"
6LIC_FILES_CHKSUM = "file://LICENSE;md5=2b2f8752cc5edf504d283107d033f544"
7
8ARM_INSTRUCTION_SET_armv4 = "arm"
9ARM_INSTRUCTION_SET_armv5 = "arm"
10
11DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp"
12
13SRCREV_opencv = "70bbf17b133496bd7d54d034b0f94bd869e0e810"
14SRCREV_contrib = "86342522b0eb2b16fa851c020cc4e0fef4e010b7"
15SRCREV_ipp = "81a676001ca8075ada498583e4166079e5744668"
16SRCREV_bootdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26"
17SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d"
18IPP_MD5 = "808b791a6eac9ed78d32a7666804320e"
19
20SRCREV_FORMAT = "opencv"
21SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \
22 git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \
23 git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20151201;destsuffix=ipp;name=ipp \
24 git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=bootdesc;name=bootdesc \
25 git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg \
26 file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \
27 file://fixpkgconfig.patch \
28 file://uselocalxfeatures.patch;patchdir=../contrib/ \
29 file://useoeprotobuf.patch;patchdir=../contrib/ \
30 file://0001-Revert-cuda-fix-fp16-compilation.patch \
31 file://0002-Revert-check-FP16-build-condition-correctly.patch \
32 file://0001-Make-opencv-ts-create-share-library-intead-of-static.patch \
33 file://0001-To-fix-errors-as-following.patch \
34 file://0001-tracking-make-opencv_dnn-dependancy-optional.patch;patchdir=../contrib/ \
35"
36
37PV = "3.2+git${SRCPV}"
38
39S = "${WORKDIR}/git"
40
41do_unpack_extra() {
42 tar xzf ${WORKDIR}/ipp/ippicv/ippicv_linux_20151201.tgz -C ${WORKDIR}
43 cp ${WORKDIR}/vgg/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
44 cp ${WORKDIR}/bootdesc/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
45}
46addtask unpack_extra after do_unpack before do_patch
47
48EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \
49 -DWITH_1394=OFF \
50 -DCMAKE_SKIP_RPATH=ON \
51 -DOPENCV_ICV_PACKAGE_DOWNLOADED=${IPP_MD5} \
52 -DOPENCV_ICV_PATH=${WORKDIR}/ippicv_lnx \
53 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \
54 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \
55 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \
56 ${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
57 ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
58"
59EXTRA_OECMAKE_append_x86 = " -DX86=ON"
60
61PACKAGECONFIG ??= "python3 eigen jpeg png tiff v4l libv4l gstreamer samples tbb gphoto2 \
62 ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \
63 ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}"
64
65PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas,"
66PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft,"
67PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DUPDATE_PROTO_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native,"
68PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen gflags glog,"
69PACKAGECONFIG[freetype] = "-DBUILD_opencv_freetype=ON,-DBUILD_opencv_freetype=OFF,freetype,"
70PACKAGECONFIG[gphoto2] = "-DWITH_GPHOTO2=ON,-DWITH_GPHOTO2=OFF,libgphoto2,"
71PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER=ON,-DWITH_GSTREAMER=OFF,gstreamer1.0 gstreamer1.0-plugins-base,"
72PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+3,"
73PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper,"
74PACKAGECONFIG[java] = "-DJAVA_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native fastjar-native openjdk-8-native,"
75PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg,"
76PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav,"
77PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils,"
78PACKAGECONFIG[opencl] = "-DWITH_OPENCL=ON,-DWITH_OPENCL=OFF,opencl-headers virtual/opencl-icd,"
79PACKAGECONFIG[oracle-java] = "-DJAVA_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${ORACLE_JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native oracle-jse-jdk oracle-jse-jdk-native,"
80PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,"
81PACKAGECONFIG[python2] = "-DPYTHON2_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python-numpy,"
82PACKAGECONFIG[python3] = "-DPYTHON3_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python3-numpy,"
83PACKAGECONFIG[samples] = "-DBUILD_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON,-DBUILD_EXAMPLES=OFF,,"
84PACKAGECONFIG[tbb] = "-DWITH_TBB=ON,-DWITH_TBB=OFF,tbb,"
85PACKAGECONFIG[text] = "-DBUILD_opencv_text=ON,-DBUILD_opencv_text=OFF,tesseract,"
86PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff,"
87PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils,"
88
89inherit pkgconfig cmake
90
91inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'distutils3-base', '', d)}
92inherit ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'distutils-base', '', d)}
93
94export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}"
95export PYTHON="${STAGING_BINDIR_NATIVE}/${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3', 'python', d)}"
96export ORACLE_JAVA_HOME="${STAGING_DIR_NATIVE}/usr/bin/java"
97export JAVA_HOME="${STAGING_DIR_NATIVE}/usr/lib/jvm/openjdk-8-native"
98export ANT_DIR="${STAGING_DIR_NATIVE}/usr/share/ant/"
99
100TARGET_CC_ARCH += "-I${S}/include "
101
102PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'samples', '${PN}-samples', '', d)} \
103 ${@bb.utils.contains('PACKAGECONFIG', 'oracle-java', '${PN}-java', '', d)} \
104 ${@bb.utils.contains('PACKAGECONFIG', 'java', '${PN}-java', '', d)} \
105 ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'python-${BPN}', '', d)} \
106 ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-${BPN}', '', d)} \
107 ${PN}-apps"
108
109python populate_packages_prepend () {
110 cv_libdir = d.expand('${libdir}')
111 do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True)
112 do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
113 do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
114 do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True)
115
116 pn = d.getVar('PN')
117 metapkg = pn + '-dev'
118 d.setVar('ALLOW_EMPTY_' + metapkg, "1")
119 blacklist = [ metapkg ]
120 metapkg_rdepends = [ ]
121 packages = d.getVar('PACKAGES').split()
122 for pkg in packages[1:]:
123 if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'):
124 metapkg_rdepends.append(pkg)
125 d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends))
126
127 metapkg = pn
128 d.setVar('ALLOW_EMPTY_' + metapkg, "1")
129 blacklist = [ metapkg, "libopencv-ts" ]
130 metapkg_rdepends = [ ]
131 for pkg in packages[1:]:
132 if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') and not pkg.endswith('-locale') and not pkg.endswith('-staticdev'):
133 metapkg_rdepends.append(pkg)
134 d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends))
135
136}
137
138PACKAGES_DYNAMIC += "^libopencv-.*"
139
140FILES_${PN} = ""
141FILES_${PN}-dbg += "${datadir}/OpenCV/java/.debug/* ${datadir}/OpenCV/samples/bin/.debug/*"
142FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig ${datadir}/OpenCV/*.cmake"
143FILES_${PN}-staticdev += "${datadir}/OpenCV/3rdparty/lib/*.a"
144FILES_${PN}-apps = "${bindir}/* ${datadir}/OpenCV"
145FILES_${PN}-java = "${datadir}/OpenCV/java"
146FILES_${PN}-samples = "${datadir}/OpenCV/samples/"
147
148INSANE_SKIP_${PN}-java = "libdir"
149INSANE_SKIP_${PN}-dbg = "libdir"
150
151ALLOW_EMPTY_${PN} = "1"
152
153SUMMARY_python-opencv = "Python bindings to opencv"
154FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
155RDEPENDS_python-opencv = "python-core python-numpy"
156
157SUMMARY_python3-opencv = "Python bindings to opencv"
158FILES_python3-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
159RDEPENDS_python3-opencv = "python3-core python3-numpy"
160
161do_install_append() {
162 cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/
163 sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h
164
165 # Move Python files into correct library folder (for multilib build)
166 if [ "$libdir" != "/usr/lib" -a -d ${D}/usr/lib ]; then
167 mv ${D}/usr/lib/* ${D}/${libdir}/
168 rm -rf ${D}/usr/lib
169 fi
170
171 if ${@bb.utils.contains("PACKAGECONFIG", "samples", "true", "false", d)}; then
172 install -d ${D}${datadir}/OpenCV/samples/bin/
173 cp -f bin/*-tutorial-* bin/*-example-* ${D}${datadir}/OpenCV/samples/bin/
174 fi
175}