Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/opencv/
Date: Fri, 11 Aug 2017 13:21:11
Message-Id: 1502457642.d93b7bbbe54791dcca57ace7779d2eb4c101467f.mgorny@gentoo
1 commit: d93b7bbbe54791dcca57ace7779d2eb4c101467f
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Wed Aug 9 20:55:36 2017 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Fri Aug 11 13:20:42 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d93b7bbb
7
8 media-libs/opencv: Enable multilib builds for 3.1.0 & 3.2.0
9
10 media-libs/opencv/opencv-3.1.0-r8.ebuild | 294 +++++++++++++++++++++++++++
11 media-libs/opencv/opencv-3.2.0-r3.ebuild | 336 +++++++++++++++++++++++++++++++
12 2 files changed, 630 insertions(+)
13
14 diff --git a/media-libs/opencv/opencv-3.1.0-r8.ebuild b/media-libs/opencv/opencv-3.1.0-r8.ebuild
15 new file mode 100644
16 index 00000000000..a4f6ffd7f96
17 --- /dev/null
18 +++ b/media-libs/opencv/opencv-3.1.0-r8.ebuild
19 @@ -0,0 +1,294 @@
20 +# Copyright 1999-2017 Gentoo Foundation
21 +# Distributed under the terms of the GNU General Public License v2
22 +
23 +EAPI=6
24 +PYTHON_COMPAT=( python{2_7,3_4,3_5} )
25 +
26 +inherit toolchain-funcs python-r1 java-pkg-opt-2 java-ant-2 \
27 + cmake-multilib
28 +
29 +DESCRIPTION="A collection of algorithms and sample code for
30 + various computer vision problems"
31 +HOMEPAGE="http://opencv.org"
32 +
33 +BASE_URI="https://github.com/${PN}/${PN}"
34 +#commit from Thu, 02 Jun 2016
35 +CONTRIB_URI="75b3ea9f72fdb083140fc63855b7677d67748376"
36 +CONTRIB_P="${P}_contrib-${CONTRIB_URI:0:7}"
37 +
38 +SRC_URI="${BASE_URI}/archive/${PV}.tar.gz -> ${P}.tar.gz
39 + contrib? ( ${BASE_URI}_contrib/archive/${CONTRIB_URI}.tar.gz -> ${CONTRIB_P}.tar.gz )"
40 +LICENSE="BSD"
41 +SLOT="0/3.1" # subslot = libopencv* soname version
42 +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux"
43 +IUSE="contrib cuda +eigen examples ffmpeg gdal gflags glog gphoto2 gstreamer gtk \
44 + ieee1394 ipp jpeg jpeg2k libav opencl openexr opengl openmp pch png \
45 + +python qt5 tesseract testprograms threads tiff vaapi v4l vtk webp xine \
46 + contrib_cvv contrib_hdf contrib_sfm"
47 +
48 +# OpenGL needs gtk or Qt installed to activate, otherwise build system
49 +# will silently disable it without the user knowing, which defeats the
50 +# purpose of the opengl use flag.
51 +REQUIRED_USE="
52 + cuda? ( tesseract? ( opencl ) )
53 + gflags? ( contrib )
54 + glog? ( contrib )
55 + contrib_cvv? ( contrib qt5 )
56 + contrib_hdf? ( contrib )
57 + contrib_sfm? ( contrib eigen gflags glog )
58 + opengl? ( || ( gtk qt5 ) )
59 + python? ( ${PYTHON_REQUIRED_USE} )
60 + tesseract? ( contrib )"
61 +
62 +# The following logic is intrinsic in the build system, but we do not enforce
63 +# it on the useflags since this just blocks emerging pointlessly:
64 +# gtk? ( !qt5 )
65 +# openmp? ( !threads )
66 +
67 +RDEPEND="
68 + app-arch/bzip2[${MULTILIB_USEDEP}]
69 + sys-libs/zlib[${MULTILIB_USEDEP}]
70 + cuda? ( dev-util/nvidia-cuda-toolkit:0= )
71 + ffmpeg? (
72 + libav? ( media-video/libav:0=[${MULTILIB_USEDEP}] )
73 + !libav? ( media-video/ffmpeg:0=[${MULTILIB_USEDEP}] )
74 + )
75 + gdal? ( sci-libs/gdal )
76 + gflags? ( dev-cpp/gflags[${MULTILIB_USEDEP}] )
77 + glog? ( dev-cpp/glog[${MULTILIB_USEDEP}] )
78 + gphoto2? ( media-libs/libgphoto2[${MULTILIB_USEDEP}] )
79 + gstreamer? (
80 + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
81 + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
82 + )
83 + gtk? (
84 + dev-libs/glib:2[${MULTILIB_USEDEP}]
85 + x11-libs/gtk+:2[${MULTILIB_USEDEP}]
86 + opengl? ( x11-libs/gtkglext[${MULTILIB_USEDEP}] )
87 + )
88 + java? ( >=virtual/jre-1.6:* )
89 + jpeg? ( virtual/jpeg:0[${MULTILIB_USEDEP}] )
90 + jpeg2k? ( media-libs/jasper:=[${MULTILIB_USEDEP}] )
91 + ieee1394? (
92 + media-libs/libdc1394[${MULTILIB_USEDEP}]
93 + sys-libs/libraw1394[${MULTILIB_USEDEP}]
94 + )
95 + ipp? ( sci-libs/ipp )
96 + contrib_hdf? ( sci-libs/hdf5 )
97 + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
98 + openexr? ( media-libs/openexr[${MULTILIB_USEDEP}] )
99 + opengl? (
100 + virtual/opengl[${MULTILIB_USEDEP}]
101 + virtual/glu[${MULTILIB_USEDEP}]
102 + )
103 + png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
104 + python? ( ${PYTHON_DEPS} dev-python/numpy[${PYTHON_USEDEP}] )
105 + qt5? (
106 + dev-qt/qtgui:5
107 + dev-qt/qtwidgets:5
108 + dev-qt/qttest:5
109 + dev-qt/qtconcurrent:5
110 + opengl? ( dev-qt/qtopengl:5 )
111 + )
112 + tesseract? ( app-text/tesseract[opencl=] )
113 + threads? ( dev-cpp/tbb[${MULTILIB_USEDEP}] )
114 + tiff? ( media-libs/tiff:0[${MULTILIB_USEDEP}] )
115 + v4l? ( >=media-libs/libv4l-0.8.3[${MULTILIB_USEDEP}] )
116 + vtk? ( sci-libs/vtk[rendering] )
117 + webp? ( media-libs/libwebp[${MULTILIB_USEDEP}] )
118 + xine? ( media-libs/xine-lib )"
119 +DEPEND="${RDEPEND}
120 + virtual/pkgconfig[${MULTILIB_USEDEP}]
121 + eigen? ( dev-cpp/eigen:3 )
122 + java? ( >=virtual/jdk-1.6 )"
123 +
124 +PATCHES=(
125 + "${FILESDIR}"/${PN}-3.0.0-gles.patch
126 + "${FILESDIR}"/${P}-cmake-no-opengl.patch
127 + "${FILESDIR}"/${P}-git-autodetect.patch
128 + "${FILESDIR}"/${P}-java-magic.patch
129 + "${FILESDIR}"/${P}-remove-graphcut-for-cuda-8.patch
130 + "${FILESDIR}"/${P}-find-libraries-fix.patch
131 +)
132 +
133 +GLOBALCMAKEARGS=()
134 +
135 +pkg_pretend() {
136 + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
137 +}
138 +
139 +pkg_setup() {
140 + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
141 + java-pkg-opt-2_pkg_setup
142 +}
143 +
144 +src_prepare() {
145 + cmake-utils_src_prepare
146 +
147 + # remove bundled stuff
148 + rm -rf 3rdparty || die "Removing 3rd party components failed"
149 + sed -e '/add_subdirectory(.*3rdparty.*)/ d' \
150 + -i CMakeLists.txt cmake/*cmake || die
151 +
152 + java-pkg-opt-2_src_prepare
153 +
154 + # this really belongs in src_prepare() too
155 + JAVA_ANT_ENCODING="iso-8859-1"
156 + # set encoding so even this cmake build will pick it up.
157 + export ANT_OPTS+=" -Dfile.encoding=iso-8859-1"
158 + java-ant-2_src_configure
159 +}
160 +
161 +multilib_src_configure() {
162 + # please dont sort here, order is the same as in CMakeLists.txt
163 + GLOBALCMAKEARGS=(
164 + # Optional 3rd party components
165 + # ===================================================
166 + -DWITH_1394=$(usex ieee1394)
167 + -DWITH_AVFOUNDATION=OFF # IOS
168 + -DWITH_VTK=$(multilib_native_usex vtk)
169 + -DWITH_EIGEN=$(usex eigen)
170 + -DWITH_VFW=OFF # Video windows support
171 + -DWITH_FFMPEG=$(usex ffmpeg)
172 + -DWITH_GSTREAMER=$(usex gstreamer)
173 + -DWITH_GSTREAMER_0_10=OFF # Don't want this
174 + -DWITH_GTK=$(usex gtk)
175 + -DWITH_GTK_2_X=$(usex gtk)
176 + -DWITH_IPP=$(multilib_native_usex ipp)
177 + -DWITH_JASPER=$(usex jpeg2k)
178 + -DWITH_JPEG=$(usex jpeg)
179 + -DWITH_WEBP=$(usex webp)
180 + -DWITH_OPENEXR=$(usex openexr)
181 + -DWITH_OPENGL=$(usex opengl)
182 + -DWITH_OPENNI=OFF # Not packaged
183 + -DWITH_OPENNI2=OFF # Not packaged
184 + -DWITH_PNG=$(usex png)
185 + -DWITH_PVAPI=OFF # Not packaged
186 + -DWITH_GIGEAPI=OFF
187 + -DWITH_QT=$(multilib_native_usex qt5 5 OFF)
188 + -DWITH_WIN32UI=OFF # Windows only
189 + -DWITH_QUICKTIME=OFF
190 + -DWITH_TBB=$(usex threads)
191 + -DWITH_OPENMP=$(usex openmp)
192 + -DWITH_CSTRIPES=OFF
193 + -DWITH_PTHREADS_PF=ON
194 + -DWITH_TIFF=$(usex tiff)
195 + -DWITH_UNICAP=OFF # Not packaged
196 + -DWITH_V4L=$(usex v4l)
197 + -DWITH_LIBV4L=$(usex v4l)
198 + -DWITH_DSHOW=ON # direct show supp
199 + -DWITH_MSMF=OFF
200 + -DWITH_XIMEA=OFF # Windows only
201 + -DWITH_XINE=$(multilib_native_usex xine)
202 + -DWITH_CLP=OFF
203 + -DWITH_OPENCL=$(usex opencl)
204 + -DWITH_OPENCL_SVM=OFF
205 + -DWITH_OPENCLAMDFFT=$(usex opencl)
206 + -DWITH_OPENCLAMDBLAS=$(usex opencl)
207 + -DWITH_DIRECTX=OFF
208 + -DWITH_INTELPERC=OFF
209 + -DWITH_JAVA=$(multilib_native_usex java) # Ant needed, no compile flag
210 + -DWITH_IPP_A=OFF
211 + -DWITH_MATLAB=OFF
212 + -DWITH_VA=$(usex vaapi)
213 + -DWITH_VA_INTEL=$(usex vaapi)
214 + -DWITH_GDAL=$(multilib_native_usex gdal)
215 + -DWITH_GPHOTO2=$(usex gphoto2)
216 + # ===================================================
217 + # CUDA build components: nvidia-cuda-toolkit takes care of GCC version
218 + # ===================================================
219 + -DWITH_CUDA=$(multilib_native_usex cuda)
220 + -DWITH_CUBLAS=$(multilib_native_usex cuda)
221 + -DWITH_CUFFT=$(multilib_native_usex cuda)
222 + -DCUDA_NPP_LIBRARY_ROOT_DIR=$(usex cuda "${EPREFIX}/opt/cuda" "")
223 + # ===================================================
224 + # OpenCV build components
225 + # ===================================================
226 + -DBUILD_SHARED_LIBS=ON
227 + -DBUILD_ANDROID_EXAMPLES=OFF
228 + -DBUILD_DOCS=OFF # Doesn't install anyways.
229 + -DBUILD_EXAMPLES=$(multilib_native_usex examples)
230 + -DBUILD_PERF_TESTS=OFF
231 + -DBUILD_TESTS=$(multilib_native_usex testprograms)
232 + -DOPENCV_EXTRA_MODULES_PATH=$(usex contrib "${WORKDIR}/opencv_contrib-${CONTRIB_URI}/modules" "")
233 + # ===================================================
234 + # OpenCV installation options
235 + # ===================================================
236 + -DINSTALL_C_EXAMPLES=$(multilib_native_usex examples)
237 + -DINSTALL_TESTS=$(multilib_native_usex testprograms)
238 + # ===================================================
239 + # OpenCV build options
240 + # ===================================================
241 + -DENABLE_PRECOMPILED_HEADERS=$(usex pch)
242 + -DHAVE_opencv_java=$(multilib_native_usex java YES NO)
243 + # ===================================================
244 + # things we want to be hard off or not yet figured out
245 + # ===================================================
246 + -DBUILD_PACKAGE=OFF
247 + -DENABLE_PROFILING=OFF
248 + # ===================================================
249 + # things we want to be hard enabled not worth useflag
250 + # ===================================================
251 + -DCMAKE_SKIP_RPATH=ON
252 + -DOPENCV_DOC_INSTALL_PATH=
253 + )
254 +
255 + # ===================================================
256 + # OpenCV Contrib Modules
257 + # ===================================================
258 + if use contrib; then
259 + GLOBALCMAKEARGS+=(
260 + -DBUILD_opencv_dnn=OFF
261 + -DBUILD_opencv_dnns_easily_fooled=OFF
262 + -DBUILD_opencv_cvv=$(usex contrib_cvv ON OFF)
263 + -DBUILD_opencv_hdf=$(multilib_native_usex contrib_hdf ON OFF)
264 + -DBUILD_opencv_sfm=$(usex contrib_sfm ON OFF)
265 + )
266 + fi
267 +
268 + # workaround for bug 413429
269 + tc-export CC CXX
270 +
271 + local mycmakeargs=( ${GLOBALCMAKEARGS[@]}
272 + -DPYTHON_EXECUTABLE=OFF
273 + -DINSTALL_PYTHON_EXAMPLES=OFF
274 + )
275 +
276 + cmake-utils_src_configure
277 +}
278 +
279 +python_module_compile() {
280 + local BUILD_DIR=${orig_BUILD_DIR}
281 + local mycmakeargs=( ${GLOBALCMAKEARGS[@]} )
282 +
283 + # Set all python variables to load the correct Gentoo paths
284 + mycmakeargs+=(
285 + # upstream doesn't really care about 2/3, and if we don't
286 + # disable this, it builds python2 + python3 module for the same
287 + # version of Python 3 (i.e. two identical modules)...
288 + -DPYTHON3_EXECUTABLE=/bin/false
289 + -DINSTALL_PYTHON_EXAMPLES=$(usex examples)
290 + )
291 +
292 + # Regenerate cache file. Can't use rebuild_cache as it won't
293 + # have the Gentoo specific options.
294 + rm -rf CMakeCache.txt || die "rm failed"
295 + cmake-utils_src_configure
296 + cmake-utils_src_compile
297 + cmake-utils_src_install
298 +
299 + # Remove compiled binary so new version compiles
300 + # Avoid conflicts with new module builds as build system doesn't
301 + # really support it.
302 + rm -rf modules/python2 || die "rm failed"
303 +}
304 +
305 +multilib_src_install() {
306 + cmake-utils_src_install
307 +
308 + # Build and install the python modules for all targets
309 + if multilib_is_native_abi && use python; then
310 + local orig_BUILD_DIR=${BUILD_DIR}
311 + python_foreach_impl python_module_compile
312 + fi
313 +}
314
315 diff --git a/media-libs/opencv/opencv-3.2.0-r3.ebuild b/media-libs/opencv/opencv-3.2.0-r3.ebuild
316 new file mode 100644
317 index 00000000000..ea277d363e9
318 --- /dev/null
319 +++ b/media-libs/opencv/opencv-3.2.0-r3.ebuild
320 @@ -0,0 +1,336 @@
321 +# Copyright 1999-2017 Gentoo Foundation
322 +# Distributed under the terms of the GNU General Public License v2
323 +
324 +EAPI=6
325 +PYTHON_COMPAT=( python{2_7,3_4,3_5} )
326 +
327 +inherit toolchain-funcs python-r1 java-pkg-opt-2 java-ant-2 \
328 + cmake-multilib
329 +
330 +DESCRIPTION="A collection of algorithms and sample code for various computer vision problems"
331 +HOMEPAGE="http://opencv.org"
332 +
333 +SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
334 + contrib? ( https://github.com/${PN}/${PN}_contrib/archive/${PV}.tar.gz -> ${P}_contrib.tar.gz
335 + contrib_xfeatures2d? ( http://dev.gentoo.org/~amynka/snap/vgg_boostdesc-${PV}.tar.gz ) )"
336 +LICENSE="BSD"
337 +SLOT="0/3.2" # subslot = libopencv* soname version
338 +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux"
339 +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"
340 +
341 +# OpenGL needs gtk or Qt installed to activate, otherwise build system
342 +# will silently disable it without the user knowing, which defeats the
343 +# purpose of the opengl use flag.
344 +REQUIRED_USE="
345 + cuda? ( tesseract? ( opencl ) )
346 + gflags? ( contrib )
347 + glog? ( contrib )
348 + contrib_cvv? ( contrib qt5 )
349 + contrib_hdf? ( contrib )
350 + contrib_sfm? ( contrib eigen gflags glog )
351 + opengl? ( || ( gtk qt5 ) )
352 + python? ( ${PYTHON_REQUIRED_USE} )
353 + tesseract? ( contrib )"
354 +
355 +# The following logic is intrinsic in the build system, but we do not enforce
356 +# it on the useflags since this just blocks emerging pointlessly:
357 +# gtk? ( !qt5 )
358 +# openmp? ( !threads )
359 +
360 +RDEPEND="
361 + app-arch/bzip2[${MULTILIB_USEDEP}]
362 + sys-libs/zlib[${MULTILIB_USEDEP}]
363 + cuda? ( dev-util/nvidia-cuda-toolkit:0= )
364 + contrib_hdf? ( sci-libs/hdf5 )
365 + ffmpeg? (
366 + libav? ( media-video/libav:0=[${MULTILIB_USEDEP}] )
367 + !libav? ( media-video/ffmpeg:0=[${MULTILIB_USEDEP}] )
368 + )
369 + gdal? ( sci-libs/gdal:= )
370 + gflags? ( dev-cpp/gflags[${MULTILIB_USEDEP}] )
371 + glog? ( dev-cpp/glog[${MULTILIB_USEDEP}] )
372 + gphoto2? ( media-libs/libgphoto2[${MULTILIB_USEDEP}] )
373 + gstreamer? (
374 + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
375 + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
376 + )
377 + gtk? (
378 + dev-libs/glib:2[${MULTILIB_USEDEP}]
379 + x11-libs/gtk+:2[${MULTILIB_USEDEP}]
380 + opengl? ( x11-libs/gtkglext[${MULTILIB_USEDEP}] )
381 + )
382 + ieee1394? (
383 + media-libs/libdc1394[${MULTILIB_USEDEP}]
384 + sys-libs/libraw1394[${MULTILIB_USEDEP}]
385 + )
386 + ipp? ( sci-libs/ipp )
387 + java? ( >=virtual/jre-1.6:* )
388 + jpeg? ( virtual/jpeg:0[${MULTILIB_USEDEP}] )
389 + jpeg2k? ( media-libs/jasper:=[${MULTILIB_USEDEP}] )
390 + lapack? ( virtual/lapack )
391 + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
392 + openexr? ( media-libs/openexr[${MULTILIB_USEDEP}] )
393 + opengl? (
394 + virtual/opengl[${MULTILIB_USEDEP}]
395 + virtual/glu[${MULTILIB_USEDEP}]
396 + )
397 + png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
398 + python? ( ${PYTHON_DEPS} dev-python/numpy[${PYTHON_USEDEP}] )
399 + qt5? (
400 + dev-qt/qtgui:5
401 + dev-qt/qtwidgets:5
402 + dev-qt/qttest:5
403 + dev-qt/qtconcurrent:5
404 + opengl? ( dev-qt/qtopengl:5 )
405 + )
406 + tesseract? ( app-text/tesseract[opencl=] )
407 + threads? ( dev-cpp/tbb[${MULTILIB_USEDEP}] )
408 + tiff? ( media-libs/tiff:0[${MULTILIB_USEDEP}] )
409 + v4l? ( >=media-libs/libv4l-0.8.3[${MULTILIB_USEDEP}] )
410 + vtk? ( sci-libs/vtk[rendering] )
411 + webp? ( media-libs/libwebp[${MULTILIB_USEDEP}] )
412 + xine? ( media-libs/xine-lib )"
413 +DEPEND="${RDEPEND}
414 + virtual/pkgconfig[${MULTILIB_USEDEP}]
415 + eigen? ( dev-cpp/eigen:3 )
416 + java? ( >=virtual/jdk-1.6 )"
417 +
418 +PATCHES=(
419 + "${FILESDIR}/${PN}-3.0.0-gles.patch"
420 + "${FILESDIR}/${PN}-3.1.0-java-magic.patch"
421 + "${FILESDIR}/${PN}-3.1.0-find-libraries-fix.patch"
422 + "${FILESDIR}/${P}-vtk.patch"
423 + "${FILESDIR}/${P}-gcc-6.0.patch"
424 + "${FILESDIR}/${PN}-3.2.0-fix_ussage_cpu_instructions.patch"
425 + "${FILESDIR}/${P}-cpu-mno-sse2.patch"
426 +)
427 +
428 +pkg_pretend() {
429 + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
430 +}
431 +
432 +pkg_setup() {
433 + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
434 + java-pkg-opt-2_pkg_setup
435 +}
436 +
437 +src_prepare() {
438 + cmake-utils_src_prepare
439 +
440 + # remove bundled stuff
441 + rm -rf 3rdparty || die "Removing 3rd party components failed"
442 + sed -e '/add_subdirectory(.*3rdparty.*)/ d' \
443 + -i CMakeLists.txt cmake/*cmake || die
444 +
445 + if use contrib && use contrib_xfeatures2d; then
446 + cd "${WORKDIR}/${PN}_contrib-${PV}" || die
447 + eapply "${FILESDIR}/${P}-contrib_xfeatures2d-autodownload.patch"
448 + mv "${WORKDIR}"/*.i "${WORKDIR}/${PN}_contrib-${PV}"/modules/xfeatures2d/src/ || die
449 + fi
450 +
451 + java-pkg-opt-2_src_prepare
452 +
453 + # this really belongs in src_prepare() too
454 + JAVA_ANT_ENCODING="iso-8859-1"
455 + # set encoding so even this cmake build will pick it up.
456 + export ANT_OPTS+=" -Dfile.encoding=iso-8859-1"
457 + java-ant-2_src_configure
458 +}
459 +
460 +multilib_src_configure() {
461 + # please dont sort here, order is the same as in CMakeLists.txt
462 + GLOBALCMAKEARGS=(
463 + # Optional 3rd party components
464 + # ===================================================
465 + -DWITH_1394=$(usex ieee1394)
466 + # -DWITH_AVFOUNDATION=OFF # IOS
467 + -DWITH_VTK=$(multilib_native_usex vtk)
468 + -DWITH_EIGEN=$(usex eigen)
469 + -DWITH_VFW=OFF # Video windows support
470 + -DWITH_FFMPEG=$(usex ffmpeg)
471 + -DWITH_GSTREAMER=$(usex gstreamer)
472 + -DWITH_GSTREAMER_0_10=OFF # Don't want this
473 + -DWITH_GTK=$(usex gtk)
474 + -DWITH_GTK_2_X=$(usex gtk)
475 + -DWITH_IPP=$(multilib_native_usex ipp)
476 + -DWITH_JASPER=$(usex jpeg2k)
477 + -DWITH_JPEG=$(usex jpeg)
478 + -DWITH_WEBP=$(usex webp)
479 + -DWITH_OPENEXR=$(usex openexr)
480 + -DWITH_OPENGL=$(usex opengl)
481 + -DWITH_OPENVX=OFF
482 + -DWITH_OPENNI=OFF # Not packaged
483 + -DWITH_OPENNI2=OFF # Not packaged
484 + -DWITH_PNG=$(usex png)
485 + -DWITH_GDCM=OFF
486 + -DWITH_PVAPI=OFF
487 + -DWITH_GIGEAPI=OFF
488 + -DWITH_ARAVIS=OFF
489 + -DWITH_QT=$(multilib_native_usex qt5 5 OFF)
490 + -DWITH_WIN32UI=OFF # Windows only
491 + # -DWITH_QUICKTIME=OFF
492 + # -DWITH_QTKIT=OFF
493 + -DWITH_TBB=$(usex threads)
494 + -DWITH_OPENMP=$(usex openmp)
495 + -DWITH_CSTRIPES=OFF
496 + -DWITH_PTHREADS_PF=ON
497 + -DWITH_TIFF=$(usex tiff)
498 + -DWITH_UNICAP=OFF # Not packaged
499 + -DWITH_V4L=$(usex v4l)
500 + -DWITH_LIBV4L=$(usex v4l)
501 + -DWITH_DSHOW=ON # direct show supp
502 + -DWITH_MSMF=OFF
503 + -DWITH_XIMEA=OFF # Windows only
504 + -DWITH_XINE=$(multilib_native_usex xine)
505 + -DWITH_CLP=OFF
506 + -DWITH_OPENCL=$(usex opencl)
507 + -DWITH_OPENCL_SVM=OFF
508 + -DWITH_OPENCLAMDFFT=$(usex opencl)
509 + -DWITH_OPENCLAMDBLAS=$(usex opencl)
510 + -DWITH_DIRECTX=OFF
511 + -DWITH_INTELPERC=OFF
512 + -DWITH_JAVA=$(multilib_native_usex java) # Ant needed, no compile flag
513 + -DWITH_IPP_A=OFF
514 + -DWITH_MATLAB=OFF
515 + -DWITH_VA=$(usex vaapi)
516 + -DWITH_VA_INTEL=$(usex vaapi)
517 + -DWITH_GDAL=$(multilib_native_usex gdal)
518 + -DWITH_GPHOTO2=$(usex gphoto2)
519 + -DWITH_LAPACK=$(multilib_native_usex lapack)
520 + # ===================================================
521 + # CUDA build components: nvidia-cuda-toolkit takes care of GCC version
522 + # ===================================================
523 + -DWITH_CUDA=$(multilib_native_usex cuda)
524 + -DWITH_CUBLAS=$(multilib_native_usex cuda)
525 + -DWITH_CUFFT=$(multilib_native_usex cuda)
526 + -DWITH_NVCUVID=OFF
527 +# -DWITH_NVCUVID=$(usex cuda)
528 + -DCUDA_NPP_LIBRARY_ROOT_DIR=$(usex cuda "${EPREFIX}/opt/cuda" "")
529 + # ===================================================
530 + # OpenCV build components
531 + # ===================================================
532 + -DBUILD_SHARED_LIBS=ON
533 + -DBUILD_ANDROID_EXAMPLES=OFF
534 + -BUILD_opencv_apps=
535 + -DBUILD_DOCS=OFF # Doesn't install anyways.
536 + -DBUILD_EXAMPLES=$(multilib_native_usex examples)
537 + -DBUILD_PERF_TESTS=OFF
538 + -DBUILD_TESTS=$(multilib_native_usex testprograms)
539 + -DBUILD_WITH_DEBUG_INFO=$(usex debug)
540 + # -DBUILD_WITH_STATIC_CRT=OFF
541 + -DBUILD_WITH_DYNAMIC_IPP=OFF
542 + -DBUILD_FAT_JAVA_LIB=$(multilib_native_usex java)
543 + # -DBUILD_ANDROID_SERVICE=OFF
544 + -DBUILD_CUDA_STUBS=$(multilib_native_usex cuda)
545 + -DOPENCV_EXTRA_MODULES_PATH=$(usex contrib "${WORKDIR}/opencv_contrib-${PV}/modules" "")
546 + # ===================================================
547 + # OpenCV installation options
548 + # ===================================================
549 + -DINSTALL_CREATE_DISTRIB=OFF
550 + -DINSTALL_C_EXAMPLES=$(multilib_native_usex examples)
551 + -DINSTALL_TESTS=$(multilib_native_usex testprograms)
552 + -DINSTALL_PYTHON_EXAMPLES=$(multilib_native_usex examples)
553 + # -DINSTALL_ANDROID_EXAMPLES=OFF
554 + -DINSTALL_TO_MANGLED_PATHS=OFF
555 + # ===================================================
556 + # OpenCV build options
557 + # ===================================================
558 + -DENABLE_CCACHE=OFF
559 + -DENABLE_PRECOMPILED_HEADERS=$(usex pch)
560 + -DENABLE_SOLUTION_FOLDERS=OFF
561 + -DENABLE_PROFILING=OFF
562 + -DENABLE_COVERAGE=OFF
563 + -DENABLE_OMIT_FRAME_POINTER=OFF
564 + -DENABLE_FAST_MATH=OFF
565 + -DENABLE_SSE=OFF
566 + -DENABLE_SSE2=OFF
567 + -DENABLE_SSE3=OFF
568 + -DENABLE_SSSE3=OFF
569 + -DENABLE_SSE41=OFF
570 + -DENABLE_SSE42=OFF
571 + -DENABLE_POPCNT=OFF
572 + -DENABLE_AVX=OFF
573 + -DENABLE_AVX=OFF
574 + -DENABLE_AVX2=OFF
575 + -DENABLE_FMA3=OFF
576 + -DENABLE_NEON=OFF
577 +
578 + -DHAVE_opencv_java=$(multilib_native_usex java YES NO)
579 + -DENABLE_NOISY_WARNINGS=OFF
580 + -DOPENCV_WARNINGS_ARE_ERRORS=OFF
581 + -DENABLE_IMPL_COLLECTION=OFF
582 + -DENABLE_INSTRUMENTATION=OFF
583 + -DGENERATE_ABI_DESCRIPTOR=OFF
584 + -DDOWNLOAD_EXTERNAL_TEST_DATA=OFF
585 + # ===================================================
586 + # things we want to be hard off or not yet figured out
587 + # ===================================================
588 + -DBUILD_PACKAGE=OFF
589 + -DENABLE_PROFILING=OFF
590 + # ===================================================
591 + # things we want to be hard enabled not worth useflag
592 + # ===================================================
593 + -DCMAKE_SKIP_RPATH=ON
594 + -DOPENCV_DOC_INSTALL_PATH=
595 + )
596 +
597 + # ===================================================
598 + # OpenCV Contrib Modules
599 + # ===================================================
600 + if use contrib; then
601 + GLOBALCMAKEARGS+=(
602 + -DBUILD_opencv_dnn=OFF
603 + -DBUILD_opencv_dnns_easily_fooled=OFF
604 + -DBUILD_opencv_xfeatures2d=$(usex contrib_xfeatures2d ON OFF)
605 + -DBUILD_opencv_cvv=$(usex contrib_cvv ON OFF)
606 + -DBUILD_opencv_hdf=$(multilib_native_usex contrib_hdf ON OFF)
607 + -DBUILD_opencv_sfm=$(usex contrib_sfm ON OFF)
608 + )
609 + fi
610 +
611 + # workaround for bug 413429
612 + tc-export CC CXX
613 +
614 + local mycmakeargs=( ${GLOBALCMAKEARGS[@]}
615 + -DPYTHON_EXECUTABLE=OFF
616 + -DINSTALL_PYTHON_EXAMPLES=OFF
617 + )
618 +
619 + cmake-utils_src_configure
620 +}
621 +
622 +python_module_compile() {
623 + local BUILD_DIR=${orig_BUILD_DIR}
624 + local mycmakeargs=( ${GLOBALCMAKEARGS[@]} )
625 +
626 + # Set all python variables to load the correct Gentoo paths
627 + mycmakeargs+=(
628 + # cheap trick: python_setup sets one of them as a symlink
629 + # to the correct interpreter, and the other to fail-wrapper
630 + -DPYTHON2_EXECUTABLE=$(type -P python2)
631 + -DPYTHON3_EXECUTABLE=$(type -P python3)
632 + -DINSTALL_PYTHON_EXAMPLES=$(usex examples)
633 + )
634 +
635 + # Regenerate cache file. Can't use rebuild_cache as it won't
636 + # have the Gentoo specific options.
637 + rm -rf CMakeCache.txt || die "rm failed"
638 + cmake-utils_src_configure
639 + cmake-utils_src_compile
640 + cmake-utils_src_install
641 +
642 + # Remove compiled binary so new version compiles
643 + # Avoid conflicts with new module builds as build system doesn't
644 + # really support it.
645 + rm -rf modules/python2 || die "rm failed"
646 +}
647 +
648 +multilib_src_install() {
649 + cmake-utils_src_install
650 +
651 + # Build and install the python modules for all targets
652 + if multilib_is_native_abi && use python; then
653 + local orig_BUILD_DIR=${BUILD_DIR}
654 + python_foreach_impl python_module_compile
655 + fi
656 +}