From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id A4E2C1395E2 for ; Tue, 8 Nov 2016 07:01:18 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id AE81FE09D2; Tue, 8 Nov 2016 07:01:16 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 8231FE09D2 for ; Tue, 8 Nov 2016 07:01:16 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 1C1C9341059 for ; Tue, 8 Nov 2016 07:01:15 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id AD0D0303 for ; Tue, 8 Nov 2016 07:01:12 +0000 (UTC) From: "Amy Winston" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Amy Winston" Message-ID: <1478587890.7701033807a21a0c5c52780efa1a1b059e3e9b95.amynka@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/opencv/, media-libs/opencv/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: media-libs/opencv/Manifest media-libs/opencv/files/opencv-3.1.0-find-libraries-fix.patch media-libs/opencv/files/opencv-3.1.0-remove-graphcut-for-cuda-8.patch media-libs/opencv/metadata.xml media-libs/opencv/opencv-3.1.0-r6.ebuild X-VCS-Directories: media-libs/opencv/ media-libs/opencv/files/ X-VCS-Committer: amynka X-VCS-Committer-Name: Amy Winston X-VCS-Revision: 7701033807a21a0c5c52780efa1a1b059e3e9b95 X-VCS-Branch: master Date: Tue, 8 Nov 2016 07:01:12 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 417f2882-d453-4dcd-9e32-b22ae03dc2cf X-Archives-Hash: 13b95754644b752d24048ce56af99816 commit: 7701033807a21a0c5c52780efa1a1b059e3e9b95 Author: Jonathan Scruggs gmail com> AuthorDate: Mon Nov 7 12:47:07 2016 +0000 Commit: Amy Winston gentoo org> CommitDate: Tue Nov 8 06:51:30 2016 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=77010338 media-libs/opencv: revision bump to 3.1.0-r6 * Update SRC_URI to the new URLs * Switch to downloading the tar.gz instead zip file * Add git hash to end of contrib download to allow revision bumps * Updated revision of contrib modules to fix various errors * Remove Qt 4 support to follow the new Gentoo standard * Use new OpenMP test logic * Added patch to build against CUDA v8. Patch based on one submitted by Sven Eden Gentoo-bug: 598674 Gentoo-bug: 597754 * Added Tesseract use flag and fixed building against it. Gentoo-bug: 572836 Gentoo-bug: 584428 * Added use flag for the SFM module because of dependencies on several Google libraries Gentoo-bug: 597166 * Added use flag for the HDF module because of a dependency on media-libs/hdaf5 Gentoo-bug: 596212 * Added use flag for the CVV module because it will silently fail if Qt 5 is not installed. * Added patch to fix the finding of certain libraries Gentoo-Bug: 584478 Signed-off by: Jonathan Scruggs (j.scruggs gmail.com) media-libs/opencv/Manifest | 2 + .../files/opencv-3.1.0-find-libraries-fix.patch | 48 ++++ .../opencv-3.1.0-remove-graphcut-for-cuda-8.patch | 23 ++ media-libs/opencv/metadata.xml | 6 + media-libs/opencv/opencv-3.1.0-r6.ebuild | 296 +++++++++++++++++++++ 5 files changed, 375 insertions(+) diff --git a/media-libs/opencv/Manifest b/media-libs/opencv/Manifest index 82a9d48..624ef49 100644 --- a/media-libs/opencv/Manifest +++ b/media-libs/opencv/Manifest @@ -1,5 +1,7 @@ DIST opencv-2.4.12.zip 93261101 SHA256 2a7e47da87b9119be922f010a1059539e96130c242f4d38e2dbb445ccbeccbc1 SHA512 3f9142ef23181f93200413b456c11235ecac11c322ccf3f89cc3740bfa9d9228508948cee245583103029e9f6abf1c5d0c5d249eff400e65b3655153bc6dbb05 WHIRLPOOL 86488d91cfac4c980e4f794d6d7e40bf93803f4d79defc991647af742198b845db796b1578b5d79a12a71ecbb04d8430a49c1538d6f86f1288c2a31efefc2548 DIST opencv-3.0.0.zip 100980799 SHA256 07094ea2f996f2622d572f0f3a162d698c8a547520341ca9109fbaf9363fb001 SHA512 108d0fdcc60b5688ebf61c930fb965ec81f0d3c36bb1797f6cc571fac35331f540773207fd1cb81b12c05c8f4d1af20c4a2452d9f75cd0cae4acd8131be92375 WHIRLPOOL 61cbbf5201b1dea75ffa998d1f55ee35f098bb8f76591cc9705de13b9f05eaefd19dcc74e93d2643d9b721e62483a36547617ec2e3d14fa6a2522e18ccf06747 +DIST opencv-3.1.0.tar.gz 76135587 SHA256 f00b3c4f42acda07d89031a2ebb5ebe390764a133502c03a511f67b78bbd4fbf SHA512 57e0fe41e3d5d1dc036e7fc5673523e53d54f5f62e4d3bcb95238a9cd53e79da7c1704dc136ce632f7cfce369ebf5eb27f629a9b6ac4f7fa34120b80b5c7438f WHIRLPOOL b2825d5cafa87e0fe9cacd093ddb969913d916c0370819073b2bde3c598798efcf23c406aae2116f2628c564ca99e5f871a448a3ece97d8d29ec73841ac283b4 DIST opencv-3.1.0.zip 79186131 SHA256 1f6990249fdb82804fff40e96fa6d99949023ab0e3277eae4bd459b374e622a4 SHA512 b4915e8838fce8ba9e1af8b11e46678624435e9a41592e645413dfdc830993eaa017d337fe4c212a49f096421a6317a1892546087fbc3cfdab554522336c0f1a WHIRLPOOL 3c38715e2abc431781b724199c2cf06f844c7a889c51a06ecb64889a8ca36d9fd370a0738deec2995e24e453cb64f5db228238681714f62daf6eac50d95a4914 +DIST opencv-3.1.0_contrib-75b3ea9.tar.gz 54277105 SHA256 478f742457d3f4e96f857b726e35b28a8d20a1de8e5f51b8671251bc896d443b SHA512 d1d11520b8729fbaf0257c927654251ff9ac1ba5cf937af9dd973ec39f483d1ee08aff7ad3f1a9941fef921a35dc466ac5574918197ddecd3f6c66b682bf671a WHIRLPOOL 18b70014428c4fa532658ca5ac332bffaae049b468f46cb027a6972f21f5b2bd17d02b33d68c43b84f821a77fa09efb9c372499cfa4f645a0516b93acb858353 DIST opencv-3.1.0_contrib.zip 55182211 SHA256 5082b5df7179ff71f4681747c482169f0d5d5b77605816cfe5b93c588021fbb4 SHA512 f0ceb8d9ed85efe948a40071793d164a82391a462c52ca71a6029e8b119afdab8b1453baaed2cd7d540001559849a62ec4b745d41345db225acff0531c76e762 WHIRLPOOL 589294c849a00426f4c52d07ab652e71e8bbc74efd0878fbaea2e089051fd118217b1a04f33258fcef2abe1729147282eb17a98c5463691aa3fd56af264ea6a0 DIST opencv_contrib.zip 76144299 SHA256 ba780e61e9659aac299055d68c9fe40258e3fab7cb167892163eb5732387c4bb SHA512 9253a9d209368da5bea5f0138c55379132467b840d25fc5eaa1bc0103e6da61d6facf206456ff3f4bb68482d9c6381e23a566cb4dd155ac9ff9a259e54f7ffbf WHIRLPOOL 411febd3d5912ea28b570b217e3af41bee2d48daf5f47b0de6125b40cfbf435216c668545b3e0dfa48e4eef8d4a86135058ee72dc7b5a4244b661130a6916843 diff --git a/media-libs/opencv/files/opencv-3.1.0-find-libraries-fix.patch b/media-libs/opencv/files/opencv-3.1.0-find-libraries-fix.patch new file mode 100644 index 00000000..52f4db6 --- /dev/null +++ b/media-libs/opencv/files/opencv-3.1.0-find-libraries-fix.patch @@ -0,0 +1,48 @@ +diff -purN a/cmake/OpenCVFindLibsGrfmt.cmake b/cmake/OpenCVFindLibsGrfmt.cmake +--- a/cmake/OpenCVFindLibsGrfmt.cmake 2015-12-18 15:02:16.000000000 +0000 ++++ b/cmake/OpenCVFindLibsGrfmt.cmake 2016-11-07 13:18:04.567340791 +0000 +@@ -18,7 +18,7 @@ endif() + if(NOT ZLIB_FOUND) + ocv_clear_vars(ZLIB_LIBRARY ZLIB_LIBRARIES ZLIB_INCLUDE_DIRS) + +- set(ZLIB_LIBRARY zlib) ++ set(ZLIB_LIBRARY z) + add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/zlib") + set(ZLIB_INCLUDE_DIRS "${${ZLIB_LIBRARY}_SOURCE_DIR}" "${${ZLIB_LIBRARY}_BINARY_DIR}") + set(ZLIB_LIBRARIES ${ZLIB_LIBRARY}) +@@ -40,7 +40,7 @@ if(WITH_TIFF) + if(NOT TIFF_FOUND) + ocv_clear_vars(TIFF_LIBRARY TIFF_LIBRARIES TIFF_INCLUDE_DIR) + +- set(TIFF_LIBRARY libtiff) ++ set(TIFF_LIBRARY tiff) + set(TIFF_LIBRARIES ${TIFF_LIBRARY}) + add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libtiff") + set(TIFF_INCLUDE_DIR "${${TIFF_LIBRARY}_SOURCE_DIR}" "${${TIFF_LIBRARY}_BINARY_DIR}") +@@ -79,7 +79,7 @@ if(WITH_JPEG) + if(NOT JPEG_FOUND) + ocv_clear_vars(JPEG_LIBRARY JPEG_LIBRARIES JPEG_INCLUDE_DIR) + +- set(JPEG_LIBRARY libjpeg) ++ set(JPEG_LIBRARY jpeg) + set(JPEG_LIBRARIES ${JPEG_LIBRARY}) + add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libjpeg") + set(JPEG_INCLUDE_DIR "${${JPEG_LIBRARY}_SOURCE_DIR}") +@@ -136,7 +136,7 @@ if(WITH_JASPER) + if(NOT JASPER_FOUND) + ocv_clear_vars(JASPER_LIBRARY JASPER_LIBRARIES JASPER_INCLUDE_DIR) + +- set(JASPER_LIBRARY libjasper) ++ set(JASPER_LIBRARY jasper) + set(JASPER_LIBRARIES ${JASPER_LIBRARY}) + add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libjasper") + set(JASPER_INCLUDE_DIR "${${JASPER_LIBRARY}_SOURCE_DIR}") +@@ -169,7 +169,7 @@ if(WITH_PNG) + if(NOT PNG_FOUND) + ocv_clear_vars(PNG_LIBRARY PNG_LIBRARIES PNG_INCLUDE_DIR PNG_PNG_INCLUDE_DIR HAVE_LIBPNG_PNG_H PNG_DEFINITIONS) + +- set(PNG_LIBRARY libpng) ++ set(PNG_LIBRARY png) + set(PNG_LIBRARIES ${PNG_LIBRARY}) + add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libpng") + set(PNG_INCLUDE_DIR "${${PNG_LIBRARY}_SOURCE_DIR}") diff --git a/media-libs/opencv/files/opencv-3.1.0-remove-graphcut-for-cuda-8.patch b/media-libs/opencv/files/opencv-3.1.0-remove-graphcut-for-cuda-8.patch new file mode 100644 index 00000000..64761a2 --- /dev/null +++ b/media-libs/opencv/files/opencv-3.1.0-remove-graphcut-for-cuda-8.patch @@ -0,0 +1,23 @@ +From 10896129b39655e19e4e7c529153cb5c2191a1db Mon Sep 17 00:00:00 2001 +From: Vladislav Vinogradov +Date: Fri, 6 May 2016 11:37:32 +0300 +Subject: [PATCH] GraphCut deprecated in CUDA 7.5 and removed in 8.0 + +--- + modules/cudalegacy/src/graphcuts.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/modules/cudalegacy/src/graphcuts.cpp b/modules/cudalegacy/src/graphcuts.cpp +index eb08c3c..1a1eb85 100644 +--- a/modules/cudalegacy/src/graphcuts.cpp ++++ b/modules/cudalegacy/src/graphcuts.cpp +@@ -42,7 +42,8 @@ + + #include "precomp.hpp" + +-#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) ++// GraphCut has been removed in NPP 8.0 ++#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000) + + void cv::cuda::graphcut(GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, Stream&) { throw_no_cuda(); } + void cv::cuda::graphcut(GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, Stream&) { throw_no_cuda(); } diff --git a/media-libs/opencv/metadata.xml b/media-libs/opencv/metadata.xml index fe2e2d9..bc331e3 100644 --- a/media-libs/opencv/metadata.xml +++ b/media-libs/opencv/metadata.xml @@ -24,8 +24,14 @@ Face Recognition; Gesture Recognition; Motion Tracking, Ego Motion, Motion Under Enable NVIDIA Cuda computations support Enable usage of dev-cpp/eigen for computations Enable support for sci-libs/gdal library + Use Google's C++ argument parsing library + Use Google's C++ loggin library Enable Intel Integrated Primitive support + CVV module requires Qt5 + HDF module requires sci-libs/hdf5 + SFM module requires eigen, gflags, and glog Add support for OpenCL + Use Google's OCR Engine Build and install programs for testing OpenCV (performance) Build new 3D visualization module viz based on sci-libs/vtk Enable support for webp image format diff --git a/media-libs/opencv/opencv-3.1.0-r6.ebuild b/media-libs/opencv/opencv-3.1.0-r6.ebuild new file mode 100644 index 00000000..a6adf6f --- /dev/null +++ b/media-libs/opencv/opencv-3.1.0-r6.ebuild @@ -0,0 +1,296 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +inherit toolchain-funcs cmake-utils python-r1 java-pkg-opt-2 java-ant-2 + +DESCRIPTION="A collection of algorithms and sample code for + various computer vision problems" +HOMEPAGE="http://opencv.org" + +BASE_URI="https://github.com/${PN}/${PN}" +#commit from Thu, 02 Jun 2016 +CONTRIB_URI="75b3ea9f72fdb083140fc63855b7677d67748376" +CONTRIB_P="${P}_contrib-${CONTRIB_URI:0:7}" + +SRC_URI="${BASE_URI}/archive/${PV}.tar.gz -> ${P}.tar.gz + contrib? ( ${BASE_URI}_contrib/archive/${CONTRIB_URI}.tar.gz -> ${CONTRIB_P}.tar.gz )" +LICENSE="BSD" +SLOT="0/3.1" # subslot = libopencv* soname version +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux" +IUSE="contrib cuda +eigen examples ffmpeg gdal gflags glog gphoto2 gstreamer gtk \ + ieee1394 ipp jpeg jpeg2k libav opencl openexr opengl openmp pch png \ + +python qt5 tesseract testprograms threads tiff vaapi v4l vtk webp xine \ + contrib_cvv contrib_hdf contrib_sfm" + +# OpenGL needs gtk or Qt installed to activate, otherwise build system +# will silently disable it without the user knowing, which defeats the +# purpose of the opengl use flag. +REQUIRED_USE=" + cuda? ( tesseract? ( opencl ) ) + gflags? ( contrib ) + glog? ( contrib ) + contrib_cvv? ( contrib qt5 ) + contrib_hdf? ( contrib ) + contrib_sfm? ( contrib eigen gflags glog ) + opengl? ( || ( gtk qt5 ) ) + python? ( ${PYTHON_REQUIRED_USE} ) + tesseract? ( contrib )" + +# The following logic is intrinsic in the build system, but we do not enforce +# it on the useflags since this just blocks emerging pointlessly: +# gtk? ( !qt5 ) +# openmp? ( !threads ) + +RDEPEND=" + app-arch/bzip2 + sys-libs/zlib + cuda? ( dev-util/nvidia-cuda-toolkit:0= ) + ffmpeg? ( + libav? ( media-video/libav:0= ) + !libav? ( media-video/ffmpeg:0= ) + ) + gdal? ( sci-libs/gdal ) + gflags? ( dev-cpp/gflags ) + glog? ( dev-cpp/glog ) + gphoto2? ( media-libs/libgphoto2 ) + gstreamer? ( + media-libs/gstreamer:1.0 + media-libs/gst-plugins-base:1.0 + ) + gtk? ( + dev-libs/glib:2 + x11-libs/gtk+:2 + opengl? ( x11-libs/gtkglext ) + ) + java? ( >=virtual/jre-1.6:* ) + jpeg? ( virtual/jpeg:0 ) + jpeg2k? ( media-libs/jasper ) + ieee1394? ( + media-libs/libdc1394 + sys-libs/libraw1394 + ) + ipp? ( sci-libs/ipp ) + contrib_hdf? ( sci-libs/hdf5 ) + opencl? ( virtual/opencl ) + openexr? ( media-libs/openexr ) + opengl? ( virtual/opengl virtual/glu ) + png? ( media-libs/libpng:0= ) + python? ( ${PYTHON_DEPS} dev-python/numpy[${PYTHON_USEDEP}] ) + qt5? ( + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + dev-qt/qttest:5 + dev-qt/qtconcurrent:5 + opengl? ( dev-qt/qtopengl:5 ) + ) + tesseract? ( app-text/tesseract[opencl=] ) + threads? ( dev-cpp/tbb ) + tiff? ( media-libs/tiff:0 ) + v4l? ( >=media-libs/libv4l-0.8.3 ) + vtk? ( sci-libs/vtk[rendering] ) + webp? ( media-libs/libwebp ) + xine? ( media-libs/xine-lib )" +DEPEND="${RDEPEND} + virtual/pkgconfig + eigen? ( dev-cpp/eigen:3 ) + java? ( >=virtual/jdk-1.6 )" + +PATCHES=( + "${FILESDIR}"/${PN}-3.0.0-gles.patch + "${FILESDIR}"/${P}-cmake-no-opengl.patch + "${FILESDIR}"/${P}-git-autodetect.patch + "${FILESDIR}"/${P}-java-magic.patch + "${FILESDIR}"/${P}-gentooify-python.patch + "${FILESDIR}"/${P}-remove-graphcut-for-cuda-8.patch + "${FILESDIR}"/${P}-find-libraries-fix.patch +) + +GLOBALCMAKEARGS=() + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + java-pkg-opt-2_pkg_setup +} + +src_prepare() { + default + + # remove bundled stuff + rm -rf 3rdparty || die "Removing 3rd party components failed" + sed -e '/add_subdirectory(.*3rdparty.*)/ d' \ + -i CMakeLists.txt cmake/*cmake || die + + java-pkg-opt-2_src_prepare +} + +src_configure() { + JAVA_ANT_ENCODING="iso-8859-1" + # set encoding so even this cmake build will pick it up. + export ANT_OPTS+=" -Dfile.encoding=iso-8859-1" + java-ant-2_src_configure + + # please dont sort here, order is the same as in CMakeLists.txt + GLOBALCMAKEARGS=( + # Optional 3rd party components + # =================================================== + -DWITH_1394=$(usex ieee1394) + -DWITH_AVFOUNDATION=OFF # IOS + -DWITH_VTK=$(usex vtk) + -DWITH_EIGEN=$(usex eigen) + -DWITH_VFW=OFF # Video windows support + -DWITH_FFMPEG=$(usex ffmpeg) + -DWITH_GSTREAMER=$(usex gstreamer) + -DWITH_GSTREAMER_0_10=OFF # Don't want this + -DWITH_GTK=$(usex gtk) + -DWITH_GTK_2_X=OFF + -DWITH_IPP=$(usex ipp) + -DWITH_JASPER=$(usex jpeg2k) + -DWITH_JPEG=$(usex jpeg) + -DWITH_WEBP=$(usex webp) + -DWITH_OPENEXR=$(usex openexr) + -DWITH_OPENGL=$(usex opengl) + -DWITH_OPENNI=OFF # Not packaged + -DWITH_OPENNI2=OFF # Not packaged + -DWITH_PNG=$(usex png) + -DWITH_PVAPI=OFF # Not packaged + -DWITH_GIGEAPI=OFF + -DWITH_QT=$(usex qt5 5 OFF) + -DWITH_WIN32UI=OFF # Windows only + -DWITH_QUICKTIME=OFF + -DWITH_TBB=$(usex threads) + -DWITH_OPENMP=$(usex openmp) + -DWITH_CSTRIPES=OFF + -DWITH_PTHREADS_PF=ON + -DWITH_TIFF=$(usex tiff) + -DWITH_UNICAP=OFF # Not packaged + -DWITH_V4L=$(usex v4l) + -DWITH_LIBV4L=$(usex v4l) + -DWITH_DSHOW=ON # direct show supp + -DWITH_MSMF=OFF + -DWITH_XIMEA=OFF # Windows only + -DWITH_XINE=$(usex xine) + -DWITH_CLP=OFF + -DWITH_OPENCL=$(usex opencl) + -DWITH_OPENCL_SVM=OFF + -DWITH_OPENCLAMDFFT=$(usex opencl) + -DWITH_OPENCLAMDBLAS=$(usex opencl) + -DWITH_DIRECTX=OFF + -DWITH_INTELPERC=OFF + -DWITH_JAVA=$(usex java) # Ant needed, no compile flag + -DWITH_IPP_A=OFF + -DWITH_MATLAB=OFF + -DWITH_VA=$(usex vaapi) + -DWITH_VA_INTEL=$(usex vaapi) + -DWITH_GDAL=$(usex gdal) + -DWITH_GPHOTO2=$(usex gphoto2) + # =================================================== + # CUDA build components: nvidia-cuda-toolkit takes care of GCC version + # =================================================== + -DWITH_CUDA=$(usex cuda) + -DWITH_CUBLAS=$(usex cuda) + -DWITH_CUFFT=$(usex cuda) + -DCUDA_NPP_LIBRARY_ROOT_DIR=$(usex cuda "${EPREFIX}/opt/cuda" "") + # =================================================== + # OpenCV build components + # =================================================== + -DBUILD_SHARED_LIBS=ON + -DBUILD_ANDROID_EXAMPLES=OFF + -DBUILD_DOCS=OFF # Doesn't install anyways. + -DBUILD_EXAMPLES=$(usex examples) + -DBUILD_PERF_TESTS=OFF + -DBUILD_TESTS=$(usex testprograms) + -DOPENCV_EXTRA_MODULES_PATH=$(usex contrib "${WORKDIR}/opencv_contrib-${CONTRIB_URI}/modules" "") + # =================================================== + # OpenCV installation options + # =================================================== + -DINSTALL_C_EXAMPLES=$(usex examples) + -DINSTALL_TESTS=$(usex testprograms) + # =================================================== + # OpenCV build options + # =================================================== + -DENABLE_PRECOMPILED_HEADERS=$(usex pch) + -DHAVE_opencv_java=$(usex java YES NO) + # =================================================== + # things we want to be hard off or not yet figured out + # =================================================== + -DBUILD_PACKAGE=OFF + -DENABLE_PROFILING=OFF + # =================================================== + # things we want to be hard enabled not worth useflag + # =================================================== + -DCMAKE_SKIP_RPATH=ON + -DOPENCV_DOC_INSTALL_PATH= + ) + + # =================================================== + # OpenCV Contrib Modules + # =================================================== + if use contrib; then + GLOBALCMAKEARGS+=( + -DBUILD_opencv_dnn=OFF + -DBUILD_opencv_dnns_easily_fooled=OFF + -DBUILD_opencv_cvv=$(usex contrib_cvv ON OFF) + -DBUILD_opencv_hdf=$(usex contrib_hdf ON OFF) + -DBUILD_opencv_sfm=$(usex contrib_sfm ON OFF) + ) + fi + + # workaround for bug 413429 + tc-export CC CXX + + local mycmakeargs=( ${GLOBALCMAKEARGS[@]} + -DWITH_PYTHON=OFF + -DINSTALL_PYTHON_EXAMPLES=OFF + ) + + cmake-utils_src_configure +} + +python_module_compile() { + local mycmakeargs=( ${GLOBALCMAKEARGS[@]} ) + + # Set all python variables to load the correct Gentoo paths + mycmakeargs+=( + -DWITH_PYTHON=ON + -DGENTOO_PYTHON_EXECUTABLE=${EPYTHON} + -DGENTOO_PYTHON_INCLUDE_PATH="$(python_get_includedir)" + -DGENTOO_PYTHON_LIBRARIES="$(python_get_library_path)" + -DGENTOO_PYTHON_PACKAGES_PATH="$(python_get_sitedir)" + -DGENTOO_PYTHON_MAJOR=${EPYTHON:6:1} + -DGENTOO_PYTHON_MINOR=${EPYTHON:8:1} + -DGENTOO_PYTHON_DEBUG_LIBRARIES="" + -DINSTALL_PYTHON_EXAMPLES=$(usex examples) + ) + + # Compile and install all at once because configuration will be wiped + # for each impl of Python + BUILD_DIR="${WORKDIR}"/${P}_build + cd "${BUILD_DIR}" || die "cd failed" + + # Regenerate cache file. Can't use rebuild_cache as it won't + # have the Gentoo specific options. + rm -rf CMakeCache.txt || die "rm failed" + cmake-utils_src_configure + cmake-utils_src_compile + cmake-utils_src_install + + # Remove compiled binary so new version compiles + # Avoid conflicts with new module builds as build system doesn't + # really support it. + emake -C modules/${EPYTHON:0:7} clean + rm -rf modules/${EPYTHON:0:7} || die "rm failed" +} + +src_install() { + cmake-utils_src_install + + # Build and install the python modules for all targets + use python && python_foreach_impl python_module_compile +}