Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/opencv/, profiles/base/, media-libs/opencv/files/
Date: Wed, 07 Oct 2020 17:55:15
Message-Id: 1602093300.83780dade6becfbff566eb2e26a0ece5b1284063.sam@gentoo
1 commit: 83780dade6becfbff566eb2e26a0ece5b1284063
2 Author: Ross Charles Campbell <rossbridger.cc <AT> gmail <DOT> com>
3 AuthorDate: Tue Sep 29 14:47:41 2020 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Wed Oct 7 17:55:00 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=83780dad
7
8 media-libs/opencv: version bump to 4.4.0
9
10 Currently the following improvements are made:
11 - Added python 3.{8,9} support.
12 - Added LTO (Link Time Optimization) support.
13 - Added OVIS (Ogre Vision Module) support.
14 - Renewed wrapped headers list for multilib.
15 - No longer need to download external files at compile time.
16
17 Closes: https://bugs.gentoo.org/745378
18 Closes: https://bugs.gentoo.org/744097
19 Closes: https://bugs.gentoo.org/718038
20 Closes: https://bugs.gentoo.org/702642
21 Closes: https://bugs.gentoo.org/703760
22 Package-Manager: Portage-3.0.8, Repoman-3.0.1
23 Signed-off-by: Ross Charles Campbell <rossbridger.cc <AT> gmail.com>
24 Closes: https://github.com/gentoo/gentoo/pull/17307
25 Signed-off-by: Sam James <sam <AT> gentoo.org>
26
27 media-libs/opencv/Manifest | 3 +
28 ...pencv-4.4.0-disable-native-cpuflag-detect.patch | 26 +
29 media-libs/opencv/metadata.xml | 3 +
30 media-libs/opencv/opencv-4.4.0.ebuild | 546 +++++++++++++++++++++
31 profiles/base/package.use.mask | 5 +
32 5 files changed, 583 insertions(+)
33
34 diff --git a/media-libs/opencv/Manifest b/media-libs/opencv/Manifest
35 index 3f4b2dfa9bb..3d877b29106 100644
36 --- a/media-libs/opencv/Manifest
37 +++ b/media-libs/opencv/Manifest
38 @@ -2,4 +2,7 @@ DIST opencv-3.4.0-face_landmark_model.tar.gz 63299830 BLAKE2B 58f08cd8c030ee1c8b
39 DIST opencv-3.4.0-res10_300x300-caffeemodel.tar.gz 10036604 BLAKE2B 2a2de48fc420f13e7be146ac88f311901c5b4e409c30e466152e33cae1f8afd87dcb6d758af447c268d90bd67989c8798cd80cab172b10499a6ad5224509dbdf SHA512 96fee9f447d5739bc01a5cab37c453cf7237457dfb5d2bf93ac37f8e5aa557ac222316f449cd58e37e856abe4d8e9d4a7820daaba32f0b22cbcde8e340287d4b
40 DIST opencv-4.1.2.tar.gz 87468598 BLAKE2B 9e0fbd8499f783cd1a2b5ffddf557aef424b0a446f71f826522ffd4526d04742e0c408b99810fe6b39753d40c475922d2e273732fdc0a0b4ee0bc56052a7a26c SHA512 d18d2cc35dc1c95c8870d35feb14459db27ebf6d09ff89a185918b1faff1b36dedacc18f268a6483570c404aca19b83ba627ce7af2265af7195a029cb766c09f
41 DIST opencv-4.1.2_contrib.tar.gz 60881937 BLAKE2B c461aaa62306b226bde9211e2d611dcf705510e32c8598458737eb09c510cfdb49c33e11f1a7c591090d8243590e915b779fdb55955550fe44dab7545e4cc308 SHA512 1e14f94f9228c5d6a598493eed265aab1d8a740d5bfa00639afb05287732220eb71f88bb374de47dcd440f4376486f9db0e8b338e90e5dc4f6af8d355340b622
42 +DIST opencv-4.4.0.tar.gz 88887103 BLAKE2B 87838e2c837074c445eeead11b76b0ab6f433873195169fe288dfb5e4844f27b13126ef9c0d973857693c77db82168826df698ee7f34bc10eec3bda869b30d32 SHA512 ce4bada7b57c1a00439eca02abcba262732d5eabfd26090f6f83642d747a9a1a7908230bcd01a2b999c509e0c43c8b0dcb2b93ac824518b79cffe533f22652bb
43 +DIST opencv-4.4.0_contrib.tar.gz 59968818 BLAKE2B 2e2c1bf776fef0b4d9f92406665adfbce96e6185a4b5fda82cfdd1e7899b3ca7e7615c4dce508082fcf94a10cfa160154ac0aa7a90ce2635f566a65176678dcd SHA512 d1a29a4a343f55fe2ae04966d2fc2d20765de719619bea68b84ee72f432777062727d8105b0aa168f359e468544b2ea930b1a4f8dc059e51de27d8af229c6b6b
44 +DIST opencv-4.4.0_extdep.tar.gz 65334871 BLAKE2B 89fa0083da428e986bb4287295bdbff626d0f84866377413649c1d7ca77338288141f22d2a3c0b64d6d0fc1db98f918c8b33a665274cee4c4aefb44359e4333d SHA512 7b758099ce4abef151051e3e9e1e45b73e4054669d3aa53051e4d4c5f43d9373c9bda5ecbce51f6b024562cb566bd1117505af29ab5f3c36a493f185111a3b4e
45 DIST vgg_boostdesc-3.2.0.tar.gz 1867770 BLAKE2B 1fa5b58e73b6fa56ecf8d19af22298f729942ee1369082e173445d09d3de767bf844bad3d2b462efc1199c392f37c88ba49a9996ba8bfd84b4abeba7de94db63 SHA512 4a046aedd639c8eb4b295b0f499e756deb66210ca083f0124c75531e540663367cb58f6d175f66c4713324177036cd89a8869bdab2de8d1736dafc7f00ef9f44
46
47 diff --git a/media-libs/opencv/files/opencv-4.4.0-disable-native-cpuflag-detect.patch b/media-libs/opencv/files/opencv-4.4.0-disable-native-cpuflag-detect.patch
48 new file mode 100644
49 index 00000000000..89ac1ff47ca
50 --- /dev/null
51 +++ b/media-libs/opencv/files/opencv-4.4.0-disable-native-cpuflag-detect.patch
52 @@ -0,0 +1,26 @@
53 + cmake/OpenCVCompilerOptimizations.cmake | 12 ++++++------
54 + 1 file changed, 6 insertions(+), 6 deletions(-)
55 +
56 +diff --git a/cmake/OpenCVCompilerOptimizations.cmake b/cmake/OpenCVCompilerOptimizations.cmake
57 +index 970dd28903..b56892bb12 100644
58 +--- a/cmake/OpenCVCompilerOptimizations.cmake
59 ++++ b/cmake/OpenCVCompilerOptimizations.cmake
60 +@@ -156,12 +156,12 @@ if(";${CPU_BASELINE};" MATCHES ";NATIVE;" OR ";${CPU_BASELINE};" MATCHES ";HOST;
61 + set(_add_native_flag ON)
62 + elseif(";${CPU_BASELINE};" MATCHES ";DETECT;")
63 + set(CPU_BASELINE_DETECT ON)
64 +-elseif(" ${CMAKE_CXX_FLAGS} " MATCHES " -march=native | -xHost | /QxHost ")
65 +- if(DEFINED CPU_BASELINE)
66 +- message(STATUS "CPU: Detected '-march=native' or '-xHost' compiler flag. Force CPU_BASELINE=DETECT.")
67 +- endif()
68 +- set(CPU_BASELINE "DETECT" CACHE STRING "${HELP_CPU_BASELINE}")
69 +- set(CPU_BASELINE_DETECT ON)
70 ++#elseif(" ${CMAKE_CXX_FLAGS} " MATCHES " -march=native | -xHost | /QxHost ")
71 ++# if(DEFINED CPU_BASELINE)
72 ++# message(STATUS "CPU: Detected '-march=native' or '-xHost' compiler flag. Force CPU_BASELINE=DETECT.")
73 ++# endif()
74 ++# set(CPU_BASELINE "DETECT" CACHE STRING "${HELP_CPU_BASELINE}")
75 ++# set(CPU_BASELINE_DETECT ON)
76 + endif()
77 +
78 + if(X86 OR X86_64)
79
80 diff --git a/media-libs/opencv/metadata.xml b/media-libs/opencv/metadata.xml
81 index 98984a7467b..ad1fde1b865 100644
82 --- a/media-libs/opencv/metadata.xml
83 +++ b/media-libs/opencv/metadata.xml
84 @@ -18,6 +18,7 @@ Face Recognition; Gesture Recognition; Motion Tracking, Ego Motion, Motion Under
85 <flag name="features2d">Enable features2d module</flag>
86 <flag name="gdal">Enable support for sci-libs/gdal library</flag>
87 <flag name="gtk3">Enable x11-libs/gtk+:3 support</flag>
88 + <flag restrict="&gt;=media-libs/opencv-4.4.0" name="lto">Build using Link Time Optimizations (LTO)</flag>
89 <flag restrict="&gt;=media-libs/opencv-4.1.2" name="opencvapps">Enable compilation with opencvapps</flag>
90 <flag restrict="&gt;=media-libs/opencv-3.1.0" name="gflags">Use Google's C++ argument parsing library</flag>
91 <flag restrict="&gt;=media-libs/opencv-3.1.0" name="glog">Use Google's C++ loggin library</flag>
92 @@ -26,6 +27,8 @@ Face Recognition; Gesture Recognition; Motion Tracking, Ego Motion, Motion Under
93 <flag restrict="&gt;=media-libs/opencv-3.3.0" name="contribdnn">DNN module contrib requires tiny dnn</flag>
94 <flag restrict="&gt;=media-libs/opencv-3.1.0" name="contribhdf">HDF module requires <pkg>sci-libs/hdf5</pkg></flag>
95 <flag restrict="&gt;=media-libs/opencv-3.1.0" name="contribsfm">SFM module requires eigen, gflags, and glog</flag>
96 + <flag restrict="&gt;=media-libs/opencv-4.4.0" name="contribfreetype">Enable Drawing UTF-8 strings with freetype/harfbuzz</flag>
97 + <flag restrict="&gt;=media-libs/opencv-4.4.0" name="contribovis">Enable Ogre vision module support</flag>
98 <flag restrict="&gt;=media-libs/opencv-3.4.0" name="dnnsamples">Download dnn caffeemodel samples</flag>
99 <flag name="opencl">Add support for OpenCL</flag>
100 <flag restrict="&gt;=media-libs/opencv-3.1.0" name="tesseract">Use Google's OCR Engine</flag>
101
102 diff --git a/media-libs/opencv/opencv-4.4.0.ebuild b/media-libs/opencv/opencv-4.4.0.ebuild
103 new file mode 100644
104 index 00000000000..783f97e3a22
105 --- /dev/null
106 +++ b/media-libs/opencv/opencv-4.4.0.ebuild
107 @@ -0,0 +1,546 @@
108 +# Copyright 1999-2020 Gentoo Authors
109 +# Distributed under the terms of the GNU General Public License v2
110 +
111 +EAPI=7
112 +
113 +PYTHON_COMPAT=( python3_{6,7,8,9} )
114 +CMAKE_ECLASS=cmake
115 +inherit java-pkg-opt-2 java-ant-2 cmake-multilib python-r1 toolchain-funcs
116 +
117 +DESCRIPTION="A collection of algorithms and sample code for various computer vision problems"
118 +HOMEPAGE="https://opencv.org"
119 +TINY_DNN_PV="1.0.0a3"
120 +SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
121 + dnnsamples? ( https://dev.gentoo.org/~amynka/snap/${PN}-3.4.0-res10_300x300-caffeemodel.tar.gz )
122 + download? ( https://github.com/rossbridger/opencv-extdep/archive/${PV}.tar.gz -> ${P}_extdep.tar.gz )
123 + contrib? (
124 + https://github.com/${PN}/${PN}_contrib/archive/${PV}.tar.gz -> ${P}_contrib.tar.gz
125 + contribdnn? ( https://dev.gentoo.org/~amynka/snap/${PN}-3.4.0-face_landmark_model.tar.gz )
126 + contribxfeatures2d? ( https://dev.gentoo.org/~amynka/snap/vgg_boostdesc-3.2.0.tar.gz )
127 + )"
128 +
129 +LICENSE="BSD"
130 +SLOT="0/${PV}" # subslot = libopencv* soname version
131 +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
132 +IUSE="contrib contribcvv contribdnn contribfreetype contribhdf contribovis contribsfm contribxfeatures2d cuda debug dnnsamples -download +eigen examples +features2d ffmpeg gdal gflags glog gphoto2 gstreamer gtk3 ieee1394 jpeg jpeg2k lapack lto opencl openexr opengl openmp opencvapps pch png +python qt5 tesseract testprograms threads tiff vaapi v4l vtk webp xine"
133 +
134 +# The following lines are shamelessly stolen from ffmpeg-9999.ebuild with modifications
135 +ARM_CPU_FEATURES=(
136 + cpu_flags_arm_neon:NEON
137 + cpu_flags_arm_vfpv3:VFPV3
138 +)
139 +PPC_CPU_FEATURES=(
140 + cpu_flags_ppc_vsx:VSX
141 + cpu_flags_ppc_vsx3:VSX3
142 +)
143 +X86_CPU_FEATURES_RAW=(
144 + avx:AVX
145 + avx2:AVX2
146 + avx512f:AVX_512F
147 + f16c:FP16
148 + fma3:FMA3
149 + popcnt:POPCNT
150 + sse:SSE
151 + sse2:SSE2
152 + sse3:SSE3
153 + ssse3:SSSE3
154 + sse4_1:SSE4_1
155 + sse4_2:SSE4_2
156 +)
157 +X86_CPU_FEATURES=( ${X86_CPU_FEATURES_RAW[@]/#/cpu_flags_x86_} )
158 +CPU_FEATURES_MAP=(
159 + ${ARM_CPU_FEATURES[@]}
160 + ${PPC_CPU_FEATURES[@]}
161 + ${X86_CPU_FEATURES[@]}
162 +)
163 +IUSE="${IUSE} ${CPU_FEATURES_MAP[@]%:*}"
164 +
165 +# OpenGL needs gtk or Qt installed to activate, otherwise build system
166 +# will silently disable it Wwithout the user knowing, which defeats the
167 +# purpose of the opengl use flag.
168 +REQUIRED_USE="
169 + cuda? ( tesseract? ( opencl ) )
170 + dnnsamples? ( examples )
171 + gflags? ( contrib )
172 + glog? ( contrib )
173 + contribcvv? ( contrib qt5 )
174 + contribdnn? ( contrib )
175 + contribfreetype? ( contrib )
176 + contribhdf? ( contrib )
177 + contribovis? ( contrib )
178 + contribsfm? ( contrib eigen gflags glog )
179 + contribxfeatures2d? ( contrib download )
180 + java? ( python )
181 + opengl? ( qt5 )
182 + python? ( ${PYTHON_REQUIRED_USE} )
183 + tesseract? ( contrib )
184 + ?? ( gtk3 qt5 )"
185 +
186 +# The following logic is intrinsic in the build system, but we do not enforce
187 +# it on the useflags since this just blocks emerging pointlessly:
188 +# openmp? ( !threads )
189 +
190 +RDEPEND="
191 + app-arch/bzip2[${MULTILIB_USEDEP}]
192 + dev-libs/protobuf:=[${MULTILIB_USEDEP}]
193 + sys-libs/zlib[${MULTILIB_USEDEP}]
194 + cuda? ( dev-util/nvidia-cuda-toolkit:0= )
195 + contribhdf? ( sci-libs/hdf5:= )
196 + contribfreetype? (
197 + media-libs/freetype:2[${MULTILIB_USEDEP}]
198 + media-libs/harfbuzz:=[${MULTILIB_USEDEP}]
199 + )
200 + contribovis? ( dev-games/ogre:0/1.12 )
201 + ffmpeg? ( media-video/ffmpeg:0=[${MULTILIB_USEDEP}] )
202 + gdal? ( sci-libs/gdal:= )
203 + gflags? ( dev-cpp/gflags[${MULTILIB_USEDEP}] )
204 + glog? ( dev-cpp/glog[${MULTILIB_USEDEP}] )
205 + gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
206 + gstreamer? (
207 + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
208 + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
209 + )
210 + gtk3? (
211 + dev-libs/glib:2[${MULTILIB_USEDEP}]
212 + x11-libs/gtk+:3[${MULTILIB_USEDEP}]
213 + )
214 + ieee1394? (
215 + media-libs/libdc1394:=[${MULTILIB_USEDEP}]
216 + sys-libs/libraw1394[${MULTILIB_USEDEP}]
217 + )
218 + java? ( >=virtual/jre-1.6:* )
219 + jpeg? ( virtual/jpeg:0[${MULTILIB_USEDEP}] )
220 + lapack? ( virtual/lapack )
221 + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
222 + openexr? ( media-libs/openexr[${MULTILIB_USEDEP}] )
223 + opengl? (
224 + virtual/opengl[${MULTILIB_USEDEP}]
225 + virtual/glu[${MULTILIB_USEDEP}]
226 + )
227 + png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
228 + python? (
229 + ${PYTHON_DEPS}
230 + dev-python/numpy[${PYTHON_USEDEP}]
231 + )
232 + qt5? (
233 + dev-qt/qtgui:5=
234 + dev-qt/qtwidgets:5=
235 + dev-qt/qttest:5=
236 + dev-qt/qtconcurrent:5=
237 + opengl? ( dev-qt/qtopengl:5= )
238 + )
239 + tesseract? ( app-text/tesseract[opencl=,${MULTILIB_USEDEP}] )
240 + threads? ( dev-cpp/tbb[${MULTILIB_USEDEP}] )
241 + tiff? ( media-libs/tiff:0[${MULTILIB_USEDEP}] )
242 + v4l? ( >=media-libs/libv4l-0.8.3[${MULTILIB_USEDEP}] )
243 + vaapi? ( x11-libs/libva[${MULTILIB_USEDEP}] )
244 + vtk? ( sci-libs/vtk[rendering] )
245 + webp? ( media-libs/libwebp:=[${MULTILIB_USEDEP}] )
246 + xine? ( media-libs/xine-lib )"
247 +DEPEND="${RDEPEND}
248 + eigen? ( dev-cpp/eigen:3 )
249 + java? ( >=virtual/jdk-1.6 )"
250 +BDEPEND="virtual/pkgconfig"
251 +
252 +MULTILIB_WRAPPED_HEADERS=(
253 + # [opencv4]
254 + /usr/include/opencv4/opencv2/cvconfig.h
255 + /usr/include/opencv4/opencv2/opencv_modules.hpp
256 + # [cudev]
257 + /usr/include/opencv4/opencv2/cudaarithm.hpp
258 + /usr/include/opencv4/opencv2/cudabgsegm.hpp
259 + /usr/include/opencv4/opencv2/cudacodec.hpp
260 + /usr/include/opencv4/opencv2/cudafeatures2d.hpp
261 + /usr/include/opencv4/opencv2/cudafilters.hpp
262 + /usr/include/opencv4/opencv2/cudaimgproc.hpp
263 + /usr/include/opencv4/opencv2/cudalegacy.hpp
264 + /usr/include/opencv4/opencv2/cudalegacy/NCVBroxOpticalFlow.hpp
265 + /usr/include/opencv4/opencv2/cudalegacy/NCVHaarObjectDetection.hpp
266 + /usr/include/opencv4/opencv2/cudalegacy/NCV.hpp
267 + /usr/include/opencv4/opencv2/cudalegacy/NCVPyramid.hpp
268 + /usr/include/opencv4/opencv2/cudalegacy/NPP_staging.hpp
269 + /usr/include/opencv4/opencv2/cudaobjdetect.hpp
270 + /usr/include/opencv4/opencv2/cudaoptflow.hpp
271 + /usr/include/opencv4/opencv2/cudastereo.hpp
272 + /usr/include/opencv4/opencv2/cudawarping.hpp
273 + /usr/include/opencv4/opencv2/cudev/block/block.hpp
274 + /usr/include/opencv4/opencv2/cudev/block/detail/reduce.hpp
275 + /usr/include/opencv4/opencv2/cudev/block/detail/reduce_key_val.hpp
276 + /usr/include/opencv4/opencv2/cudev/block/dynamic_smem.hpp
277 + /usr/include/opencv4/opencv2/cudev/block/reduce.hpp
278 + /usr/include/opencv4/opencv2/cudev/block/scan.hpp
279 + /usr/include/opencv4/opencv2/cudev/block/vec_distance.hpp
280 + /usr/include/opencv4/opencv2/cudev/common.hpp
281 + /usr/include/opencv4/opencv2/cudev/expr/binary_func.hpp
282 + /usr/include/opencv4/opencv2/cudev/expr/binary_op.hpp
283 + /usr/include/opencv4/opencv2/cudev/expr/color.hpp
284 + /usr/include/opencv4/opencv2/cudev/expr/deriv.hpp
285 + /usr/include/opencv4/opencv2/cudev/expr/expr.hpp
286 + /usr/include/opencv4/opencv2/cudev/expr/per_element_func.hpp
287 + /usr/include/opencv4/opencv2/cudev/expr/reduction.hpp
288 + /usr/include/opencv4/opencv2/cudev/expr/unary_func.hpp
289 + /usr/include/opencv4/opencv2/cudev/expr/unary_op.hpp
290 + /usr/include/opencv4/opencv2/cudev/expr/warping.hpp
291 + /usr/include/opencv4/opencv2/cudev/functional/color_cvt.hpp
292 + /usr/include/opencv4/opencv2/cudev/functional/detail/color_cvt.hpp
293 + /usr/include/opencv4/opencv2/cudev/functional/functional.hpp
294 + /usr/include/opencv4/opencv2/cudev/functional/tuple_adapter.hpp
295 + /usr/include/opencv4/opencv2/cudev/grid/copy.hpp
296 + /usr/include/opencv4/opencv2/cudev/grid/detail/copy.hpp
297 + /usr/include/opencv4/opencv2/cudev/grid/detail/histogram.hpp
298 + /usr/include/opencv4/opencv2/cudev/grid/detail/integral.hpp
299 + /usr/include/opencv4/opencv2/cudev/grid/detail/minmaxloc.hpp
300 + /usr/include/opencv4/opencv2/cudev/grid/detail/pyr_down.hpp
301 + /usr/include/opencv4/opencv2/cudev/grid/detail/pyr_up.hpp
302 + /usr/include/opencv4/opencv2/cudev/grid/detail/reduce.hpp
303 + /usr/include/opencv4/opencv2/cudev/grid/detail/reduce_to_column.hpp
304 + /usr/include/opencv4/opencv2/cudev/grid/detail/reduce_to_row.hpp
305 + /usr/include/opencv4/opencv2/cudev/grid/detail/split_merge.hpp
306 + /usr/include/opencv4/opencv2/cudev/grid/detail/transform.hpp
307 + /usr/include/opencv4/opencv2/cudev/grid/detail/transpose.hpp
308 + /usr/include/opencv4/opencv2/cudev/grid/histogram.hpp
309 + /usr/include/opencv4/opencv2/cudev/grid/integral.hpp
310 + /usr/include/opencv4/opencv2/cudev/grid/pyramids.hpp
311 + /usr/include/opencv4/opencv2/cudev/grid/reduce.hpp
312 + /usr/include/opencv4/opencv2/cudev/grid/reduce_to_vec.hpp
313 + /usr/include/opencv4/opencv2/cudev/grid/split_merge.hpp
314 + /usr/include/opencv4/opencv2/cudev/grid/transform.hpp
315 + /usr/include/opencv4/opencv2/cudev/grid/transpose.hpp
316 + /usr/include/opencv4/opencv2/cudev.hpp
317 + /usr/include/opencv4/opencv2/cudev/ptr2d/constant.hpp
318 + /usr/include/opencv4/opencv2/cudev/ptr2d/deriv.hpp
319 + /usr/include/opencv4/opencv2/cudev/ptr2d/detail/gpumat.hpp
320 + /usr/include/opencv4/opencv2/cudev/ptr2d/extrapolation.hpp
321 + /usr/include/opencv4/opencv2/cudev/ptr2d/glob.hpp
322 + /usr/include/opencv4/opencv2/cudev/ptr2d/gpumat.hpp
323 + /usr/include/opencv4/opencv2/cudev/ptr2d/interpolation.hpp
324 + /usr/include/opencv4/opencv2/cudev/ptr2d/lut.hpp
325 + /usr/include/opencv4/opencv2/cudev/ptr2d/mask.hpp
326 + /usr/include/opencv4/opencv2/cudev/ptr2d/remap.hpp
327 + /usr/include/opencv4/opencv2/cudev/ptr2d/resize.hpp
328 + /usr/include/opencv4/opencv2/cudev/ptr2d/texture.hpp
329 + /usr/include/opencv4/opencv2/cudev/ptr2d/traits.hpp
330 + /usr/include/opencv4/opencv2/cudev/ptr2d/transform.hpp
331 + /usr/include/opencv4/opencv2/cudev/ptr2d/warping.hpp
332 + /usr/include/opencv4/opencv2/cudev/ptr2d/zip.hpp
333 + /usr/include/opencv4/opencv2/cudev/util/atomic.hpp
334 + /usr/include/opencv4/opencv2/cudev/util/detail/tuple.hpp
335 + /usr/include/opencv4/opencv2/cudev/util/detail/type_traits.hpp
336 + /usr/include/opencv4/opencv2/cudev/util/limits.hpp
337 + /usr/include/opencv4/opencv2/cudev/util/saturate_cast.hpp
338 + /usr/include/opencv4/opencv2/cudev/util/simd_functions.hpp
339 + /usr/include/opencv4/opencv2/cudev/util/tuple.hpp
340 + /usr/include/opencv4/opencv2/cudev/util/type_traits.hpp
341 + /usr/include/opencv4/opencv2/cudev/util/vec_math.hpp
342 + /usr/include/opencv4/opencv2/cudev/util/vec_traits.hpp
343 + /usr/include/opencv4/opencv2/cudev/warp/detail/reduce.hpp
344 + /usr/include/opencv4/opencv2/cudev/warp/detail/reduce_key_val.hpp
345 + /usr/include/opencv4/opencv2/cudev/warp/reduce.hpp
346 + /usr/include/opencv4/opencv2/cudev/warp/scan.hpp
347 + /usr/include/opencv4/opencv2/cudev/warp/shuffle.hpp
348 + /usr/include/opencv4/opencv2/cudev/warp/warp.hpp
349 + # [contrib_cvv]
350 + /usr/include/opencv4/opencv2/cvv/call_meta_data.hpp
351 + /usr/include/opencv4/opencv2/cvv/cvv.hpp
352 + /usr/include/opencv4/opencv2/cvv/debug_mode.hpp
353 + /usr/include/opencv4/opencv2/cvv/dmatch.hpp
354 + /usr/include/opencv4/opencv2/cvv/filter.hpp
355 + /usr/include/opencv4/opencv2/cvv/final_show.hpp
356 + /usr/include/opencv4/opencv2/cvv.hpp
357 + /usr/include/opencv4/opencv2/cvv/show_image.hpp
358 + # [contrib_hdf]
359 + /usr/include/opencv4/opencv2/hdf/hdf5.hpp
360 + /usr/include/opencv4/opencv2/hdf.hpp
361 + # [contrib_ovis]
362 + /usr/include/opencv4/opencv2/ovis.hpp
363 + # [vtk]
364 + /usr/include/opencv4/opencv2/viz.hpp
365 + /usr/include/opencv4/opencv2/viz/types.hpp
366 + /usr/include/opencv4/opencv2/viz/viz3d.hpp
367 + /usr/include/opencv4/opencv2/viz/vizcore.hpp
368 + /usr/include/opencv4/opencv2/viz/widget_accessor.hpp
369 + /usr/include/opencv4/opencv2/viz/widgets.hpp
370 +)
371 +
372 +PATCHES=(
373 + "${FILESDIR}"/${PN}-3.4.0-disable-download.patch
374 + "${FILESDIR}"/${PN}-3.4.1-cuda-add-relaxed-constexpr.patch
375 + "${FILESDIR}"/${PN}-4.1.2-opencl-license.patch
376 + "${FILESDIR}"/${PN}-4.4.0-disable-native-cpuflag-detect.patch
377 +)
378 +
379 +pkg_pretend() {
380 + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
381 +}
382 +
383 +pkg_setup() {
384 + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
385 + java-pkg-opt-2_pkg_setup
386 +}
387 +
388 +src_prepare() {
389 + cmake_src_prepare
390 +
391 + # remove bundled stuff
392 + rm -rf 3rdparty || die "Removing 3rd party components failed"
393 + sed -e '/add_subdirectory(.*3rdparty.*)/ d' \
394 + -i CMakeLists.txt cmake/*cmake || die
395 +
396 + if use dnnsamples; then
397 + mv "${WORKDIR}/res10_300x300_ssd_iter_140000.caffemodel" "${WORKDIR}/${P}/samples/dnn/" || die
398 + fi
399 +
400 + if use contrib; then
401 + cd "${WORKDIR}/${PN}_contrib-${PV}" || die
402 + if use contribxfeatures2d; then
403 + mv "${WORKDIR}"/*.i "${WORKDIR}/${PN}_contrib-${PV}"/modules/xfeatures2d/src/ || die
404 + fi
405 + fi
406 +
407 + if use download; then
408 + mv "${WORKDIR}/${PN}-extdep-${PV}" "${WORKDIR}/${P}/.cache/" || die
409 + fi
410 +
411 + java-pkg-opt-2_src_prepare
412 +
413 + # this really belongs in src_prepare() too
414 + JAVA_ANT_ENCODING="iso-8859-1"
415 + # set encoding so even this cmake build will pick it up.
416 + export ANT_OPTS+=" -Dfile.encoding=iso-8859-1"
417 + java-ant-2_src_configure
418 +}
419 +
420 +multilib_src_configure() {
421 + # please dont sort here, order is the same as in CMakeLists.txt
422 + GLOBALCMAKEARGS=(
423 + # Optional 3rd party components
424 + # ===================================================
425 + -DENABLE_DOWNLOAD=$(usex download)
426 + -DWITH_QUIRC=OFF # Do not have dependencies
427 + -DWITH_1394=$(usex ieee1394)
428 + # -DWITH_AVFOUNDATION=OFF # IOS
429 + -DWITH_VTK=$(multilib_native_usex vtk)
430 + -DWITH_EIGEN=$(usex eigen)
431 + -DWITH_VFW=OFF # Video windows support
432 + -DWITH_FFMPEG=$(usex ffmpeg)
433 + -DWITH_GSTREAMER=$(usex gstreamer)
434 + -DWITH_GSTREAMER_0_10=OFF # Don't want this
435 + -DWITH_GTK=$(usex gtk3)
436 + -DWITH_GTK_2_X=OFF # only want gtk3 nowadays
437 + -DWITH_IPP=OFF
438 + -DWITH_JASPER=OFF
439 + -DWITH_JPEG=$(usex jpeg)
440 + -DWITH_WEBP=$(usex webp)
441 + -DWITH_OPENEXR=$(usex openexr)
442 + -DWITH_OPENGL=$(usex opengl)
443 + -DWITH_OPENVX=OFF
444 + -DWITH_OPENNI=OFF # Not packaged
445 + -DWITH_OPENNI2=OFF # Not packaged
446 + -DWITH_PNG=$(usex png)
447 + -DWITH_GDCM=OFF
448 + -DWITH_PVAPI=OFF
449 + -DWITH_GIGEAPI=OFF
450 + -DWITH_ARAVIS=OFF
451 + -DWITH_QT=$(multilib_native_usex qt5 5 OFF)
452 + -DWITH_WIN32UI=OFF # Windows only
453 + # -DWITH_QUICKTIME=OFF
454 + # -DWITH_QTKIT=OFF
455 + -DWITH_TBB=$(usex threads)
456 + -DWITH_OPENMP=$(usex openmp)
457 + -DWITH_CSTRIPES=OFF
458 + -DWITH_PTHREADS_PF=ON
459 + -DWITH_TIFF=$(usex tiff)
460 + -DWITH_UNICAP=OFF # Not packaged
461 + -DWITH_V4L=$(usex v4l)
462 + -DWITH_LIBV4L=$(usex v4l)
463 + # -DWITH_DSHOW=ON # direct show supp
464 + -DWITH_MSMF=OFF
465 + -DWITH_XIMEA=OFF # Windows only
466 + -DWITH_XINE=$(multilib_native_usex xine)
467 + -DWITH_CLP=OFF
468 + -DWITH_OPENCL=$(usex opencl)
469 + -DWITH_OPENCL_SVM=OFF
470 + -DWITH_OPENCLAMDFFT=$(usex opencl)
471 + -DWITH_OPENCLAMDBLAS=$(usex opencl)
472 + -DWITH_DIRECTX=OFF
473 + -DWITH_INTELPERC=OFF
474 + -DWITH_IPP_A=OFF
475 + -DWITH_MATLAB=OFF
476 + -DWITH_VA=$(usex vaapi)
477 + -DWITH_VA_INTEL=$(usex vaapi)
478 + -DWITH_GDAL=$(multilib_native_usex gdal)
479 + -DWITH_GPHOTO2=$(usex gphoto2)
480 + -DWITH_LAPACK=$(multilib_native_usex lapack)
481 + -DWITH_ITT=OFF # 3dparty libs itt_notify
482 + # ===================================================
483 + # CUDA build components: nvidia-cuda-toolkit takes care of GCC version
484 + # ===================================================
485 + -DWITH_CUDA=$(multilib_native_usex cuda)
486 + -DWITH_CUBLAS=$(multilib_native_usex cuda)
487 + -DWITH_CUFFT=$(multilib_native_usex cuda)
488 + -DWITH_NVCUVID=OFF
489 + # -DWITH_NVCUVID=$(usex cuda)
490 + -DCUDA_NPP_LIBRARY_ROOT_DIR=$(usex cuda "${EPREFIX}/opt/cuda" "")
491 + # ===================================================
492 + # OpenCV build components
493 + # ===================================================
494 + -DBUILD_SHARED_LIBS=ON
495 + -DBUILD_JAVA=$(multilib_native_usex java) # Ant needed, no compile flag
496 + -DBUILD_ANDROID_EXAMPLES=OFF
497 + -DBUILD_opencv_apps=$(usex opencvapps ON OFF)
498 + -DBUILD_DOCS=OFF # Doesn't install anyways.
499 + -DBUILD_EXAMPLES=$(multilib_native_usex examples)
500 + -DBUILD_PERF_TESTS=OFF
501 + -DBUILD_TESTS=$(multilib_native_usex testprograms)
502 + -DBUILD_WITH_DEBUG_INFO=$(usex debug)
503 + # -DBUILD_WITH_STATIC_CRT=OFF
504 + -DBUILD_WITH_DYNAMIC_IPP=OFF
505 + -DBUILD_FAT_JAVA_LIB=OFF
506 + # -DBUILD_ANDROID_SERVICE=OFF
507 + -DBUILD_CUDA_STUBS=$(multilib_native_usex cuda)
508 + -DOPENCV_EXTRA_MODULES_PATH=$(usex contrib "${WORKDIR}/opencv_contrib-${PV}/modules" "")
509 + # ===================================================
510 + # OpenCV installation options
511 + # ===================================================
512 + -DINSTALL_CREATE_DISTRIB=OFF
513 + -DINSTALL_C_EXAMPLES=$(multilib_native_usex examples)
514 + -DINSTALL_TESTS=$(multilib_native_usex testprograms)
515 + -DINSTALL_PYTHON_EXAMPLES=$(multilib_native_usex examples)
516 + # -DINSTALL_ANDROID_EXAMPLES=OFF
517 + -DINSTALL_TO_MANGLED_PATHS=OFF
518 + -DOPENCV_GENERATE_PKGCONFIG=ON
519 + # opencv uses both ${CMAKE_INSTALL_LIBDIR} and ${LIB_SUFFIX}
520 + # to set its destination libdir
521 + -DLIB_SUFFIX=
522 + # ===================================================
523 + # OpenCV build options
524 + # ===================================================
525 + -DENABLE_CCACHE=OFF
526 + -DENABLE_PRECOMPILED_HEADERS=$(usex pch)
527 + -DENABLE_SOLUTION_FOLDERS=OFF
528 + -DENABLE_PROFILING=OFF
529 + -DENABLE_COVERAGE=OFF
530 +
531 + -DHAVE_opencv_java=$(multilib_native_usex java YES NO)
532 + -DENABLE_NOISY_WARNINGS=OFF
533 + -DOPENCV_WARNINGS_ARE_ERRORS=OFF
534 + -DENABLE_IMPL_COLLECTION=OFF
535 + -DENABLE_INSTRUMENTATION=OFF
536 + -DGENERATE_ABI_DESCRIPTOR=OFF
537 + -DDOWNLOAD_EXTERNAL_TEST_DATA=OFF
538 + -DENABLE_LTO=$(usex lto)
539 + # ===================================================
540 + # things we want to be hard off or not yet figured out
541 + # ===================================================
542 + -DBUILD_PACKAGE=OFF
543 + # ===================================================
544 + # Not building protobuf but update files bug #631418
545 + # ===================================================
546 + -DBUILD_PROTOBUF=OFF
547 + -DPROTOBUF_UPDATE_FILES=ON
548 + # ===================================================
549 + # things we want to be hard enabled not worth useflag
550 + # ===================================================
551 + -DCMAKE_SKIP_RPATH=ON
552 + -DOPENCV_DOC_INSTALL_PATH=
553 + -DBUILD_opencv_features2d=$(usex features2d ON OFF)
554 + )
555 +
556 + # ==================================================
557 + # cpu flags, should solve 633900
558 + #===================================================
559 + local CPU_BASELINE=""
560 + for i in "${CPU_FEATURES_MAP[@]}" ; do
561 + use ${i%:*} && CPU_BASELINE="${CPU_BASELINE}${i#*:};"
562 + done
563 + GLOBALCMAKEARGS+=(
564 + -DOPENCV_CPU_OPT_IMPLIES_IGNORE=ON
565 + -DCPU_BASELINE=${CPU_BASELINE}
566 + -DCPU_DISPATCH=
567 + )
568 +
569 + # ===================================================
570 + # OpenCV Contrib Modules
571 + # ===================================================
572 + if use contrib; then
573 + GLOBALCMAKEARGS+=(
574 + -DBUILD_opencv_dnn=$(usex contribdnn ON OFF)
575 + -DTINYDNN_ROOT="${WORKDIR}/tiny-dnn-${TINY_DNN_PV}"
576 + -DBUILD_opencv_dnns_easily_fooled=OFF
577 + -DBUILD_opencv_xfeatures2d=$(usex contribxfeatures2d ON OFF)
578 + -DBUILD_opencv_cvv=$(usex contribcvv ON OFF)
579 + -DBUILD_opencv_hdf=$(multilib_native_usex contribhdf ON OFF)
580 + -DBUILD_opencv_sfm=$(usex contribsfm ON OFF)
581 + -DBUILD_opencv_freetype=$(usex contribfreetype ON OFF)
582 + -DBUILD_opencv_ovis=$(usex contribovis ON OFF)
583 + )
584 +
585 + if multilib_is_native_abi; then
586 + GLOBALCMAKEARGS+=(
587 + -DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=$(usex !tesseract)
588 + )
589 + else
590 + GLOBALCMAKEARGS+=(
591 + -DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=ON
592 + )
593 + fi
594 + fi
595 +
596 + # workaround for bug 413429
597 + tc-export CC CXX
598 +
599 + local mycmakeargs=(
600 + ${GLOBALCMAKEARGS[@]}
601 + -DPYTHON_EXECUTABLE=OFF
602 + -DINSTALL_PYTHON_EXAMPLES=OFF
603 + -DBUILD_opencv_python2=OFF
604 + -DBUILD_opencv_python3=OFF
605 + )
606 +
607 + cmake_src_configure
608 +
609 + # Copy face_land_model to ${CMAKE_BINARY_DIR}/${OPENCV_TEST_DATA_INSTALL_PATH}
610 + # TODO patch ocv_download to copy files into destination dirs
611 + if use contribdnn; then
612 + mkdir -p "${BUILD_DIR}"/share/OpenCV/testdata/cv/face/ || die
613 + cp "${WORKDIR}"/face_landmark_model.dat "${BUILD_DIR}"/share/OpenCV/testdata/cv/face/ || die
614 + fi
615 +
616 +}
617 +
618 +python_module_compile() {
619 + local BUILD_DIR=${orig_BUILD_DIR}
620 + local mycmakeargs=( ${GLOBALCMAKEARGS[@]} )
621 +
622 + # Set all python variables to load the correct Gentoo paths
623 + mycmakeargs+=(
624 + # python_setup alters PATH and sets this as wrapper
625 + # to the correct interpreter we are building for
626 + -DPYTHON_DEFAULT_EXECUTABLE=${EPYTHON}
627 + -DINSTALL_PYTHON_EXAMPLES=$(usex examples)
628 + )
629 +
630 + # Regenerate cache file. Can't use rebuild_cache as it won't
631 + # have the Gentoo specific options.
632 + rm -rf CMakeCache.txt || die "rm failed"
633 + cmake_src_configure
634 + cmake_src_compile
635 + cmake_src_install
636 +
637 + # Remove compiled binary so new version compiles
638 + # Avoid conflicts with new module builds as build system doesn't
639 + # really support it.
640 + rm -rf modules/python2 || die "rm failed"
641 +
642 + python_optimize "${ED}"/$(python_get_sitedir)
643 +}
644 +
645 +multilib_src_install() {
646 + cmake_src_install
647 +
648 + # Build and install the python modules for all targets
649 + if multilib_is_native_abi && use python; then
650 + local orig_BUILD_DIR="${BUILD_DIR}"
651 + python_foreach_impl python_module_compile
652 + fi
653 +}
654
655 diff --git a/profiles/base/package.use.mask b/profiles/base/package.use.mask
656 index 07610ecd9d9..e019dcbf4ca 100644
657 --- a/profiles/base/package.use.mask
658 +++ b/profiles/base/package.use.mask
659 @@ -643,3 +643,8 @@ net-proxy/squid ipf-transparent pf-transparent
660 # Alexis Ballier <aballier@g.o> (2011-02-16)
661 # Win32 specific useflag for vlc. Can be used for cross-compiling.
662 media-video/vlc directx
663 +
664 +# Ross Charles Campbell <rossbridger.cc@×××××.com> (2020-09-21)
665 +# Since >=dev-games/ogre-1.11.2 is masked, mask contribovis USE to
666 +# make repoman happy
667 +media-libs/opencv contribovis