Gentoo Archives: gentoo-commits

From: Amy Liffey <amynka@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/opencv/
Date: Thu, 28 Nov 2019 16:56:23
Message-Id: 1574960137.2bb83a3237876597e597b7afcabd15e817ed717e.amynka@gentoo
1 commit: 2bb83a3237876597e597b7afcabd15e817ed717e
2 Author: Amy Liffey <amynka <AT> gentoo <DOT> org>
3 AuthorDate: Thu Nov 28 16:44:07 2019 +0000
4 Commit: Amy Liffey <amynka <AT> gentoo <DOT> org>
5 CommitDate: Thu Nov 28 16:55:37 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2bb83a32
7
8 media-libs/opencv: version bump 4.1.2
9
10 Closes: https://bugs.gentoo.org/685106
11 Closes: https://bugs.gentoo.org/678460
12 Closes: https://bugs.gentoo.org/663730
13 Closes: https://bugs.gentoo.org/689840
14 Package-Manager: Portage-2.3.76, Repoman-2.3.16
15 Signed-off-by: Amy Liffey <amynka <AT> gentoo.org>
16
17 media-libs/opencv/Manifest | 2 +
18 media-libs/opencv/metadata.xml | 2 +
19 media-libs/opencv/opencv-4.1.2.ebuild | 494 ++++++++++++++++++++++++++++++++++
20 3 files changed, 498 insertions(+)
21
22 diff --git a/media-libs/opencv/Manifest b/media-libs/opencv/Manifest
23 index 4cfab222a0a..f7ec8ef1be8 100644
24 --- a/media-libs/opencv/Manifest
25 +++ b/media-libs/opencv/Manifest
26 @@ -3,5 +3,7 @@ DIST opencv-3.4.0-face_landmark_model.tar.gz 63299830 BLAKE2B 58f08cd8c030ee1c8b
27 DIST opencv-3.4.0-res10_300x300-caffeemodel.tar.gz 10036604 BLAKE2B 2a2de48fc420f13e7be146ac88f311901c5b4e409c30e466152e33cae1f8afd87dcb6d758af447c268d90bd67989c8798cd80cab172b10499a6ad5224509dbdf SHA512 96fee9f447d5739bc01a5cab37c453cf7237457dfb5d2bf93ac37f8e5aa557ac222316f449cd58e37e856abe4d8e9d4a7820daaba32f0b22cbcde8e340287d4b
28 DIST opencv-3.4.1.tar.gz 87051748 BLAKE2B 87c83ab9b3d7fb048263f047aa5d6e95b153e1a28f3e34cc885eff7eb080a2258cfa1aa494cd56b32f1098ab158c17c23fc8464fcbe70642a3a1842f2fd1b4ac SHA512 e1fc14285090c6fe9e26e721f2d67d7096650c523147e925567426ef76aa7f4c6f12035d6f6ce3ec7991a75a6828a810fd4f9b75f78ed5fcccecefbadd79944b
29 DIST opencv-3.4.1_contrib.tar.gz 57126844 BLAKE2B 63d9d5cb088371754eb132607789c8f1d4820f3e0e486593d6f64ee8f918ea4362152f050baec16f17904c03a6cdc0abc6e5fb2510308dcbabebe97b29285fbc SHA512 431dfba0f413071d7faa18bc6e6f5e4f015285e2cc730c5dd69b2a4d6aa4250b7e0bcb1814ac6f06f5c76f103aea1f93f72f32aee6bc0cd7ddacdaf1f40075c1
30 +DIST opencv-4.1.2.tar.gz 87468598 BLAKE2B 9e0fbd8499f783cd1a2b5ffddf557aef424b0a446f71f826522ffd4526d04742e0c408b99810fe6b39753d40c475922d2e273732fdc0a0b4ee0bc56052a7a26c SHA512 d18d2cc35dc1c95c8870d35feb14459db27ebf6d09ff89a185918b1faff1b36dedacc18f268a6483570c404aca19b83ba627ce7af2265af7195a029cb766c09f
31 +DIST opencv-4.1.2_contrib.tar.gz 60881937 BLAKE2B c461aaa62306b226bde9211e2d611dcf705510e32c8598458737eb09c510cfdb49c33e11f1a7c591090d8243590e915b779fdb55955550fe44dab7545e4cc308 SHA512 1e14f94f9228c5d6a598493eed265aab1d8a740d5bfa00639afb05287732220eb71f88bb374de47dcd440f4376486f9db0e8b338e90e5dc4f6af8d355340b622
32 DIST tiny-dnn-1.0.0a3.tar.gz 12885646 BLAKE2B 85c0715ab6c692b77522487775e70b0db645528baed1830c83c9f44d2b67a5207e4f7ea1709b35c6a4217d287199549304e9be19f4a5cec9a1183b0b5dccc562 SHA512 5f2c1a161771efa67e85b1fea395953b7744e29f61187ac5a6c54c912fb195b3aef9a5827135c3668bd0eeea5ae04a33cc433e1f6683e2b7955010a2632d168b
33 DIST vgg_boostdesc-3.2.0.tar.gz 1867770 BLAKE2B 1fa5b58e73b6fa56ecf8d19af22298f729942ee1369082e173445d09d3de767bf844bad3d2b462efc1199c392f37c88ba49a9996ba8bfd84b4abeba7de94db63 SHA512 4a046aedd639c8eb4b295b0f499e756deb66210ca083f0124c75531e540663367cb58f6d175f66c4713324177036cd89a8869bdab2de8d1736dafc7f00ef9f44
34
35 diff --git a/media-libs/opencv/metadata.xml b/media-libs/opencv/metadata.xml
36 index a1403df457f..fa1de56873e 100644
37 --- a/media-libs/opencv/metadata.xml
38 +++ b/media-libs/opencv/metadata.xml
39 @@ -13,8 +13,10 @@ Face Recognition; Gesture Recognition; Motion Tracking, Ego Motion, Motion Under
40 <use>
41 <flag name="contrib">Install user contributed scripts from opencv_contrib (Experimental!)</flag>
42 <flag name="cuda">Enable NVIDIA Cuda computations support (Experimental!)</flag>
43 + <flag restrict="&gt;=media-libs/opencv-4.1.2" name="download">Enable download during cmake configure</flag>
44 <flag name="eigen">Enable usage of <pkg>dev-cpp/eigen</pkg> for computations</flag>
45 <flag name="gdal">Enable support for sci-libs/gdal library</flag>
46 + <flag restrict="&gt;=media-libs/opencv-4.1.2" name="opencvapps">Enable compilation with opencvapps</flag>
47 <flag restrict="&gt;=media-libs/opencv-3.1.0" name="gflags">Use Google's C++ argument parsing library</flag>
48 <flag restrict="&gt;=media-libs/opencv-3.1.0" name="glog">Use Google's C++ loggin library</flag>
49 <flag restrict="&gt;=media-libs/opencv-3.1.0" name="contribxfeatures2d">Enables xfeatures2d and autodownload of samples in contrib</flag>
50
51 diff --git a/media-libs/opencv/opencv-4.1.2.ebuild b/media-libs/opencv/opencv-4.1.2.ebuild
52 new file mode 100644
53 index 00000000000..cdd688f4b44
54 --- /dev/null
55 +++ b/media-libs/opencv/opencv-4.1.2.ebuild
56 @@ -0,0 +1,494 @@
57 +# Copyright 1999-2019 Gentoo Authors
58 +# Distributed under the terms of the GNU General Public License v2
59 +
60 +EAPI=7
61 +
62 +PYTHON_COMPAT=( python2_7 python3_{5,6,7} )
63 +
64 +inherit java-pkg-opt-2 java-ant-2 python-r1 toolchain-funcs cmake-multilib
65 +
66 +DESCRIPTION="A collection of algorithms and sample code for various computer vision problems"
67 +HOMEPAGE="https://opencv.org"
68 +TINY_DNN_PV="1.0.0a3"
69 +SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
70 + dnnsamples? ( https://dev.gentoo.org/~amynka/snap/${PN}-3.4.0-res10_300x300-caffeemodel.tar.gz )
71 + contrib? (
72 + https://github.com/${PN}/${PN}_contrib/archive/${PV}.tar.gz -> ${P}_contrib.tar.gz
73 + contribdnn? ( https://dev.gentoo.org/~amynka/snap/${PN}-3.4.0-face_landmark_model.tar.gz )
74 + contribxfeatures2d? ( https://dev.gentoo.org/~amynka/snap/vgg_boostdesc-3.2.0.tar.gz )
75 + )"
76 +
77 +LICENSE="BSD"
78 +SLOT="0/4.1.2" # subslot = libopencv* soname version
79 +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux"
80 +IUSE="contrib contribcvv contribdnn contribhdf contribsfm contribxfeatures2d cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_ssse3 cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_popcnt cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_fma3 cuda debug dnnsamples -download +eigen examples ffmpeg gdal gflags glog gphoto2 gstreamer gtk ieee1394 jpeg jpeg2k lapack libav opencl openexr opengl openmp opencvapps pch png +python qt5 tesseract testprograms threads tiff vaapi v4l vtk webp xine"
81 +# OpenGL needs gtk or Qt installed to activate, otherwise build system
82 +# will silently disable it Wwithout the user knowing, which defeats the
83 +# purpose of the opengl use flag.
84 +REQUIRED_USE="
85 + cuda? ( tesseract? ( opencl ) )
86 + dnnsamples? ( examples )
87 + gflags? ( contrib )
88 + glog? ( contrib )
89 + contribcvv? ( contrib qt5 )
90 + contribdnn? ( contrib )
91 + contribhdf? ( contrib )
92 + contribsfm? ( contrib eigen gflags glog )
93 + contribxfeatures2d? ( contrib download )
94 + java? ( python )
95 + opengl? ( || ( gtk qt5 ) )
96 + python? ( ${PYTHON_REQUIRED_USE} )
97 + tesseract? ( contrib )"
98 +
99 +# The following logic is intrinsic in the build system, but we do not enforce
100 +# it on the useflags since this just blocks emerging pointlessly:
101 +# gtk? ( !qt5 )
102 +# openmp? ( !threads )
103 +
104 +RDEPEND="
105 + app-arch/bzip2[${MULTILIB_USEDEP}]
106 + dev-libs/protobuf:=[${MULTILIB_USEDEP}]
107 + sys-libs/zlib[${MULTILIB_USEDEP}]
108 + cuda? ( dev-util/nvidia-cuda-toolkit:0= )
109 + contribhdf? ( sci-libs/hdf5:= )
110 + ffmpeg? (
111 + libav? ( media-video/libav:0=[${MULTILIB_USEDEP}] )
112 + !libav? ( media-video/ffmpeg:0=[${MULTILIB_USEDEP}] )
113 + )
114 + gdal? ( sci-libs/gdal:= )
115 + gflags? ( dev-cpp/gflags[${MULTILIB_USEDEP}] )
116 + glog? ( dev-cpp/glog[${MULTILIB_USEDEP}] )
117 + gphoto2? ( media-libs/libgphoto2[${MULTILIB_USEDEP}] )
118 + gstreamer? (
119 + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
120 + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
121 + )
122 + gtk? (
123 + dev-libs/glib:2[${MULTILIB_USEDEP}]
124 + x11-libs/gtk+:2[${MULTILIB_USEDEP}]
125 + opengl? ( x11-libs/gtkglext[${MULTILIB_USEDEP}] )
126 + )
127 + ieee1394? (
128 + media-libs/libdc1394[${MULTILIB_USEDEP}]
129 + sys-libs/libraw1394[${MULTILIB_USEDEP}]
130 + )
131 + java? ( >=virtual/jre-1.6:* )
132 + jpeg? ( virtual/jpeg:0[${MULTILIB_USEDEP}] )
133 + lapack? ( virtual/lapack )
134 + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
135 + openexr? ( media-libs/openexr[${MULTILIB_USEDEP}] )
136 + opengl? (
137 + virtual/opengl[${MULTILIB_USEDEP}]
138 + virtual/glu[${MULTILIB_USEDEP}]
139 + )
140 + png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
141 + python? ( ${PYTHON_DEPS} dev-python/numpy[${PYTHON_USEDEP}] )
142 + qt5? (
143 + dev-qt/qtgui:5
144 + dev-qt/qtwidgets:5
145 + dev-qt/qttest:5
146 + dev-qt/qtconcurrent:5
147 + opengl? ( dev-qt/qtopengl:5 )
148 + )
149 + tesseract? ( app-text/tesseract[opencl=] )
150 + threads? ( dev-cpp/tbb[${MULTILIB_USEDEP}] )
151 + tiff? ( media-libs/tiff:0[${MULTILIB_USEDEP}] )
152 + v4l? ( >=media-libs/libv4l-0.8.3[${MULTILIB_USEDEP}] )
153 + vtk? ( sci-libs/vtk[rendering] )
154 + webp? ( media-libs/libwebp[${MULTILIB_USEDEP}] )
155 + xine? ( media-libs/xine-lib )"
156 +DEPEND="${RDEPEND}
157 + virtual/pkgconfig[${MULTILIB_USEDEP}]
158 + eigen? ( dev-cpp/eigen:3 )
159 + java? ( >=virtual/jdk-1.6 )
160 + vaapi? ( x11-libs/libva )"
161 +
162 +MULTILIB_WRAPPED_HEADERS=(
163 + /usr/include/opencv2/cvconfig.h
164 + /usr/include/opencv2/opencv_modules.hpp
165 + # [contrib_cvv]
166 + /usr/include/opencv2/cvv.hpp
167 + /usr/include/opencv2/cvv/call_meta_data.hpp
168 + /usr/include/opencv2/cvv/cvv.hpp
169 + /usr/include/opencv2/cvv/debug_mode.hpp
170 + /usr/include/opencv2/cvv/dmatch.hpp
171 + /usr/include/opencv2/cvv/filter.hpp
172 + /usr/include/opencv2/cvv/final_show.hpp
173 + /usr/include/opencv2/cvv/show_image.hpp
174 + # [contrib_hdf]
175 + /usr/include/opencv2/hdf.hpp
176 + /usr/include/opencv2/hdf/hdf5.hpp
177 + # [vtk]
178 + /usr/include/opencv2/viz.hpp
179 + /usr/include/opencv2/viz/types.hpp
180 + /usr/include/opencv2/viz/viz3d.hpp
181 + /usr/include/opencv2/viz/vizcore.hpp
182 + /usr/include/opencv2/viz/widget_accessor.hpp
183 + /usr/include/opencv2/viz/widgets.hpp
184 + # [cudev]
185 + /usr/include/opencv2/cudaarithm.hpp
186 + /usr/include/opencv2/cudabgsegm.hpp
187 + /usr/include/opencv2/cudacodec.hpp
188 + /usr/include/opencv2/cudafeatures2d.hpp
189 + /usr/include/opencv2/cudafilters.hpp
190 + /usr/include/opencv2/cudaimgproc.hpp
191 + /usr/include/opencv2/cudalegacy.hpp
192 + /usr/include/opencv2/cudalegacy/NCVBroxOpticalFlow.hpp
193 + /usr/include/opencv2/cudalegacy/NCVHaarObjectDetection.hpp
194 + /usr/include/opencv2/cudalegacy/NCV.hpp
195 + /usr/include/opencv2/cudalegacy/NCVPyramid.hpp
196 + /usr/include/opencv2/cudalegacy/NPP_staging.hpp
197 + /usr/include/opencv2/cudaobjdetect.hpp
198 + /usr/include/opencv2/cudaoptflow.hpp
199 + /usr/include/opencv2/cudastereo.hpp
200 + /usr/include/opencv2/cudawarping.hpp
201 + /usr/include/opencv2/cudev/block/block.hpp
202 + /usr/include/opencv2/cudev/block/detail/reduce.hpp
203 + /usr/include/opencv2/cudev/block/detail/reduce_key_val.hpp
204 + /usr/include/opencv2/cudev/block/dynamic_smem.hpp
205 + /usr/include/opencv2/cudev/block/reduce.hpp
206 + /usr/include/opencv2/cudev/block/scan.hpp
207 + /usr/include/opencv2/cudev/block/vec_distance.hpp
208 + /usr/include/opencv2/cudev/common.hpp
209 + /usr/include/opencv2/cudev/expr/binary_func.hpp
210 + /usr/include/opencv2/cudev/expr/binary_op.hpp
211 + /usr/include/opencv2/cudev/expr/color.hpp
212 + /usr/include/opencv2/cudev/expr/deriv.hpp
213 + /usr/include/opencv2/cudev/expr/expr.hpp
214 + /usr/include/opencv2/cudev/expr/per_element_func.hpp
215 + /usr/include/opencv2/cudev/expr/reduction.hpp
216 + /usr/include/opencv2/cudev/expr/unary_func.hpp
217 + /usr/include/opencv2/cudev/expr/unary_op.hpp
218 + /usr/include/opencv2/cudev/expr/warping.hpp
219 + /usr/include/opencv2/cudev/functional/color_cvt.hpp
220 + /usr/include/opencv2/cudev/functional/detail/color_cvt.hpp
221 + /usr/include/opencv2/cudev/functional/functional.hpp
222 + /usr/include/opencv2/cudev/functional/tuple_adapter.hpp
223 + /usr/include/opencv2/cudev/grid/copy.hpp
224 + /usr/include/opencv2/cudev/grid/detail/copy.hpp
225 + /usr/include/opencv2/cudev/grid/detail/histogram.hpp
226 + /usr/include/opencv2/cudev/grid/detail/integral.hpp
227 + /usr/include/opencv2/cudev/grid/detail/minmaxloc.hpp
228 + /usr/include/opencv2/cudev/grid/detail/pyr_down.hpp
229 + /usr/include/opencv2/cudev/grid/detail/pyr_up.hpp
230 + /usr/include/opencv2/cudev/grid/detail/reduce.hpp
231 + /usr/include/opencv2/cudev/grid/detail/reduce_to_column.hpp
232 + /usr/include/opencv2/cudev/grid/detail/reduce_to_row.hpp
233 + /usr/include/opencv2/cudev/grid/detail/split_merge.hpp
234 + /usr/include/opencv2/cudev/grid/detail/transform.hpp
235 + /usr/include/opencv2/cudev/grid/detail/transpose.hpp
236 + /usr/include/opencv2/cudev/grid/histogram.hpp
237 + /usr/include/opencv2/cudev/grid/integral.hpp
238 + /usr/include/opencv2/cudev/grid/pyramids.hpp
239 + /usr/include/opencv2/cudev/grid/reduce.hpp
240 + /usr/include/opencv2/cudev/grid/reduce_to_vec.hpp
241 + /usr/include/opencv2/cudev/grid/split_merge.hpp
242 + /usr/include/opencv2/cudev/grid/transform.hpp
243 + /usr/include/opencv2/cudev/grid/transpose.hpp
244 + /usr/include/opencv2/cudev.hpp
245 + /usr/include/opencv2/cudev/ptr2d/constant.hpp
246 + /usr/include/opencv2/cudev/ptr2d/deriv.hpp
247 + /usr/include/opencv2/cudev/ptr2d/detail/gpumat.hpp
248 + /usr/include/opencv2/cudev/ptr2d/extrapolation.hpp
249 + /usr/include/opencv2/cudev/ptr2d/glob.hpp
250 + /usr/include/opencv2/cudev/ptr2d/gpumat.hpp
251 + /usr/include/opencv2/cudev/ptr2d/interpolation.hpp
252 + /usr/include/opencv2/cudev/ptr2d/lut.hpp
253 + /usr/include/opencv2/cudev/ptr2d/mask.hpp
254 + /usr/include/opencv2/cudev/ptr2d/remap.hpp
255 + /usr/include/opencv2/cudev/ptr2d/resize.hpp
256 + /usr/include/opencv2/cudev/ptr2d/texture.hpp
257 + /usr/include/opencv2/cudev/ptr2d/traits.hpp
258 + /usr/include/opencv2/cudev/ptr2d/transform.hpp
259 + /usr/include/opencv2/cudev/ptr2d/warping.hpp
260 + /usr/include/opencv2/cudev/ptr2d/zip.hpp
261 + /usr/include/opencv2/cudev/util/atomic.hpp
262 + /usr/include/opencv2/cudev/util/detail/tuple.hpp
263 + /usr/include/opencv2/cudev/util/detail/type_traits.hpp
264 + /usr/include/opencv2/cudev/util/limits.hpp
265 + /usr/include/opencv2/cudev/util/saturate_cast.hpp
266 + /usr/include/opencv2/cudev/util/simd_functions.hpp
267 + /usr/include/opencv2/cudev/util/tuple.hpp
268 + /usr/include/opencv2/cudev/util/type_traits.hpp
269 + /usr/include/opencv2/cudev/util/vec_math.hpp
270 + /usr/include/opencv2/cudev/util/vec_traits.hpp
271 + /usr/include/opencv2/cudev/warp/detail/reduce.hpp
272 + /usr/include/opencv2/cudev/warp/detail/reduce_key_val.hpp
273 + /usr/include/opencv2/cudev/warp/reduce.hpp
274 + /usr/include/opencv2/cudev/warp/scan.hpp
275 + /usr/include/opencv2/cudev/warp/shuffle.hpp
276 + /usr/include/opencv2/cudev/warp/warp.hpp
277 + # [opencv4]
278 + /usr/include/opencv4/opencv2/core/cvdef.h
279 + /usr/include/opencv4/opencv2/dnn.hpp
280 + /usr/include/opencv4/opencv2/core/cuda/transform.hpp
281 + /usr/include/opencv4/opencv2/core/opencl/runtime/opencl_core.hpp
282 + /usr/include/opencv4/opencv2/cvconfig.h
283 + /usr/include/opencv4/opencv2/core/utils/allocator_stats.impl.hpp
284 + /usr/include/opencv4/opencv2/video/tracking.hpp
285 + /usr/include/opencv4/opencv2/objdetect.hpp
286 +)
287 +
288 +PATCHES=(
289 + "${FILESDIR}/${PN}-3.0.0-gles.patch"
290 + "${FILESDIR}/${PN}-3.4.0-disable-download.patch"
291 + "${FILESDIR}/${PN}-3.4.1-cuda-add-relaxed-constexpr.patch"
292 +)
293 +
294 +pkg_pretend() {
295 + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
296 +}
297 +
298 +pkg_setup() {
299 + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
300 + java-pkg-opt-2_pkg_setup
301 +}
302 +
303 +src_prepare() {
304 + cmake-utils_src_prepare
305 +
306 + # remove bundled stuff
307 + rm -rf 3rdparty || die "Removing 3rd party components failed"
308 + sed -e '/add_subdirectory(.*3rdparty.*)/ d' \
309 + -i CMakeLists.txt cmake/*cmake || die
310 +
311 + if use dnnsamples; then
312 + mv "${WORKDIR}/res10_300x300_ssd_iter_140000.caffemodel" "${WORKDIR}/${P}/samples/dnn/" || die
313 + fi
314 +
315 + if use contrib; then
316 + cd "${WORKDIR}/${PN}_contrib-${PV}" || die
317 + if use contribxfeatures2d; then
318 + mv "${WORKDIR}"/*.i "${WORKDIR}/${PN}_contrib-${PV}"/modules/xfeatures2d/src/ || die
319 + fi
320 + fi
321 +
322 + java-pkg-opt-2_src_prepare
323 +
324 + # this really belongs in src_prepare() too
325 + JAVA_ANT_ENCODING="iso-8859-1"
326 + # set encoding so even this cmake build will pick it up.
327 + export ANT_OPTS+=" -Dfile.encoding=iso-8859-1"
328 + java-ant-2_src_configure
329 +}
330 +
331 +multilib_src_configure() {
332 + # please dont sort here, order is the same as in CMakeLists.txt
333 + GLOBALCMAKEARGS=(
334 + # Optional 3rd party components
335 + # ===================================================
336 + -DENABLE_DOWNLOAD=$(usex download)
337 + -DWITH_QUIRC=OFF # Do not have dependencies
338 + -DWITH_1394=$(usex ieee1394)
339 + # -DWITH_AVFOUNDATION=OFF # IOS
340 + -DWITH_VTK=$(multilib_native_usex vtk)
341 + -DWITH_EIGEN=$(usex eigen)
342 + -DWITH_VFW=OFF # Video windows support
343 + -DWITH_FFMPEG=$(usex ffmpeg)
344 + -DWITH_GSTREAMER=$(usex gstreamer)
345 + -DWITH_GSTREAMER_0_10=OFF # Don't want this
346 + -DWITH_GTK=$(usex gtk)
347 + -DWITH_GTK_2_X=$(usex gtk)
348 + -DWITH_IPP=OFF
349 + -DWITH_JASPER=OFF
350 + -DWITH_JPEG=$(usex jpeg)
351 + -DWITH_WEBP=$(usex webp)
352 + -DWITH_OPENEXR=$(usex openexr)
353 + -DWITH_OPENGL=$(usex opengl)
354 + -DWITH_OPENVX=OFF
355 + -DWITH_OPENNI=OFF # Not packaged
356 + -DWITH_OPENNI2=OFF # Not packaged
357 + -DWITH_PNG=$(usex png)
358 + -DWITH_GDCM=OFF
359 + -DWITH_PVAPI=OFF
360 + -DWITH_GIGEAPI=OFF
361 + -DWITH_ARAVIS=OFF
362 + -DWITH_QT=$(multilib_native_usex qt5 5 OFF)
363 + -DWITH_WIN32UI=OFF # Windows only
364 + # -DWITH_QUICKTIME=OFF
365 + # -DWITH_QTKIT=OFF
366 + -DWITH_TBB=$(usex threads)
367 + -DWITH_OPENMP=$(usex openmp)
368 + -DWITH_CSTRIPES=OFF
369 + -DWITH_PTHREADS_PF=ON
370 + -DWITH_TIFF=$(usex tiff)
371 + -DWITH_UNICAP=OFF # Not packaged
372 + -DWITH_V4L=$(usex v4l)
373 + -DWITH_LIBV4L=$(usex v4l)
374 + #-DWITH_DSHOW=ON # direct show supp
375 + -DWITH_MSMF=OFF
376 + -DWITH_XIMEA=OFF # Windows only
377 + -DWITH_XINE=$(multilib_native_usex xine)
378 + -DWITH_CLP=OFF
379 + -DWITH_OPENCL=$(usex opencl)
380 + -DWITH_OPENCL_SVM=OFF
381 + -DWITH_OPENCLAMDFFT=$(usex opencl)
382 + -DWITH_OPENCLAMDBLAS=$(usex opencl)
383 + -DWITH_DIRECTX=OFF
384 + -DWITH_INTELPERC=OFF
385 + -DWITH_IPP_A=OFF
386 + -DWITH_MATLAB=OFF
387 + -DWITH_VA=$(usex vaapi)
388 + -DWITH_VA_INTEL=$(usex vaapi)
389 + -DWITH_GDAL=$(multilib_native_usex gdal)
390 + -DWITH_GPHOTO2=$(usex gphoto2)
391 + -DWITH_LAPACK=$(multilib_native_usex lapack)
392 + -DWITH_ITT=OFF # 3dparty libs itt_notify
393 + # ===================================================
394 + # CUDA build components: nvidia-cuda-toolkit takes care of GCC version
395 + # ===================================================
396 + -DWITH_CUDA=$(multilib_native_usex cuda)
397 + -DWITH_CUBLAS=$(multilib_native_usex cuda)
398 + -DWITH_CUFFT=$(multilib_native_usex cuda)
399 + -DWITH_NVCUVID=OFF
400 +# -DWITH_NVCUVID=$(usex cuda)
401 + -DCUDA_NPP_LIBRARY_ROOT_DIR=$(usex cuda "${EPREFIX}/opt/cuda" "")
402 + # ===================================================
403 + # OpenCV build components
404 + # ===================================================
405 + -DBUILD_SHARED_LIBS=$(usex java OFF ON)
406 + -DBUILD_JAVA=$(multilib_native_usex java) # Ant needed, no compile flag
407 + -DBUILD_ANDROID_EXAMPLES=OFF
408 + -DBUILD_opencv_apps=$(usex opencvapps ON OFF)
409 + -DBUILD_DOCS=OFF # Doesn't install anyways.
410 + -DBUILD_EXAMPLES=$(multilib_native_usex examples)
411 + -DBUILD_PERF_TESTS=OFF
412 + -DBUILD_TESTS=$(multilib_native_usex testprograms)
413 + -DBUILD_WITH_DEBUG_INFO=$(usex debug)
414 + # -DBUILD_WITH_STATIC_CRT=OFF
415 + -DBUILD_WITH_DYNAMIC_IPP=OFF
416 + -DBUILD_FAT_JAVA_LIB=$(multilib_native_usex java)
417 + # -DBUILD_ANDROID_SERVICE=OFF
418 + -DBUILD_CUDA_STUBS=$(multilib_native_usex cuda)
419 + -DOPENCV_EXTRA_MODULES_PATH=$(usex contrib "${WORKDIR}/opencv_contrib-${PV}/modules" "")
420 + # ===================================================
421 + # OpenCV installation options
422 + # ===================================================
423 + -DINSTALL_CREATE_DISTRIB=OFF
424 + -DINSTALL_C_EXAMPLES=$(multilib_native_usex examples)
425 + -DINSTALL_TESTS=$(multilib_native_usex testprograms)
426 + -DINSTALL_PYTHON_EXAMPLES=$(multilib_native_usex examples)
427 + # -DINSTALL_ANDROID_EXAMPLES=OFF
428 + -DINSTALL_TO_MANGLED_PATHS=OFF
429 + # opencv uses both ${CMAKE_INSTALL_LIBDIR} and ${LIB_SUFFIX}
430 + # to set its destination libdir
431 + -DLIB_SUFFIX=
432 + # ===================================================
433 + # OpenCV build options
434 + # ===================================================
435 + -DENABLE_CCACHE=OFF
436 + -DENABLE_PRECOMPILED_HEADERS=$(usex pch)
437 + -DENABLE_SOLUTION_FOLDERS=OFF
438 + -DENABLE_PROFILING=OFF
439 + -DENABLE_COVERAGE=OFF
440 +
441 + -DHAVE_opencv_java=$(multilib_native_usex java YES NO)
442 + -DENABLE_NOISY_WARNINGS=OFF
443 + -DOPENCV_WARNINGS_ARE_ERRORS=OFF
444 + -DENABLE_IMPL_COLLECTION=OFF
445 + -DENABLE_INSTRUMENTATION=OFF
446 + -DGENERATE_ABI_DESCRIPTOR=OFF
447 + -DDOWNLOAD_EXTERNAL_TEST_DATA=OFF
448 + # ===================================================
449 + # things we want to be hard off or not yet figured out
450 + # ===================================================
451 + -DBUILD_PACKAGE=OFF
452 + # ===================================================
453 + # Not building protobuf but update files bug #631418
454 + # ===================================================
455 + -DBUILD_PROTOBUF=OFF
456 + -DPROTOBUF_UPDATE_FILES=ON
457 + # ===================================================
458 + # things we want to be hard enabled not worth useflag
459 + # ===================================================
460 + -DCMAKE_SKIP_RPATH=ON
461 + -DOPENCV_DOC_INSTALL_PATH=
462 + # ==================================================
463 + # cpu flags, should solve 633900
464 + #===================================================
465 + -DOPENCV_CPU_OPT_IMPLIES_IGNORE=ON
466 + -DCPU_BASELINE=$(printf "%s," "${cpu_flags[@]}")
467 + -DCPU_DISPATCH=
468 + -DBUILD_opencv_features2d=$(usex contribxfeatures2d)
469 + )
470 +
471 + # ===================================================
472 + # OpenCV Contrib Modules
473 + # ===================================================
474 + if use contrib; then
475 + GLOBALCMAKEARGS+=(
476 + -DBUILD_opencv_dnn=$(usex contribdnn ON OFF)
477 + -DTINYDNN_ROOT="${WORKDIR}/tiny-dnn-${TINY_DNN_PV}"
478 + -DBUILD_opencv_dnns_easily_fooled=OFF
479 + -DBUILD_opencv_xfeatures2d=$(usex contribxfeatures2d ON OFF)
480 + -DBUILD_opencv_cvv=$(usex contribcvv ON OFF)
481 + -DBUILD_opencv_hdf=$(multilib_native_usex contribhdf ON OFF)
482 + -DBUILD_opencv_sfm=$(usex contribsfm ON OFF)
483 + )
484 +
485 + if multilib_is_native_abi; then
486 + GLOBALCMAKEARGS+=(
487 + -DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=$(usex !tesseract)
488 + )
489 + else
490 + GLOBALCMAKEARGS+=(
491 + -DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=ON
492 + )
493 + fi
494 + fi
495 +
496 + # workaround for bug 413429
497 + tc-export CC CXX
498 +
499 + local mycmakeargs=( ${GLOBALCMAKEARGS[@]}
500 + -DPYTHON_EXECUTABLE=OFF
501 + -DINSTALL_PYTHON_EXAMPLES=OFF
502 + -DBUILD_opencv_python2=OFF
503 + -DBUILD_opencv_python3=OFF
504 + )
505 +
506 + cmake-utils_src_configure
507 +
508 + # Copy face_land_model to ${CMAKE_BINARY_DIR}/${OPENCV_TEST_DATA_INSTALL_PATH}
509 + # TODO patch ocv_download to copy files into destination dirs
510 + if use contribdnn; then
511 + mkdir -p "${BUILD_DIR}"/share/OpenCV/testdata/cv/face/ || die
512 + cp "${WORKDIR}"/face_landmark_model.dat "${BUILD_DIR}"/share/OpenCV/testdata/cv/face/ || die
513 + fi
514 +
515 +}
516 +
517 +python_module_compile() {
518 + local BUILD_DIR=${orig_BUILD_DIR}
519 + local mycmakeargs=( ${GLOBALCMAKEARGS[@]} )
520 +
521 + # Set all python variables to load the correct Gentoo paths
522 + mycmakeargs+=(
523 + # python_setup alters PATH and sets this as wrapper
524 + # to the correct interpreter we are building for
525 + -DPYTHON_DEFAULT_EXECUTABLE=python
526 + -DINSTALL_PYTHON_EXAMPLES=$(usex examples)
527 + )
528 +
529 + # Regenerate cache file. Can't use rebuild_cache as it won't
530 + # have the Gentoo specific options.
531 + rm -rf CMakeCache.txt || die "rm failed"
532 + cmake-utils_src_configure
533 + cmake-utils_src_compile
534 + cmake-utils_src_install
535 +
536 + # Remove compiled binary so new version compiles
537 + # Avoid conflicts with new module builds as build system doesn't
538 + # really support it.
539 + rm -rf modules/python2 || die "rm failed"
540 +}
541 +
542 +multilib_src_install() {
543 + cmake-utils_src_install
544 +
545 + # Build and install the python modules for all targets
546 + if multilib_is_native_abi && use python; then
547 + local orig_BUILD_DIR=${BUILD_DIR}
548 + python_foreach_impl python_module_compile
549 + fi
550 +}