summaryrefslogtreecommitdiffstats
path: root/meta-oe
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2020-01-09 16:21:38 +0000
committerKhem Raj <raj.khem@gmail.com>2020-01-10 00:50:59 -0800
commit74a54d5eda05d9f0d488dfe32b5973815a29e931 (patch)
treeae5b3087354d11eaae90eba43b1822f28ebb7a3e /meta-oe
parent5dcb72e707dade6dbd3d1fc3921ff61fda0b7f4b (diff)
downloadmeta-openembedded-74a54d5eda05d9f0d488dfe32b5973815a29e931.tar.gz
opencv: don't download during configure
OpenCV downloads data files during the CMake configure phase, which is bad because fetching should only happen in do_fetch (and if proxies are needed, won't be set in do_configure). The recipe attempts to solve this already by having the repositories in SRC_URI and moving the files to the correct place before do_configure(). However they are written to ${B} which is then wiped in do_configure so they're not used. The OpenCV download logic has a download cache with specially formatted filenames, so take the downloaded files and populate the cache. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe')
-rw-r--r--meta-oe/recipes-support/opencv/opencv_4.1.0.bb23
1 files changed, 21 insertions, 2 deletions
diff --git a/meta-oe/recipes-support/opencv/opencv_4.1.0.bb b/meta-oe/recipes-support/opencv/opencv_4.1.0.bb
index 5e89db097..cfc7854e1 100644
--- a/meta-oe/recipes-support/opencv/opencv_4.1.0.bb
+++ b/meta-oe/recipes-support/opencv/opencv_4.1.0.bb
@@ -51,10 +51,28 @@ PV = "4.1.0"
51 51
52S = "${WORKDIR}/git" 52S = "${WORKDIR}/git"
53 53
54# OpenCV wants to download more files during configure. We download these in
55# do_fetch and construct a source cache in the format it expects
56OPENCV_DLDIR = "${WORKDIR}/downloads"
57
54do_unpack_extra() { 58do_unpack_extra() {
55 tar xzf ${WORKDIR}/ipp/ippicv/${IPP_FILENAME} -C ${WORKDIR} 59 tar xzf ${WORKDIR}/ipp/ippicv/${IPP_FILENAME} -C ${WORKDIR}
56 cp ${WORKDIR}/vgg/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src 60
57 cp ${WORKDIR}/boostdesc/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src 61 md5() {
62 # Return the MD5 of $1
63 echo $(md5sum $1 | cut -d' ' -f1)
64 }
65 cache() {
66 TAG=$1
67 shift
68 mkdir --parents ${OPENCV_DLDIR}/$TAG
69 for F in $*; do
70 DEST=${OPENCV_DLDIR}/$TAG/$(md5 $F)-$(basename $F)
71 test -e $DEST || ln -s $F $DEST
72 done
73 }
74 cache xfeatures2d/boostdesc ${WORKDIR}/boostdesc/*.i
75 cache xfeatures2d/vgg ${WORKDIR}/vgg/*.i
58} 76}
59addtask unpack_extra after do_unpack before do_patch 77addtask unpack_extra after do_unpack before do_patch
60 78
@@ -65,6 +83,7 @@ EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \
65 -DOPENCV_ICV_HASH=${IPP_MD5} \ 83 -DOPENCV_ICV_HASH=${IPP_MD5} \
66 -DIPPROOT=${WORKDIR}/ippicv_lnx \ 84 -DIPPROOT=${WORKDIR}/ippicv_lnx \
67 -DOPENCV_GENERATE_PKGCONFIG=ON \ 85 -DOPENCV_GENERATE_PKGCONFIG=ON \
86 -DOPENCV_DOWNLOAD_PATH=${OPENCV_DLDIR} \
68 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \ 87 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \
69 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \ 88 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \
70 ${@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)} \ 89 ${@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)} \