1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
6 PYTHON_COMPAT=( python3_{6,7} )
8 : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
9 inherit java-pkg-opt-2 java-ant-2 python-r1 toolchain-funcs cmake-multilib
11 DESCRIPTION="A collection of algorithms and sample code for various computer vision problems"
12 HOMEPAGE="https://opencv.org"
14 SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
15 dnnsamples? ( https://dev.gentoo.org/~amynka/snap/${PN}-3.4.0-res10_300x300-caffeemodel.tar.gz )
17 https://github.com/${PN}/${PN}_contrib/archive/${PV}.tar.gz -> ${P}_contrib.tar.gz
19 https://github.com/tiny-dnn/tiny-dnn/archive/v${TINY_DNN_PV}.tar.gz -> tiny-dnn-${TINY_DNN_PV}.tar.gz
20 https://dev.gentoo.org/~amynka/snap/${PN}-3.4.0-face_landmark_model.tar.gz
22 contribxfeatures2d? ( https://dev.gentoo.org/~amynka/snap/vgg_boostdesc-3.2.0.tar.gz )
26 SLOT="0/3.4.1" # subslot = libopencv* soname version
27 KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 x86 ~amd64-linux"
28 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 +eigen examples ffmpeg gdal gflags glog gphoto2 gstreamer gtk ieee1394 jpeg lapack libav opencl openexr opengl openmp pch png +python qt5 tesseract testprograms threads tiff vaapi v4l vtk webp xine"
29 # OpenGL needs gtk or Qt installed to activate, otherwise build system
30 # will silently disable it Wwithout the user knowing, which defeats the
31 # purpose of the opengl use flag.
33 cuda? ( tesseract? ( opencl ) )
34 dnnsamples? ( examples )
37 contribcvv? ( contrib qt5 )
38 contribdnn? ( contrib )
39 contribhdf? ( contrib )
40 contribsfm? ( contrib eigen gflags glog )
41 contribxfeatures2d? ( contrib cuda )
43 opengl? ( || ( gtk qt5 ) )
44 python? ( ${PYTHON_REQUIRED_USE} )
45 tesseract? ( contrib )"
47 # The following logic is intrinsic in the build system, but we do not enforce
48 # it on the useflags since this just blocks emerging pointlessly:
50 # openmp? ( !threads )
53 app-arch/bzip2[${MULTILIB_USEDEP}]
54 dev-libs/protobuf:=[${MULTILIB_USEDEP}]
55 sys-libs/zlib[${MULTILIB_USEDEP}]
56 cuda? ( dev-util/nvidia-cuda-toolkit:0= )
57 contribhdf? ( sci-libs/hdf5 )
59 libav? ( media-video/libav:0=[${MULTILIB_USEDEP}] )
60 !libav? ( media-video/ffmpeg:0=[${MULTILIB_USEDEP}] )
62 gdal? ( sci-libs/gdal:= )
63 gflags? ( dev-cpp/gflags[${MULTILIB_USEDEP}] )
64 glog? ( dev-cpp/glog[${MULTILIB_USEDEP}] )
65 gphoto2? ( media-libs/libgphoto2[${MULTILIB_USEDEP}] )
67 media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
68 media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
71 dev-libs/glib:2[${MULTILIB_USEDEP}]
72 x11-libs/gtk+:2[${MULTILIB_USEDEP}]
73 opengl? ( x11-libs/gtkglext[${MULTILIB_USEDEP}] )
76 media-libs/libdc1394[${MULTILIB_USEDEP}]
77 sys-libs/libraw1394[${MULTILIB_USEDEP}]
79 java? ( >=virtual/jre-1.6:* )
80 jpeg? ( virtual/jpeg:0[${MULTILIB_USEDEP}] )
81 lapack? ( virtual/lapack )
82 opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
83 openexr? ( media-libs/openexr[${MULTILIB_USEDEP}] )
85 virtual/opengl[${MULTILIB_USEDEP}]
86 virtual/glu[${MULTILIB_USEDEP}]
88 png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
89 python? ( ${PYTHON_DEPS} dev-python/numpy[${PYTHON_USEDEP}] )
95 opengl? ( dev-qt/qtopengl:5 )
97 tesseract? ( app-text/tesseract[opencl=] )
98 threads? ( dev-cpp/tbb[${MULTILIB_USEDEP}] )
99 tiff? ( media-libs/tiff:0[${MULTILIB_USEDEP}] )
100 v4l? ( >=media-libs/libv4l-0.8.3[${MULTILIB_USEDEP}] )
101 vtk? ( sci-libs/vtk[rendering] )
102 webp? ( media-libs/libwebp[${MULTILIB_USEDEP}] )
103 xine? ( media-libs/xine-lib )"
105 virtual/pkgconfig[${MULTILIB_USEDEP}]
106 eigen? ( dev-cpp/eigen:3 )
107 java? ( >=virtual/jdk-1.6 )
108 vaapi? ( x11-libs/libva )"
110 MULTILIB_WRAPPED_HEADERS=(
111 /usr/include/opencv2/cvconfig.h
112 /usr/include/opencv2/opencv_modules.hpp
114 /usr/include/opencv2/cvv.hpp
115 /usr/include/opencv2/cvv/call_meta_data.hpp
116 /usr/include/opencv2/cvv/cvv.hpp
117 /usr/include/opencv2/cvv/debug_mode.hpp
118 /usr/include/opencv2/cvv/dmatch.hpp
119 /usr/include/opencv2/cvv/filter.hpp
120 /usr/include/opencv2/cvv/final_show.hpp
121 /usr/include/opencv2/cvv/show_image.hpp
123 /usr/include/opencv2/hdf.hpp
124 /usr/include/opencv2/hdf/hdf5.hpp
126 /usr/include/opencv2/viz.hpp
127 /usr/include/opencv2/viz/types.hpp
128 /usr/include/opencv2/viz/viz3d.hpp
129 /usr/include/opencv2/viz/vizcore.hpp
130 /usr/include/opencv2/viz/widget_accessor.hpp
131 /usr/include/opencv2/viz/widgets.hpp
133 /usr/include/opencv2/cudaarithm.hpp
134 /usr/include/opencv2/cudabgsegm.hpp
135 /usr/include/opencv2/cudacodec.hpp
136 /usr/include/opencv2/cudafeatures2d.hpp
137 /usr/include/opencv2/cudafilters.hpp
138 /usr/include/opencv2/cudaimgproc.hpp
139 /usr/include/opencv2/cudalegacy.hpp
140 /usr/include/opencv2/cudalegacy/NCVBroxOpticalFlow.hpp
141 /usr/include/opencv2/cudalegacy/NCVHaarObjectDetection.hpp
142 /usr/include/opencv2/cudalegacy/NCV.hpp
143 /usr/include/opencv2/cudalegacy/NCVPyramid.hpp
144 /usr/include/opencv2/cudalegacy/NPP_staging.hpp
145 /usr/include/opencv2/cudaobjdetect.hpp
146 /usr/include/opencv2/cudaoptflow.hpp
147 /usr/include/opencv2/cudastereo.hpp
148 /usr/include/opencv2/cudawarping.hpp
149 /usr/include/opencv2/cudev/block/block.hpp
150 /usr/include/opencv2/cudev/block/detail/reduce.hpp
151 /usr/include/opencv2/cudev/block/detail/reduce_key_val.hpp
152 /usr/include/opencv2/cudev/block/dynamic_smem.hpp
153 /usr/include/opencv2/cudev/block/reduce.hpp
154 /usr/include/opencv2/cudev/block/scan.hpp
155 /usr/include/opencv2/cudev/block/vec_distance.hpp
156 /usr/include/opencv2/cudev/common.hpp
157 /usr/include/opencv2/cudev/expr/binary_func.hpp
158 /usr/include/opencv2/cudev/expr/binary_op.hpp
159 /usr/include/opencv2/cudev/expr/color.hpp
160 /usr/include/opencv2/cudev/expr/deriv.hpp
161 /usr/include/opencv2/cudev/expr/expr.hpp
162 /usr/include/opencv2/cudev/expr/per_element_func.hpp
163 /usr/include/opencv2/cudev/expr/reduction.hpp
164 /usr/include/opencv2/cudev/expr/unary_func.hpp
165 /usr/include/opencv2/cudev/expr/unary_op.hpp
166 /usr/include/opencv2/cudev/expr/warping.hpp
167 /usr/include/opencv2/cudev/functional/color_cvt.hpp
168 /usr/include/opencv2/cudev/functional/detail/color_cvt.hpp
169 /usr/include/opencv2/cudev/functional/functional.hpp
170 /usr/include/opencv2/cudev/functional/tuple_adapter.hpp
171 /usr/include/opencv2/cudev/grid/copy.hpp
172 /usr/include/opencv2/cudev/grid/detail/copy.hpp
173 /usr/include/opencv2/cudev/grid/detail/histogram.hpp
174 /usr/include/opencv2/cudev/grid/detail/integral.hpp
175 /usr/include/opencv2/cudev/grid/detail/minmaxloc.hpp
176 /usr/include/opencv2/cudev/grid/detail/pyr_down.hpp
177 /usr/include/opencv2/cudev/grid/detail/pyr_up.hpp
178 /usr/include/opencv2/cudev/grid/detail/reduce.hpp
179 /usr/include/opencv2/cudev/grid/detail/reduce_to_column.hpp
180 /usr/include/opencv2/cudev/grid/detail/reduce_to_row.hpp
181 /usr/include/opencv2/cudev/grid/detail/split_merge.hpp
182 /usr/include/opencv2/cudev/grid/detail/transform.hpp
183 /usr/include/opencv2/cudev/grid/detail/transpose.hpp
184 /usr/include/opencv2/cudev/grid/histogram.hpp
185 /usr/include/opencv2/cudev/grid/integral.hpp
186 /usr/include/opencv2/cudev/grid/pyramids.hpp
187 /usr/include/opencv2/cudev/grid/reduce.hpp
188 /usr/include/opencv2/cudev/grid/reduce_to_vec.hpp
189 /usr/include/opencv2/cudev/grid/split_merge.hpp
190 /usr/include/opencv2/cudev/grid/transform.hpp
191 /usr/include/opencv2/cudev/grid/transpose.hpp
192 /usr/include/opencv2/cudev.hpp
193 /usr/include/opencv2/cudev/ptr2d/constant.hpp
194 /usr/include/opencv2/cudev/ptr2d/deriv.hpp
195 /usr/include/opencv2/cudev/ptr2d/detail/gpumat.hpp
196 /usr/include/opencv2/cudev/ptr2d/extrapolation.hpp
197 /usr/include/opencv2/cudev/ptr2d/glob.hpp
198 /usr/include/opencv2/cudev/ptr2d/gpumat.hpp
199 /usr/include/opencv2/cudev/ptr2d/interpolation.hpp
200 /usr/include/opencv2/cudev/ptr2d/lut.hpp
201 /usr/include/opencv2/cudev/ptr2d/mask.hpp
202 /usr/include/opencv2/cudev/ptr2d/remap.hpp
203 /usr/include/opencv2/cudev/ptr2d/resize.hpp
204 /usr/include/opencv2/cudev/ptr2d/texture.hpp
205 /usr/include/opencv2/cudev/ptr2d/traits.hpp
206 /usr/include/opencv2/cudev/ptr2d/transform.hpp
207 /usr/include/opencv2/cudev/ptr2d/warping.hpp
208 /usr/include/opencv2/cudev/ptr2d/zip.hpp
209 /usr/include/opencv2/cudev/util/atomic.hpp
210 /usr/include/opencv2/cudev/util/detail/tuple.hpp
211 /usr/include/opencv2/cudev/util/detail/type_traits.hpp
212 /usr/include/opencv2/cudev/util/limits.hpp
213 /usr/include/opencv2/cudev/util/saturate_cast.hpp
214 /usr/include/opencv2/cudev/util/simd_functions.hpp
215 /usr/include/opencv2/cudev/util/tuple.hpp
216 /usr/include/opencv2/cudev/util/type_traits.hpp
217 /usr/include/opencv2/cudev/util/vec_math.hpp
218 /usr/include/opencv2/cudev/util/vec_traits.hpp
219 /usr/include/opencv2/cudev/warp/detail/reduce.hpp
220 /usr/include/opencv2/cudev/warp/detail/reduce_key_val.hpp
221 /usr/include/opencv2/cudev/warp/reduce.hpp
222 /usr/include/opencv2/cudev/warp/scan.hpp
223 /usr/include/opencv2/cudev/warp/shuffle.hpp
224 /usr/include/opencv2/cudev/warp/warp.hpp
228 "${FILESDIR}/${PN}-3.0.0-gles.patch"
229 "${FILESDIR}/${PN}-3.4.0-disable-download.patch"
230 "${FILESDIR}/${P}-compilation-C-mode.patch" # https://bugs.gentoo.org/656530
231 "${FILESDIR}/${P}-python-lib-suffix-hack.patch"
232 "${FILESDIR}/${P}-cuda-add-relaxed-constexpr.patch"
233 "${FILESDIR}/${P}-remove-git-autodetect.patch"
234 "${FILESDIR}/${P}-fix-build-with-va.patch" # bug https://bugs.gentoo.org/656576
235 "${FILESDIR}/${P}-popcnt.patch" # https://bugs.gentoo.org/633900
236 "${FILESDIR}/${P}-fix-on-x86.patch" # https://bugs.gentoo.org/682104
237 "${FILESDIR}/${P}-python37.patch" # https://bugs.gentoo.org/691480
241 [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
245 [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
246 java-pkg-opt-2_pkg_setup
250 cmake-utils_src_prepare
252 # remove bundled stuff
253 rm -rf 3rdparty || die "Removing 3rd party components failed"
254 sed -e '/add_subdirectory(.*3rdparty.*)/ d' \
255 -i CMakeLists.txt cmake/*cmake || die
257 if use dnnsamples; then
258 mv "${WORKDIR}/res10_300x300_ssd_iter_140000.caffemodel" "${WORKDIR}/${P}/samples/dnn/" || die
262 cd "${WORKDIR}/${PN}_contrib-${PV}" || die
263 eapply "${FILESDIR}/${PN}-3.3.0-remove-tiny-dnn-autodownload.patch"
265 if use contribxfeatures2d; then
266 mv "${WORKDIR}"/*.i "${WORKDIR}/${PN}_contrib-${PV}"/modules/xfeatures2d/src/ || die
270 java-pkg-opt-2_src_prepare
272 # this really belongs in src_prepare() too
273 JAVA_ANT_ENCODING="iso-8859-1"
274 # set encoding so even this cmake build will pick it up.
275 export ANT_OPTS+=" -Dfile.encoding=iso-8859-1"
276 java-ant-2_src_configure
279 multilib_src_configure() {
280 # please dont sort here, order is the same as in CMakeLists.txt
282 # Optional 3rd party components
283 # ===================================================
284 -DENABLE_DOWNLOAD=OFF
285 -DWITH_1394=$(usex ieee1394)
286 # -DWITH_AVFOUNDATION=OFF # IOS
287 -DWITH_VTK=$(multilib_native_usex vtk)
288 -DWITH_EIGEN=$(usex eigen)
289 -DWITH_VFW=OFF # Video windows support
290 -DWITH_FFMPEG=$(usex ffmpeg)
291 -DWITH_GSTREAMER=$(usex gstreamer)
292 -DWITH_GSTREAMER_0_10=OFF # Don't want this
293 -DWITH_GTK=$(usex gtk)
294 -DWITH_GTK_2_X=$(usex gtk)
297 -DWITH_JPEG=$(usex jpeg)
298 -DWITH_WEBP=$(usex webp)
299 -DWITH_OPENEXR=$(usex openexr)
300 -DWITH_OPENGL=$(usex opengl)
302 -DWITH_OPENNI=OFF # Not packaged
303 -DWITH_OPENNI2=OFF # Not packaged
304 -DWITH_PNG=$(usex png)
309 -DWITH_QT=$(multilib_native_usex qt5 5 OFF)
310 -DWITH_WIN32UI=OFF # Windows only
311 # -DWITH_QUICKTIME=OFF
313 -DWITH_TBB=$(usex threads)
314 -DWITH_OPENMP=$(usex openmp)
316 -DWITH_PTHREADS_PF=ON
317 -DWITH_TIFF=$(usex tiff)
318 -DWITH_UNICAP=OFF # Not packaged
319 -DWITH_V4L=$(usex v4l)
320 -DWITH_LIBV4L=$(usex v4l)
321 -DWITH_DSHOW=ON # direct show supp
323 -DWITH_XIMEA=OFF # Windows only
324 -DWITH_XINE=$(multilib_native_usex xine)
326 -DWITH_OPENCL=$(usex opencl)
327 -DWITH_OPENCL_SVM=OFF
328 -DWITH_OPENCLAMDFFT=$(usex opencl)
329 -DWITH_OPENCLAMDBLAS=$(usex opencl)
334 -DWITH_VA=$(usex vaapi)
335 -DWITH_VA_INTEL=$(usex vaapi)
336 -DWITH_GDAL=$(multilib_native_usex gdal)
337 -DWITH_GPHOTO2=$(usex gphoto2)
338 -DWITH_LAPACK=$(multilib_native_usex lapack)
339 -DWITH_ITT=OFF # 3dparty libs itt_notify
340 # ===================================================
341 # CUDA build components: nvidia-cuda-toolkit takes care of GCC version
342 # ===================================================
343 -DWITH_CUDA=$(multilib_native_usex cuda)
344 -DWITH_CUBLAS=$(multilib_native_usex cuda)
345 -DWITH_CUFFT=$(multilib_native_usex cuda)
347 # -DWITH_NVCUVID=$(usex cuda)
348 -DCUDA_NPP_LIBRARY_ROOT_DIR=$(usex cuda "${EPREFIX}/opt/cuda" "")
349 # ===================================================
350 # OpenCV build components
351 # ===================================================
352 -DBUILD_SHARED_LIBS=ON
353 -DBUILD_JAVA=$(multilib_native_usex java) # Ant needed, no compile flag
354 -DBUILD_ANDROID_EXAMPLES=OFF
356 -DBUILD_DOCS=OFF # Doesn't install anyways.
357 -DBUILD_EXAMPLES=$(multilib_native_usex examples)
358 -DBUILD_PERF_TESTS=OFF
359 -DBUILD_TESTS=$(multilib_native_usex testprograms)
360 -DBUILD_WITH_DEBUG_INFO=$(usex debug)
361 # -DBUILD_WITH_STATIC_CRT=OFF
362 -DBUILD_WITH_DYNAMIC_IPP=OFF
363 -DBUILD_FAT_JAVA_LIB=$(multilib_native_usex java)
364 # -DBUILD_ANDROID_SERVICE=OFF
365 -DBUILD_CUDA_STUBS=$(multilib_native_usex cuda)
366 -DOPENCV_EXTRA_MODULES_PATH=$(usex contrib "${WORKDIR}/opencv_contrib-${PV}/modules" "")
367 # ===================================================
368 # OpenCV installation options
369 # ===================================================
370 -DINSTALL_CREATE_DISTRIB=OFF
371 -DINSTALL_C_EXAMPLES=$(multilib_native_usex examples)
372 -DINSTALL_TESTS=$(multilib_native_usex testprograms)
373 -DINSTALL_PYTHON_EXAMPLES=$(multilib_native_usex examples)
374 # -DINSTALL_ANDROID_EXAMPLES=OFF
375 -DINSTALL_TO_MANGLED_PATHS=OFF
376 # opencv uses both ${CMAKE_INSTALL_LIBDIR} and ${LIB_SUFFIX}
377 # to set its destination libdir
379 # ===================================================
380 # OpenCV build options
381 # ===================================================
383 -DENABLE_PRECOMPILED_HEADERS=$(usex pch)
384 -DENABLE_SOLUTION_FOLDERS=OFF
385 -DENABLE_PROFILING=OFF
386 -DENABLE_COVERAGE=OFF
388 -DHAVE_opencv_java=$(multilib_native_usex java YES NO)
389 -DENABLE_NOISY_WARNINGS=OFF
390 -DOPENCV_WARNINGS_ARE_ERRORS=OFF
391 -DENABLE_IMPL_COLLECTION=OFF
392 -DENABLE_INSTRUMENTATION=OFF
393 -DGENERATE_ABI_DESCRIPTOR=OFF
394 -DDOWNLOAD_EXTERNAL_TEST_DATA=OFF
395 # ===================================================
396 # things we want to be hard off or not yet figured out
397 # ===================================================
399 # ===================================================
400 # Not building protobuf but update files bug #631418
401 # ===================================================
403 -DPROTOBUF_UPDATE_FILES=ON
404 # ===================================================
405 # things we want to be hard enabled not worth useflag
406 # ===================================================
407 -DCMAKE_SKIP_RPATH=ON
408 -DOPENCV_DOC_INSTALL_PATH=
409 # ==================================================
410 # cpu flags, should solve 633900
411 #===================================================
412 -DOPENCV_CPU_OPT_IMPLIES_IGNORE=ON
414 -DENABLE_SSE=$(usex cpu_flags_x86_sse)
415 -DENABLE_SSE2=$(usex cpu_flags_x86_sse2)
416 -DENABLE_SSE3=$(usex cpu_flags_x86_sse3)
417 -DENABLE_SSSE3=$(usex cpu_flags_x86_ssse3)
418 -DENABLE_SSE41=$(usex cpu_flags_x86_sse4_1)
419 -DENABLE_SSE42=$(usex cpu_flags_x86_sse4_2)
420 -DENABLE_POPCNT=$(usex cpu_flags_x86_popcnt)
421 -DENABLE_AVX=$(usex cpu_flags_x86_avx)
422 -DENABLE_AVX2=$(usex cpu_flags_x86_avx2)
423 -DENABLE_FMA3=$(usex cpu_flags_x86_fma3)
426 # ===================================================
427 # OpenCV Contrib Modules
428 # ===================================================
431 -DBUILD_opencv_dnn=$(usex contribdnn ON OFF)
432 -DTINYDNN_ROOT="${WORKDIR}/tiny-dnn-${TINY_DNN_PV}"
433 -DBUILD_opencv_dnns_easily_fooled=OFF
434 -DBUILD_opencv_xfeatures2d=$(usex contribxfeatures2d ON OFF)
435 -DBUILD_opencv_cvv=$(usex contribcvv ON OFF)
436 -DBUILD_opencv_hdf=$(multilib_native_usex contribhdf ON OFF)
437 -DBUILD_opencv_sfm=$(usex contribsfm ON OFF)
440 if multilib_is_native_abi; then
442 -DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=$(usex !tesseract)
446 -DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=ON
451 # workaround for bug 413429
454 local mycmakeargs=( ${GLOBALCMAKEARGS[@]}
455 -DPYTHON_EXECUTABLE=OFF
456 -DINSTALL_PYTHON_EXAMPLES=OFF
459 cmake-utils_src_configure
461 # Copy face_land_model to ${CMAKE_BINARY_DIR}/${OPENCV_TEST_DATA_INSTALL_PATH}
462 # TODO patch ocv_download to copy files into destination dirs
463 if use contribdnn; then
464 mkdir -p "${BUILD_DIR}"/share/OpenCV/testdata/cv/face/ || die
465 cp "${WORKDIR}"/face_landmark_model.dat "${BUILD_DIR}"/share/OpenCV/testdata/cv/face/ || die
470 python_module_compile() {
471 local BUILD_DIR=${orig_BUILD_DIR}
472 local mycmakeargs=( ${GLOBALCMAKEARGS[@]} )
474 # Set all python variables to load the correct Gentoo paths
476 # python_setup alters PATH and sets this as wrapper
477 # to the correct interpreter we are building for
478 -DPYTHON_DEFAULT_EXECUTABLE=python
479 -DINSTALL_PYTHON_EXAMPLES=$(usex examples)
483 # Regenerate cache file. Can't use rebuild_cache as it won't
484 # have the Gentoo specific options.
485 rm -rf CMakeCache.txt || die "rm failed"
486 cmake-utils_src_configure
487 cmake-utils_src_compile
488 cmake-utils_src_install
490 # Remove compiled binary so new version compiles
491 # Avoid conflicts with new module builds as build system doesn't
493 rm -rf modules/python2 || die "rm failed"
496 multilib_src_install() {
497 cmake-utils_src_install
499 # Build and install the python modules for all targets
500 if multilib_is_native_abi && use python; then
501 local orig_BUILD_DIR=${BUILD_DIR}
502 python_foreach_impl python_module_compile