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: Tue, 31 Oct 2017 17:09:21
Message-Id: 1509469736.6d1936a3ab5020aff5327928067b67e0dd31026d.amynka@gentoo
1 commit: 6d1936a3ab5020aff5327928067b67e0dd31026d
2 Author: Amy Liffey <amynka <AT> gentoo <DOT> org>
3 AuthorDate: Tue Oct 31 17:07:39 2017 +0000
4 Commit: Amy Liffey <amynka <AT> gentoo <DOT> org>
5 CommitDate: Tue Oct 31 17:08:56 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6d1936a3
7
8 media-libs/opencv: few cuda fixes
9
10 - Remove cuda from required_use for xfeatures2d
11 - fix header files have changed between ABIs
12
13 Suggested-by: malcolm.mielle <AT> protonmail.com
14 Submitted-by: Serge Gavrilov <serge <AT> pdmi.ras.ru>
15
16 Closes: https://bugs.gentoo.org/636030
17 Closes: https://bugs.gentoo.org/636008
18
19 Package-Manager: Portage-2.3.8, Repoman-2.3.1
20
21 media-libs/opencv/opencv-3.3.0-r3.ebuild | 454 +++++++++++++++++++++++++++++++
22 1 file changed, 454 insertions(+)
23
24 diff --git a/media-libs/opencv/opencv-3.3.0-r3.ebuild b/media-libs/opencv/opencv-3.3.0-r3.ebuild
25 new file mode 100644
26 index 00000000000..40b1dee93bc
27 --- /dev/null
28 +++ b/media-libs/opencv/opencv-3.3.0-r3.ebuild
29 @@ -0,0 +1,454 @@
30 +# Copyright 1999-2017 Gentoo Foundation
31 +# Distributed under the terms of the GNU General Public License v2
32 +
33 +EAPI=6
34 +PYTHON_COMPAT=( python{2_7,3_4,3_5} )
35 +
36 +inherit toolchain-funcs python-r1 java-pkg-opt-2 java-ant-2 cmake-multilib
37 +
38 +DESCRIPTION="A collection of algorithms and sample code for various computer vision problems"
39 +HOMEPAGE="http://opencv.org"
40 +
41 +SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
42 + https://dev.gentoo.org/~amynka/snap/imgcodecs-${P}.tar.gz
43 + contrib? ( https://github.com/${PN}/${PN}_contrib/archive/${PV}.tar.gz -> ${P}_contrib.tar.gz
44 + contrib_xfeatures2d? ( https://dev.gentoo.org/~amynka/snap/vgg_boostdesc-3.2.0.tar.gz ) ) "
45 +LICENSE="BSD"
46 +SLOT="0/3.3" # subslot = libopencv* soname version
47 +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux"
48 +IUSE="contrib cuda debug +eigen examples ffmpeg gdal gflags glog gphoto2 gstreamer gtk ieee1394 ipp jpeg jpeg2k lapack libav opencl openexr opengl openmp pch png +python qt5 tesseract testprograms threads tiff vaapi v4l vtk webp xine contrib_cvv contrib_hdf contrib_sfm contrib_xfeatures2d"
49 +
50 +# OpenGL needs gtk or Qt installed to activate, otherwise build system
51 +# will silently disable it without the user knowing, which defeats the
52 +# purpose of the opengl use flag.
53 +REQUIRED_USE="
54 + cuda? ( tesseract? ( opencl ) )
55 + gflags? ( contrib )
56 + glog? ( contrib )
57 + contrib_cvv? ( contrib qt5 )
58 + contrib_hdf? ( contrib )
59 + contrib_sfm? ( contrib eigen gflags glog )
60 + contrib_xfeatures2d? ( contrib )
61 + java? ( python )
62 + opengl? ( || ( gtk qt5 ) )
63 + python? ( ${PYTHON_REQUIRED_USE} )
64 + tesseract? ( contrib )"
65 +
66 +# The following logic is intrinsic in the build system, but we do not enforce
67 +# it on the useflags since this just blocks emerging pointlessly:
68 +# gtk? ( !qt5 )
69 +# openmp? ( !threads )
70 +
71 +RDEPEND="
72 + app-arch/bzip2[${MULTILIB_USEDEP}]
73 + dev-libs/protobuf:=[${MULTILIB_USEDEP}]
74 + sys-libs/zlib[${MULTILIB_USEDEP}]
75 + cuda? ( dev-util/nvidia-cuda-toolkit:0= )
76 + contrib_hdf? ( sci-libs/hdf5 )
77 + ffmpeg? (
78 + libav? ( media-video/libav:0=[${MULTILIB_USEDEP}] )
79 + !libav? ( media-video/ffmpeg:0=[${MULTILIB_USEDEP}] )
80 + )
81 + gdal? ( sci-libs/gdal:= )
82 + gflags? ( dev-cpp/gflags[${MULTILIB_USEDEP}] )
83 + glog? ( dev-cpp/glog[${MULTILIB_USEDEP}] )
84 + gphoto2? ( media-libs/libgphoto2[${MULTILIB_USEDEP}] )
85 + gstreamer? (
86 + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
87 + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
88 + )
89 + gtk? (
90 + dev-libs/glib:2[${MULTILIB_USEDEP}]
91 + x11-libs/gtk+:2[${MULTILIB_USEDEP}]
92 + opengl? ( x11-libs/gtkglext[${MULTILIB_USEDEP}] )
93 + )
94 + ieee1394? (
95 + media-libs/libdc1394[${MULTILIB_USEDEP}]
96 + sys-libs/libraw1394[${MULTILIB_USEDEP}]
97 + )
98 + ipp? ( sci-libs/ipp )
99 + java? ( >=virtual/jre-1.6:* )
100 + jpeg? ( virtual/jpeg:0[${MULTILIB_USEDEP}] )
101 + jpeg2k? ( media-libs/jasper:=[${MULTILIB_USEDEP}] )
102 + lapack? ( virtual/lapack )
103 + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
104 + openexr? ( media-libs/openexr[${MULTILIB_USEDEP}] )
105 + opengl? (
106 + virtual/opengl[${MULTILIB_USEDEP}]
107 + virtual/glu[${MULTILIB_USEDEP}]
108 + )
109 + png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
110 + python? ( ${PYTHON_DEPS} dev-python/numpy[${PYTHON_USEDEP}] )
111 + qt5? (
112 + dev-qt/qtgui:5
113 + dev-qt/qtwidgets:5
114 + dev-qt/qttest:5
115 + dev-qt/qtconcurrent:5
116 + opengl? ( dev-qt/qtopengl:5 )
117 + )
118 + tesseract? ( app-text/tesseract[opencl=] )
119 + threads? ( dev-cpp/tbb[${MULTILIB_USEDEP}] )
120 + tiff? ( media-libs/tiff:0[${MULTILIB_USEDEP}] )
121 + v4l? ( >=media-libs/libv4l-0.8.3[${MULTILIB_USEDEP}] )
122 + vtk? ( sci-libs/vtk[rendering] )
123 + webp? ( media-libs/libwebp[${MULTILIB_USEDEP}] )
124 + xine? ( media-libs/xine-lib )"
125 +DEPEND="${RDEPEND}
126 + virtual/pkgconfig[${MULTILIB_USEDEP}]
127 + eigen? ( dev-cpp/eigen:3 )
128 + java? ( >=virtual/jdk-1.6 )"
129 +
130 +MULTILIB_WRAPPED_HEADERS=(
131 + /usr/include/opencv2/cvconfig.h
132 + /usr/include/opencv2/opencv_modules.hpp
133 + # [contrib_cvv]
134 + /usr/include/opencv2/cvv.hpp
135 + /usr/include/opencv2/cvv/call_meta_data.hpp
136 + /usr/include/opencv2/cvv/cvv.hpp
137 + /usr/include/opencv2/cvv/debug_mode.hpp
138 + /usr/include/opencv2/cvv/dmatch.hpp
139 + /usr/include/opencv2/cvv/filter.hpp
140 + /usr/include/opencv2/cvv/final_show.hpp
141 + /usr/include/opencv2/cvv/show_image.hpp
142 + # [contrib_hdf]
143 + /usr/include/opencv2/hdf.hpp
144 + /usr/include/opencv2/hdf/hdf5.hpp
145 + # [vtk]
146 + /usr/include/opencv2/viz.hpp
147 + /usr/include/opencv2/viz/types.hpp
148 + /usr/include/opencv2/viz/viz3d.hpp
149 + /usr/include/opencv2/viz/vizcore.hpp
150 + /usr/include/opencv2/viz/widget_accessor.hpp
151 + /usr/include/opencv2/viz/widgets.hpp
152 + # [cudev]
153 + /usr/include/opencv2/cudaarithm.hpp
154 + /usr/include/opencv2/cudabgsegm.hpp
155 + /usr/include/opencv2/cudacodec.hpp
156 + /usr/include/opencv2/cudafeatures2d.hpp
157 + /usr/include/opencv2/cudafilters.hpp
158 + /usr/include/opencv2/cudaimgproc.hpp
159 + /usr/include/opencv2/cudalegacy.hpp
160 + /usr/include/opencv2/cudalegacy/NCVBroxOpticalFlow.hpp
161 + /usr/include/opencv2/cudalegacy/NCVHaarObjectDetection.hpp
162 + /usr/include/opencv2/cudalegacy/NCV.hpp
163 + /usr/include/opencv2/cudalegacy/NCVPyramid.hpp
164 + /usr/include/opencv2/cudalegacy/NPP_staging.hpp
165 + /usr/include/opencv2/cudaobjdetect.hpp
166 + /usr/include/opencv2/cudaoptflow.hpp
167 + /usr/include/opencv2/cudastereo.hpp
168 + /usr/include/opencv2/cudawarping.hpp
169 + /usr/include/opencv2/cudev/block/block.hpp
170 + /usr/include/opencv2/cudev/block/detail/reduce.hpp
171 + /usr/include/opencv2/cudev/block/detail/reduce_key_val.hpp
172 + /usr/include/opencv2/cudev/block/dynamic_smem.hpp
173 + /usr/include/opencv2/cudev/block/reduce.hpp
174 + /usr/include/opencv2/cudev/block/scan.hpp
175 + /usr/include/opencv2/cudev/block/vec_distance.hpp
176 + /usr/include/opencv2/cudev/common.hpp
177 + /usr/include/opencv2/cudev/expr/binary_func.hpp
178 + /usr/include/opencv2/cudev/expr/binary_op.hpp
179 + /usr/include/opencv2/cudev/expr/color.hpp
180 + /usr/include/opencv2/cudev/expr/deriv.hpp
181 + /usr/include/opencv2/cudev/expr/expr.hpp
182 + /usr/include/opencv2/cudev/expr/per_element_func.hpp
183 + /usr/include/opencv2/cudev/expr/reduction.hpp
184 + /usr/include/opencv2/cudev/expr/unary_func.hpp
185 + /usr/include/opencv2/cudev/expr/unary_op.hpp
186 + /usr/include/opencv2/cudev/expr/warping.hpp
187 + /usr/include/opencv2/cudev/functional/color_cvt.hpp
188 + /usr/include/opencv2/cudev/functional/detail/color_cvt.hpp
189 + /usr/include/opencv2/cudev/functional/functional.hpp
190 + /usr/include/opencv2/cudev/functional/tuple_adapter.hpp
191 + /usr/include/opencv2/cudev/grid/copy.hpp
192 + /usr/include/opencv2/cudev/grid/detail/copy.hpp
193 + /usr/include/opencv2/cudev/grid/detail/histogram.hpp
194 + /usr/include/opencv2/cudev/grid/detail/integral.hpp
195 + /usr/include/opencv2/cudev/grid/detail/minmaxloc.hpp
196 + /usr/include/opencv2/cudev/grid/detail/pyr_down.hpp
197 + /usr/include/opencv2/cudev/grid/detail/pyr_up.hpp
198 + /usr/include/opencv2/cudev/grid/detail/reduce.hpp
199 + /usr/include/opencv2/cudev/grid/detail/reduce_to_column.hpp
200 + /usr/include/opencv2/cudev/grid/detail/reduce_to_row.hpp
201 + /usr/include/opencv2/cudev/grid/detail/split_merge.hpp
202 + /usr/include/opencv2/cudev/grid/detail/transform.hpp
203 + /usr/include/opencv2/cudev/grid/detail/transpose.hpp
204 + /usr/include/opencv2/cudev/grid/histogram.hpp
205 + /usr/include/opencv2/cudev/grid/integral.hpp
206 + /usr/include/opencv2/cudev/grid/pyramids.hpp
207 + /usr/include/opencv2/cudev/grid/reduce.hpp
208 + /usr/include/opencv2/cudev/grid/reduce_to_vec.hpp
209 + /usr/include/opencv2/cudev/grid/split_merge.hpp
210 + /usr/include/opencv2/cudev/grid/transform.hpp
211 + /usr/include/opencv2/cudev/grid/transpose.hpp
212 + /usr/include/opencv2/cudev.hpp
213 + /usr/include/opencv2/cudev/ptr2d/constant.hpp
214 + /usr/include/opencv2/cudev/ptr2d/deriv.hpp
215 + /usr/include/opencv2/cudev/ptr2d/detail/gpumat.hpp
216 + /usr/include/opencv2/cudev/ptr2d/extrapolation.hpp
217 + /usr/include/opencv2/cudev/ptr2d/glob.hpp
218 + /usr/include/opencv2/cudev/ptr2d/gpumat.hpp
219 + /usr/include/opencv2/cudev/ptr2d/interpolation.hpp
220 + /usr/include/opencv2/cudev/ptr2d/lut.hpp
221 + /usr/include/opencv2/cudev/ptr2d/mask.hpp
222 + /usr/include/opencv2/cudev/ptr2d/remap.hpp
223 + /usr/include/opencv2/cudev/ptr2d/resize.hpp
224 + /usr/include/opencv2/cudev/ptr2d/texture.hpp
225 + /usr/include/opencv2/cudev/ptr2d/traits.hpp
226 + /usr/include/opencv2/cudev/ptr2d/transform.hpp
227 + /usr/include/opencv2/cudev/ptr2d/warping.hpp
228 + /usr/include/opencv2/cudev/ptr2d/zip.hpp
229 + /usr/include/opencv2/cudev/util/atomic.hpp
230 + /usr/include/opencv2/cudev/util/detail/tuple.hpp
231 + /usr/include/opencv2/cudev/util/detail/type_traits.hpp
232 + /usr/include/opencv2/cudev/util/limits.hpp
233 + /usr/include/opencv2/cudev/util/saturate_cast.hpp
234 + /usr/include/opencv2/cudev/util/simd_functions.hpp
235 + /usr/include/opencv2/cudev/util/tuple.hpp
236 + /usr/include/opencv2/cudev/util/type_traits.hpp
237 + /usr/include/opencv2/cudev/util/vec_math.hpp
238 + /usr/include/opencv2/cudev/util/vec_traits.hpp
239 + /usr/include/opencv2/cudev/warp/detail/reduce.hpp
240 + /usr/include/opencv2/cudev/warp/detail/reduce_key_val.hpp
241 + /usr/include/opencv2/cudev/warp/reduce.hpp
242 + /usr/include/opencv2/cudev/warp/scan.hpp
243 + /usr/include/opencv2/cudev/warp/shuffle.hpp
244 + /usr/include/opencv2/cudev/warp/warp.hpp
245 +)
246 +
247 +PATCHES=(
248 + "${FILESDIR}/${PN}-3.0.0-gles.patch"
249 + "${FILESDIR}/${PN}-3.1.0-java-magic.patch"
250 + "${FILESDIR}/${PN}-3.1.0-find-libraries-fix.patch"
251 + "${WORKDIR}/${P}-imgcodecs-gcc.patch" # bug 627958 and https://github.com/opencv/opencv/pull/9376
252 +)
253 +
254 +pkg_pretend() {
255 + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
256 +}
257 +
258 +pkg_setup() {
259 + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
260 + java-pkg-opt-2_pkg_setup
261 +}
262 +
263 +src_prepare() {
264 + cmake-utils_src_prepare
265 +
266 + # remove bundled stuff
267 + rm -rf 3rdparty || die "Removing 3rd party components failed"
268 + sed -e '/add_subdirectory(.*3rdparty.*)/ d' \
269 + -i CMakeLists.txt cmake/*cmake || die
270 +
271 + if use contrib && use contrib_xfeatures2d; then
272 + cd "${WORKDIR}/${PN}_contrib-${PV}" || die
273 + eapply "${FILESDIR}/${P}-contrib-xfeatures2d.patch"
274 + mv "${WORKDIR}"/*.i "${WORKDIR}/${PN}_contrib-${PV}"/modules/xfeatures2d/src/ || die
275 + fi
276 +
277 + java-pkg-opt-2_src_prepare
278 +
279 + # this really belongs in src_prepare() too
280 + JAVA_ANT_ENCODING="iso-8859-1"
281 + # set encoding so even this cmake build will pick it up.
282 + export ANT_OPTS+=" -Dfile.encoding=iso-8859-1"
283 + java-ant-2_src_configure
284 +}
285 +
286 +multilib_src_configure() {
287 + # please dont sort here, order is the same as in CMakeLists.txt
288 + GLOBALCMAKEARGS=(
289 + # Optional 3rd party components
290 + # ===================================================
291 + -DWITH_1394=$(usex ieee1394)
292 + # -DWITH_AVFOUNDATION=OFF # IOS
293 + -DWITH_VTK=$(multilib_native_usex vtk)
294 + -DWITH_EIGEN=$(usex eigen)
295 + -DWITH_VFW=OFF # Video windows support
296 + -DWITH_FFMPEG=$(usex ffmpeg)
297 + -DWITH_GSTREAMER=$(usex gstreamer)
298 + -DWITH_GSTREAMER_0_10=OFF # Don't want this
299 + -DWITH_GTK=$(usex gtk)
300 + -DWITH_GTK_2_X=$(usex gtk)
301 + -DWITH_IPP=$(multilib_native_usex ipp)
302 + -DWITH_JASPER=$(usex jpeg2k)
303 + -DWITH_JPEG=$(usex jpeg)
304 + -DWITH_WEBP=$(usex webp)
305 + -DWITH_OPENEXR=$(usex openexr)
306 + -DWITH_OPENGL=$(usex opengl)
307 + -DWITH_OPENVX=OFF
308 + -DWITH_OPENNI=OFF # Not packaged
309 + -DWITH_OPENNI2=OFF # Not packaged
310 + -DWITH_PNG=$(usex png)
311 + -DWITH_GDCM=OFF
312 + -DWITH_PVAPI=OFF
313 + -DWITH_GIGEAPI=OFF
314 + -DWITH_ARAVIS=OFF
315 + -DWITH_QT=$(multilib_native_usex qt5 5 OFF)
316 + -DWITH_WIN32UI=OFF # Windows only
317 + # -DWITH_QUICKTIME=OFF
318 + # -DWITH_QTKIT=OFF
319 + -DWITH_TBB=$(usex threads)
320 + -DWITH_OPENMP=$(usex openmp)
321 + -DWITH_CSTRIPES=OFF
322 + -DWITH_PTHREADS_PF=ON
323 + -DWITH_TIFF=$(usex tiff)
324 + -DWITH_UNICAP=OFF # Not packaged
325 + -DWITH_V4L=$(usex v4l)
326 + -DWITH_LIBV4L=$(usex v4l)
327 + -DWITH_DSHOW=ON # direct show supp
328 + -DWITH_MSMF=OFF
329 + -DWITH_XIMEA=OFF # Windows only
330 + -DWITH_XINE=$(multilib_native_usex xine)
331 + -DWITH_CLP=OFF
332 + -DWITH_OPENCL=$(usex opencl)
333 + -DWITH_OPENCL_SVM=OFF
334 + -DWITH_OPENCLAMDFFT=$(usex opencl)
335 + -DWITH_OPENCLAMDBLAS=$(usex opencl)
336 + -DWITH_DIRECTX=OFF
337 + -DWITH_INTELPERC=OFF
338 + -DWITH_JAVA=$(multilib_native_usex java) # Ant needed, no compile flag
339 + -DWITH_IPP_A=OFF
340 + -DWITH_MATLAB=OFF
341 + -DWITH_VA=$(usex vaapi)
342 + -DWITH_VA_INTEL=$(usex vaapi)
343 + -DWITH_GDAL=$(multilib_native_usex gdal)
344 + -DWITH_GPHOTO2=$(usex gphoto2)
345 + -DWITH_LAPACK=$(multilib_native_usex lapack)
346 + -DWITH_ITT=OFF # 3dparty libs itt_notify
347 + # ===================================================
348 + # CUDA build components: nvidia-cuda-toolkit takes care of GCC version
349 + # ===================================================
350 + -DWITH_CUDA=$(multilib_native_usex cuda)
351 + -DWITH_CUBLAS=$(multilib_native_usex cuda)
352 + -DWITH_CUFFT=$(multilib_native_usex cuda)
353 + -DWITH_NVCUVID=OFF
354 +# -DWITH_NVCUVID=$(usex cuda)
355 + -DCUDA_NPP_LIBRARY_ROOT_DIR=$(usex cuda "${EPREFIX}/opt/cuda" "")
356 + # ===================================================
357 + # OpenCV build components
358 + # ===================================================
359 + -DBUILD_SHARED_LIBS=ON
360 + -DBUILD_ANDROID_EXAMPLES=OFF
361 + -BUILD_opencv_apps=
362 + -DBUILD_DOCS=OFF # Doesn't install anyways.
363 + -DBUILD_EXAMPLES=$(multilib_native_usex examples)
364 + -DBUILD_PERF_TESTS=OFF
365 + -DBUILD_TESTS=$(multilib_native_usex testprograms)
366 + -DBUILD_WITH_DEBUG_INFO=$(usex debug)
367 + # -DBUILD_WITH_STATIC_CRT=OFF
368 + -DBUILD_WITH_DYNAMIC_IPP=OFF
369 + -DBUILD_FAT_JAVA_LIB=$(multilib_native_usex java)
370 + # -DBUILD_ANDROID_SERVICE=OFF
371 + -DBUILD_CUDA_STUBS=$(multilib_native_usex cuda)
372 + -DOPENCV_EXTRA_MODULES_PATH=$(usex contrib "${WORKDIR}/opencv_contrib-${PV}/modules" "")
373 + # ===================================================
374 + # OpenCV installation options
375 + # ===================================================
376 + -DINSTALL_CREATE_DISTRIB=OFF
377 + -DINSTALL_C_EXAMPLES=$(multilib_native_usex examples)
378 + -DINSTALL_TESTS=$(multilib_native_usex testprograms)
379 + -DINSTALL_PYTHON_EXAMPLES=$(multilib_native_usex examples)
380 + # -DINSTALL_ANDROID_EXAMPLES=OFF
381 + -DINSTALL_TO_MANGLED_PATHS=OFF
382 + # ===================================================
383 + # OpenCV build options
384 + # ===================================================
385 + -DENABLE_CCACHE=OFF
386 + -DENABLE_PRECOMPILED_HEADERS=$(usex pch)
387 + -DENABLE_SOLUTION_FOLDERS=OFF
388 + -DENABLE_PROFILING=OFF
389 + -DENABLE_COVERAGE=OFF
390 +
391 + -DHAVE_opencv_java=$(multilib_native_usex java YES NO)
392 + -DENABLE_NOISY_WARNINGS=OFF
393 + -DOPENCV_WARNINGS_ARE_ERRORS=OFF
394 + -DENABLE_IMPL_COLLECTION=OFF
395 + -DENABLE_INSTRUMENTATION=OFF
396 + -DGENERATE_ABI_DESCRIPTOR=OFF
397 + -DDOWNLOAD_EXTERNAL_TEST_DATA=OFF
398 + # ===================================================
399 + # things we want to be hard off or not yet figured out
400 + # ===================================================
401 + -DBUILD_PACKAGE=OFF
402 + # ===================================================
403 + # Not building protobuf but update files bug #631418
404 + # ===================================================
405 + -DBUILD_PROTOBUF=OFF
406 + -DPROTOBUF_UPDATE_FILES=ON
407 + # ===================================================
408 + # things we want to be hard enabled not worth useflag
409 + # ===================================================
410 + -DCMAKE_SKIP_RPATH=ON
411 + -DOPENCV_DOC_INSTALL_PATH=
412 + )
413 +
414 + # ===================================================
415 + # OpenCV Contrib Modules
416 + # ===================================================
417 + if use contrib; then
418 + GLOBALCMAKEARGS+=(
419 + -DBUILD_opencv_dnn=OFF
420 + -DBUILD_opencv_dnns_easily_fooled=OFF
421 + -DBUILD_opencv_xfeatures2d=$(usex contrib_xfeatures2d ON OFF)
422 + -DBUILD_opencv_cvv=$(usex contrib_cvv ON OFF)
423 + -DBUILD_opencv_hdf=$(multilib_native_usex contrib_hdf ON OFF)
424 + -DBUILD_opencv_sfm=$(usex contrib_sfm ON OFF)
425 + )
426 +
427 + if multilib_is_native_abi; then
428 + GLOBALCMAKEARGS+=(
429 + -DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=$(usex !tesseract)
430 + )
431 + else
432 + GLOBALCMAKEARGS+=(
433 + -DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=ON
434 + )
435 + fi
436 + fi
437 +
438 + # workaround for bug 413429
439 + tc-export CC CXX
440 +
441 + local mycmakeargs=( ${GLOBALCMAKEARGS[@]}
442 + -DPYTHON_EXECUTABLE=OFF
443 + -DINSTALL_PYTHON_EXAMPLES=OFF
444 + )
445 +
446 + cmake-utils_src_configure
447 +}
448 +
449 +python_module_compile() {
450 + local BUILD_DIR=${orig_BUILD_DIR}
451 + local mycmakeargs=( ${GLOBALCMAKEARGS[@]} )
452 +
453 + # Set all python variables to load the correct Gentoo paths
454 + mycmakeargs+=(
455 + # cheap trick: python_setup sets one of them as a symlink
456 + # to the correct interpreter, and the other to fail-wrapper
457 + -DPYTHON2_EXECUTABLE=$(type -P python2)
458 + -DPYTHON3_EXECUTABLE=$(type -P python3)
459 + -DINSTALL_PYTHON_EXAMPLES=$(usex examples)
460 + )
461 +
462 + # Regenerate cache file. Can't use rebuild_cache as it won't
463 + # have the Gentoo specific options.
464 + rm -rf CMakeCache.txt || die "rm failed"
465 + cmake-utils_src_configure
466 + cmake-utils_src_compile
467 + cmake-utils_src_install
468 +
469 + # Remove compiled binary so new version compiles
470 + # Avoid conflicts with new module builds as build system doesn't
471 + # really support it.
472 + rm -rf modules/python2 || die "rm failed"
473 +}
474 +
475 +multilib_src_install() {
476 + cmake-utils_src_install
477 +
478 + # Build and install the python modules for all targets
479 + if multilib_is_native_abi && use python; then
480 + local orig_BUILD_DIR=${BUILD_DIR}
481 + python_foreach_impl python_module_compile
482 + fi
483 +}