commit:     5dfc738e3025c2559923c8bb72d7c4399aaec89b
Author:     Amy Winston <amynka <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  2 12:10:06 2016 +0000
Commit:     Amy Winston <amynka <AT> gentoo <DOT> org>
CommitDate: Wed Mar  2 12:10:06 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5dfc738e

media-libs/opencv: revert drop old 3.1.0-r1 and patches

This reverts commit 48656e3b700cf6d771db428bc6dde322753839d3.

 .../files/opencv-3.1.0-fix-hal-headers.patch       |  91 ++++++++
 .../files/opencv-3.1.0-fix-ocl-declaration.patch   | 214 +++++++++++++++++
 .../files/opencv-3.1.0-invalid-string-usage.patch  |  75 ++++++
 media-libs/opencv/opencv-3.1.0-r1.ebuild           | 252 +++++++++++++++++++++
 4 files changed, 632 insertions(+)

diff --git a/media-libs/opencv/files/opencv-3.1.0-fix-hal-headers.patch 
b/media-libs/opencv/files/opencv-3.1.0-fix-hal-headers.patch
new file mode 100644
index 0000000..dd77571
--- /dev/null
+++ b/media-libs/opencv/files/opencv-3.1.0-fix-hal-headers.patch
@@ -0,0 +1,91 @@
+From f529a1df2b17bcada1179ddcaf1352e3a5ba97b8 Mon Sep 17 00:00:00 2001
+From: Maksim Shabunin <[email protected]>
+Date: Tue, 15 Dec 2015 17:51:08 +0300
+Subject: [PATCH] Fixed HAL headers location
+
+diff --git opencv_contrib-master/modules/xfeatures2d/src/sift.cpp 
opencv_contrib-master/modules/xfeatures2d/src/sift.cpp
+index fc67c4d..9634fbb 100644
+--- opencv_contrib-master/modules/xfeatures2d/src/sift.cpp
++++ opencv_contrib-master/modules/xfeatures2d/src/sift.cpp
+@@ -105,6 +105,7 @@
+ #include "precomp.hpp"
+ #include <iostream>
+ #include <stdarg.h>
++#include <opencv2/core/hal/hal.hpp>
+ 
+ namespace cv
+ {
+@@ -337,9 +338,9 @@ static float calcOrientationHist( const Mat& img, Point 
pt, int radius,
+     len = k;
+ 
+     // compute gradient values, orientations and the weights over the pixel 
neighborhood
+-    hal::exp(W, W, len);
+-    hal::fastAtan2(Y, X, Ori, len, true);
+-    hal::magnitude(X, Y, Mag, len);
++    cv::hal::exp32f(W, W, len);
++    cv::hal::fastAtan2(Y, X, Ori, len, true);
++    cv::hal::magnitude32f(X, Y, Mag, len);
+ 
+     for( k = 0; k < len; k++ )
+     {
+@@ -620,9 +621,9 @@ static void calcSIFTDescriptor( const Mat& img, Point2f 
ptf, float ori, float sc
+         }
+ 
+     len = k;
+-    hal::fastAtan2(Y, X, Ori, len, true);
+-    hal::magnitude(X, Y, Mag, len);
+-    hal::exp(W, W, len);
++    cv::hal::fastAtan2(Y, X, Ori, len, true);
++    cv::hal::magnitude32f(X, Y, Mag, len);
++    cv::hal::exp32f(W, W, len);
+ 
+     for( k = 0; k < len; k++ )
+     {
+
+diff --git opencv_contrib-master/modules/optflow/src/motempl.cpp 
opencv_contrib-master/modules/optflow/src/motempl.cpp
+index ec18013..452ad63 100644
+--- opencv_contrib-master/modules/optflow/src/motempl.cpp
++++ opencv_contrib-master/modules/optflow/src/motempl.cpp
+@@ -41,6 +41,7 @@
+ 
+ #include "precomp.hpp"
+ #include "opencv2/core/utility.hpp"
++#include "opencv2/core/hal/hal.hpp"
+ #include "opencl_kernels_optflow.hpp"
+ 
+ namespace  cv {
+@@ -212,7 +213,7 @@ void calcMotionGradient( InputArray _mhi, OutputArray 
_mask,
+         float* orient_row = orient.ptr<float>(y);
+         uchar* mask_row = mask.ptr<uchar>(y);
+ 
+-        hal::fastAtan2(dY_max_row, dX_min_row, orient_row, size.width, true);
++        cv::hal::fastAtan2(dY_max_row, dX_min_row, orient_row, size.width, 
true);
+ 
+         // make orientation zero where the gradient is very small
+         for( x = 0; x < size.width; x++ )
+diff --git opencv_contrib-master/modules/ximgproc/src/fgs_filter.cpp 
opencv_contrib-master/modules/ximgproc/src/fgs_filter.cpp
+index e89eb8f..39307e5 100644
+--- opencv_contrib-master/modules/ximgproc/src/fgs_filter.cpp
++++ opencv_contrib-master/modules/ximgproc/src/fgs_filter.cpp
+@@ -35,7 +35,7 @@
+  */
+ 
+ #include "precomp.hpp"
+-#include "opencv2/hal/intrin.hpp"
++#include "opencv2/core/hal/intrin.hpp"
+ #include <vector>
+ 
+ namespace cv {
+diff --git 
opencv_contrib-master/modules/xphoto/src/grayworld_white_balance.cpp 
opencv_contrib-master/modules/xphoto/src/grayworld_white_balance.cpp
+index 4780497..15530d3 100644
+--- opencv_contrib-master/modules/xphoto/src/grayworld_white_balance.cpp
++++ opencv_contrib-master/modules/xphoto/src/grayworld_white_balance.cpp
+@@ -40,7 +40,7 @@
+ #include "opencv2/xphoto.hpp"
+ 
+ #include "opencv2/core.hpp"
+-#include "opencv2/hal/intrin.hpp"
++#include "opencv2/core/hal/intrin.hpp"
+ 
+ namespace cv { namespace xphoto {
+ 

diff --git a/media-libs/opencv/files/opencv-3.1.0-fix-ocl-declaration.patch 
b/media-libs/opencv/files/opencv-3.1.0-fix-ocl-declaration.patch
new file mode 100644
index 0000000..e9a190c
--- /dev/null
+++ b/media-libs/opencv/files/opencv-3.1.0-fix-ocl-declaration.patch
@@ -0,0 +1,214 @@
+From ac8dd366e4a1877e0af16961a4094496bed955f7 Mon Sep 17 00:00:00 2001
+From: Alexander Alekhin <[email protected]>
+Date: Sun, 13 Sep 2015 21:18:47 +0300
+Subject: [PATCH] ocl: fix "off" mode
+
+diff --git opencv_contrib-master/modules/tracking/src/tldDetector.cpp 
opencv_contrib-master/modules/tracking/src/tldDetector.cpp
+index cbb783e..d61444b 100644
+--- opencv_contrib-master/modules/tracking/src/tldDetector.cpp
++++ opencv_contrib-master/modules/tracking/src/tldDetector.cpp
+@@ -104,6 +104,7 @@ namespace cv
+                       return splus / (sminus + splus);
+               }
+ 
++#ifdef HAVE_OPENCL
+               double TLDDetector::ocl_Sr(const Mat_<uchar>& patch)
+               {
+                       //int64 e1, e2, e3, e4;
+@@ -283,6 +284,7 @@ namespace cv
+                       //t = (e2 - e1) / getTickFrequency()*1000.0;
+                       //printf("Sr GPU: %f\n\n", t);
+               }
++#endif
+ 
+               // Calculate Conservative similarity of the patch (NN-Model)
+               double TLDDetector::Sc(const Mat_<uchar>& patch)
+@@ -337,6 +339,7 @@ namespace cv
+                       return splus / (sminus + splus);
+               }
+ 
++#ifdef HAVE_OPENCL
+               double TLDDetector::ocl_Sc(const Mat_<uchar>& patch)
+               {
+                       //int64 e1, e2, e3, e4;
+@@ -415,6 +418,7 @@ namespace cv
+                               return 0.0;
+                       return splus / (sminus + splus);
+               }
++#endif // HAVE_OPENCL
+ 
+               // Generate Search Windows for detector from aspect ratio of 
initial BBs
+               void TLDDetector::generateScanGrid(int rows, int cols, Size 
initBox, std::vector<Rect2d>& res, bool withScaling)
+@@ -565,6 +569,7 @@ namespace cv
+                       return true;
+               }
+ 
++#ifdef HAVE_OPENCL
+               bool TLDDetector::ocl_detect(const Mat& img, const Mat& 
imgBlurred, Rect2d& res, std::vector<LabeledPatch>& patches, Size initSize)
+               {
+                       patches.clear();
+@@ -696,6 +701,7 @@ namespace cv
+                       res = maxScRect;
+                       return true;
+               }
++#endif // HAVE_OPENCL
+ 
+               // Computes the variance of subimage given by box, with the 
help of two integral
+               // images intImgP and intImgP2 (sum of squares), which should 
be also provided.
+diff --git opencv_contrib-master/modules/tracking/src/tldDetector.hpp 
opencv_contrib-master/modules/tracking/src/tldDetector.hpp
+index 3e11895..1caff57 100644
+--- opencv_contrib-master/modules/tracking/src/tldDetector.hpp
++++ opencv_contrib-master/modules/tracking/src/tldDetector.hpp
+@@ -74,10 +74,12 @@ namespace cv
+                       inline double ensembleClassifierNum(const uchar* data);
+                       inline void prepareClassifiers(int rowstep);
+                       double Sr(const Mat_<uchar>& patch);
+-                      double ocl_Sr(const Mat_<uchar>& patch);
+                       double Sc(const Mat_<uchar>& patch);
++#ifdef HAVE_OPENCL
++                      double ocl_Sr(const Mat_<uchar>& patch);
+                       double ocl_Sc(const Mat_<uchar>& patch);
+                       void ocl_batchSrSc(const Mat_<uchar>& patches, double 
*resultSr, double *resultSc, int numOfPatches);
++#endif
+ 
+                       std::vector<TLDEnsembleClassifier> classifiers;
+                       Mat *posExp, *negExp;
+diff --git opencv_contrib-master/modules/tracking/src/tldModel.cpp 
opencv_contrib-master/modules/tracking/src/tldModel.cpp
+index 0854022..47fc32a 100644
+--- opencv_contrib-master/modules/tracking/src/tldModel.cpp
++++ opencv_contrib-master/modules/tracking/src/tldModel.cpp
+@@ -246,6 +246,7 @@ namespace cv
+                       dfprintf((stdout, "\n"));*/
+               }
+ 
++#ifdef HAVE_OPENCL
+               void TrackerTLDModel::ocl_integrateAdditional(const 
std::vector<Mat_<uchar> >& eForModel, const std::vector<Mat_<uchar> >& 
eForEnsemble, bool isPositive)
+               {
+                       int positiveIntoModel = 0, negativeIntoModel = 0, 
positiveIntoEnsemble = 0, negativeIntoEnsemble = 0;
+@@ -315,6 +316,7 @@ namespace cv
+                       dfprintf((stdout, "positiveIntoEnsemble = %d ", 
positiveIntoEnsemble));
+                       dfprintf((stdout, "\n"));*/
+               }
++#endif // HAVE_OPENCL
+ 
+               //Push the patch to the model
+               void TrackerTLDModel::pushIntoModel(const Mat_<uchar>& example, 
bool positive)
+diff --git opencv_contrib-master/modules/tracking/src/tldModel.hpp 
opencv_contrib-master/modules/tracking/src/tldModel.hpp
+index be9141a..ba7c926 100644
+--- opencv_contrib-master/modules/tracking/src/tldModel.hpp
++++ opencv_contrib-master/modules/tracking/src/tldModel.hpp
+@@ -58,7 +58,9 @@ namespace cv
+                       void setBoudingBox(Rect2d boundingBox){ boundingBox_ = 
boundingBox; }
+                       void integrateRelabeled(Mat& img, Mat& imgBlurred, 
const std::vector<TLDDetector::LabeledPatch>& patches);
+                       void integrateAdditional(const std::vector<Mat_<uchar> 
>& eForModel, const std::vector<Mat_<uchar> >& eForEnsemble, bool isPositive);
++#ifdef HAVE_OPENCL
+                       void ocl_integrateAdditional(const 
std::vector<Mat_<uchar> >& eForModel, const std::vector<Mat_<uchar> >& 
eForEnsemble, bool isPositive);
++#endif
+                       Size getMinSize(){ return minSize_; }
+                       void printme(FILE* port = stdout);
+                       Ptr<TLDDetector> detector;
+diff --git opencv_contrib-master/modules/tracking/src/tldTracker.cpp 
opencv_contrib-master/modules/tracking/src/tldTracker.cpp
+index 0f1e2f7..a5190f5 100644
+--- opencv_contrib-master/modules/tracking/src/tldTracker.cpp
++++ opencv_contrib-master/modules/tracking/src/tldTracker.cpp
+@@ -123,9 +123,11 @@ bool TrackerTLDImpl::updateImpl(const Mat& image, Rect2d& 
boundingBox)
+ 
+               if (i == 1)
+               {
++#ifdef HAVE_OPENCL
+                       if (ocl::haveOpenCL())
+                               DETECT_FLG = 
tldModel->detector->ocl_detect(imageForDetector, image_blurred, tmpCandid, 
detectorResults, tldModel->getMinSize());
+                       else
++#endif
+                               DETECT_FLG = 
tldModel->detector->detect(imageForDetector, image_blurred, tmpCandid, 
detectorResults, tldModel->getMinSize());
+               }
+ 
+@@ -211,17 +213,21 @@ bool TrackerTLDImpl::updateImpl(const Mat& image, 
Rect2d& boundingBox)
+         tldModel->integrateRelabeled(imageForDetector, image_blurred, 
detectorResults);
+         //dprintf(("%d relabeled by nExpert\n", negRelabeled));
+         pExpert.additionalExamples(examplesForModel, examplesForEnsemble);
+-              if (ocl::haveOpenCL())
+-                      tldModel->ocl_integrateAdditional(examplesForModel, 
examplesForEnsemble, true);
+-              else
+-                      tldModel->integrateAdditional(examplesForModel, 
examplesForEnsemble, true);
++#ifdef HAVE_OPENCL
++        if (ocl::haveOpenCL())
++            tldModel->ocl_integrateAdditional(examplesForModel, 
examplesForEnsemble, true);
++        else
++#endif
++        tldModel->integrateAdditional(examplesForModel, examplesForEnsemble, 
true);
+         examplesForModel.clear(); examplesForEnsemble.clear();
+         nExpert.additionalExamples(examplesForModel, examplesForEnsemble);
+ 
+-              if (ocl::haveOpenCL())
+-                      tldModel->ocl_integrateAdditional(examplesForModel, 
examplesForEnsemble, false);
+-              else
+-                      tldModel->integrateAdditional(examplesForModel, 
examplesForEnsemble, false);
++#ifdef HAVE_OPENCL
++        if (ocl::haveOpenCL())
++            tldModel->ocl_integrateAdditional(examplesForModel, 
examplesForEnsemble, false);
++        else
++#endif
++            tldModel->integrateAdditional(examplesForModel, 
examplesForEnsemble, false);
+     }
+     else
+     {
+diff --git opencv_contrib-master/modules/xfeatures2d/src/surf.cpp 
opencv_contrib-master/modules/xfeatures2d/src/surf.cpp
+index 673817e..af5ceaf6 100644
+--- opencv_contrib-master/modules/xfeatures2d/src/surf.cpp
++++ opencv_contrib-master/modules/xfeatures2d/src/surf.cpp
+@@ -892,6 +892,7 @@ void SURF_Impl::detectAndCompute(InputArray _img, 
InputArray _mask,
+     CV_Assert(!_img.empty() && CV_MAT_DEPTH(imgtype) == CV_8U && (imgcn == 1 
|| imgcn == 3 || imgcn == 4));
+     CV_Assert(_descriptors.needed() || !useProvidedKeypoints);
+ 
++#ifdef HAVE_OPENCL
+     if( ocl::useOpenCL() )
+     {
+         SURF_OCL ocl_surf;
+@@ -918,6 +919,7 @@ void SURF_Impl::detectAndCompute(InputArray _img, 
InputArray _mask,
+             return;
+         }
+     }
++#endif // HAVE_OPENCL
+ 
+     Mat img = _img.getMat(), mask = _mask.getMat(), mask1, sum, msum;
+ 
+diff --git opencv_contrib-master/modules/xfeatures2d/src/surf.hpp 
opencv_contrib-master/modules/xfeatures2d/src/surf.hpp
+index 2c4e271..cf3fda1 100644
+--- opencv_contrib-master/modules/xfeatures2d/src/surf.hpp
++++ opencv_contrib-master/modules/xfeatures2d/src/surf.hpp
+@@ -64,6 +64,7 @@ class SURF_Impl : public SURF
+     bool upright;
+ };
+ 
++#ifdef HAVE_OPENCL
+ class SURF_OCL
+ {
+ public:
+@@ -145,6 +146,7 @@ class SURF_OCL
+ 
+     int status;
+ };
++#endif // HAVE_OPENCL
+ 
+ /*
+ template<typename _Tp> void copyVectorToUMat(const std::vector<_Tp>& v, UMat& 
um)
+diff --git opencv_contrib-master/modules/xfeatures2d/src/surf.ocl.cpp 
opencv_contrib-master/modules/xfeatures2d/src/surf.ocl.cpp
+index b12ebd3..3d9845d 100644
+--- opencv_contrib-master/modules/xfeatures2d/src/surf.ocl.cpp
++++ opencv_contrib-master/modules/xfeatures2d/src/surf.ocl.cpp
+@@ -43,6 +43,9 @@
+ //
+ //M*/
+ #include "precomp.hpp"
++
++#ifdef HAVE_OPENCL
++
+ #include "surf.hpp"
+ 
+ #include <cstdio>
+@@ -461,3 +464,4 @@ bool SURF_OCL::calcOrientation(UMat &keypoints)
+ }
+ }
+ 
++#endif // HAVE_OPENCL

diff --git a/media-libs/opencv/files/opencv-3.1.0-invalid-string-usage.patch 
b/media-libs/opencv/files/opencv-3.1.0-invalid-string-usage.patch
new file mode 100644
index 0000000..c9f85a7
--- /dev/null
+++ b/media-libs/opencv/files/opencv-3.1.0-invalid-string-usage.patch
@@ -0,0 +1,75 @@
+From 9862a8bac536981c1c1a74710741fb40db4beac7 Mon Sep 17 00:00:00 2001
+From: Alexander Alekhin <[email protected]>
+Date: Wed, 23 Sep 2015 12:44:26 +0300
+Subject: [PATCH] fix invalid String usage
+
+---
+ modules/tracking/src/tldDetector.cpp   |  6 +++---
+ modules/ximgproc/samples/live_demo.cpp | 12 ++++++------
+ 2 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git opencv_contrib-master/modules/tracking/src/tldDetector.cpp 
opencv_contrib-master/modules/tracking/src/tldDetector.cpp
+index cbb783e..0916092 100644
+--- opencv_contrib-master/modules/tracking/src/tldDetector.cpp
++++ opencv_contrib-master/modules/tracking/src/tldDetector.cpp
+@@ -122,7 +122,7 @@ namespace cv
+                       ocl::Kernel k;
+                       ocl::ProgramSource src = 
ocl::tracking::tldDetector_oclsrc;
+                       String error;
+-                      ocl::Program prog(src, NULL, error);
++                      ocl::Program prog(src, String(), error);
+                       k.create("NCC", prog);
+                       if (k.empty())
+                               printf("Kernel create failed!!!\n");
+@@ -198,7 +198,7 @@ namespace cv
+                       ocl::Kernel k;
+                       ocl::ProgramSource src = 
ocl::tracking::tldDetector_oclsrc;
+                       String error;
+-                      ocl::Program prog(src, NULL, error);
++                      ocl::Program prog(src, String(), error);
+                       k.create("batchNCC", prog);
+                       if (k.empty())
+                               printf("Kernel create failed!!!\n");
+@@ -355,7 +355,7 @@ namespace cv
+                       ocl::Kernel k;
+                       ocl::ProgramSource src = 
ocl::tracking::tldDetector_oclsrc;
+                       String error;
+-                      ocl::Program prog(src, NULL, error);
++                      ocl::Program prog(src, String(), error);
+                       k.create("NCC", prog);
+                       if (k.empty())
+                               printf("Kernel create failed!!!\n");
+diff --git opencv_contrib-master/modules/ximgproc/samples/live_demo.cpp 
opencv_contrib-master/modules/ximgproc/samples/live_demo.cpp
+index dd5dc1b..8e16de3 100644
+--- opencv_contrib-master/modules/ximgproc/samples/live_demo.cpp
++++ opencv_contrib-master/modules/ximgproc/samples/live_demo.cpp
+@@ -189,7 +189,7 @@ int main()
+     
+     //Thread trackbar
+     cv::setNumThreads(g_numberOfCPUs); //speedup filtering
+-    createTrackbar("Threads", NULL, &g_numberOfCPUs, cv::getNumberOfCPUs(), 
changeNumberOfCpuCallback);
++    createTrackbar("Threads", String(), &g_numberOfCPUs, 
cv::getNumberOfCPUs(), changeNumberOfCpuCallback);
+ 
+     //Buttons to choose different modes
+     createButton("Mode Details Enhancement", changeModeCallback, 
(void*)filterDetailEnhancement, QT_RADIOBOX, true);
+@@ -199,15 +199,15 @@ int main()
+ 
+     //sliders for Details Enhancement mode
+     g_filterOp = filterDetailEnhancement; //set Details Enhancement as 
default filter
+-    createTrackbar("Detail contrast", NULL, &g_contrastBase, 200);
+-    createTrackbar("Detail level" , NULL, &g_detailsLevel, 200);
++    createTrackbar("Detail contrast", String(), &g_contrastBase, 200);
++    createTrackbar("Detail level" , String(), &g_detailsLevel, 200);
+     
+     //sliders for Stylizing mode
+-    createTrackbar("Style gamma", NULL, &g_edgesGamma, 300);
++    createTrackbar("Style gamma", String(), &g_edgesGamma, 300);
+ 
+     //sliders for every mode
+-    createTrackbar("Sigma Spatial", NULL, &g_sigmaSpatial, 200);
+-    createTrackbar("Sigma Color"  , NULL, &g_sigmaColor, 200);
++    createTrackbar("Sigma Spatial", String(), &g_sigmaSpatial, 200);
++    createTrackbar("Sigma Color"  , String(), &g_sigmaColor, 200);
+ 
+     Mat rawFrame, outputFrame;
+     Mat srcFrame, processedFrame;

diff --git a/media-libs/opencv/opencv-3.1.0-r1.ebuild 
b/media-libs/opencv/opencv-3.1.0-r1.ebuild
new file mode 100644
index 0000000..bbbcde9
--- /dev/null
+++ b/media-libs/opencv/opencv-3.1.0-r1.ebuild
@@ -0,0 +1,252 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_2,3_3,3_4,3_5} )
+
+inherit toolchain-funcs cmake-utils python-single-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";
+
+SRC_URI="
+       mirror://sourceforge/opencvlibrary/opencv-unix/${PV}/${P}.zip
+       https://github.com/Itseez/${PN}/archive/${PV}.zip -> ${P}.zip
+       contrib? ( https://github.com/Itseez/${PN}_contrib/archive/${PV}.zip -> 
${PN}_contrib.zip )"
+
+LICENSE="BSD"
+SLOT="0/3.1" # subslot = libopencv* soname version
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux"
+IUSE="contrib cuda doc +eigen examples ffmpeg gdal gphoto2 gstreamer gtk 
ieee1394 ipp jpeg jpeg2k libav opencl openexr opengl openmp pch png +python qt4 
qt5 testprograms threads tiff vaapi v4l vtk webp xine"
+REQUIRED_USE="
+       python? ( ${PYTHON_REQUIRED_USE} )
+       ?? ( qt4 qt5 )
+"
+
+# 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? ( !qt4 )
+#      opengl? ( || ( gtk qt4 ) )
+#      openmp? ( !threads )
+
+RDEPEND="
+       app-arch/bzip2
+       sys-libs/zlib
+       cuda? ( >=dev-util/nvidia-cuda-toolkit-5.5 )
+       ffmpeg? (
+               libav? ( media-video/libav:0= )
+               !libav? ( media-video/ffmpeg:0= )
+       )
+       gdal? ( sci-libs/gdal )
+       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 )
+       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}] )
+       qt4? (
+               dev-qt/qtgui:4
+               dev-qt/qttest:4
+               opengl? ( dev-qt/qtopengl:4 )
+       )
+       qt5? (
+               dev-qt/qtgui:5
+               dev-qt/qttest:5
+               dev-qt/qtconcurrent:5
+               opengl? ( dev-qt/qtopengl:5 )
+       )
+       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 )
+"
+
+pkg_setup() {
+       use python && python-single-r1_pkg_setup
+       java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+
+       epatch "${FILESDIR}/${PN}-3.0.0-gles.patch" \
+               "${FILESDIR}/${PN}-3.1.0-cmake-no-opengl.patch"
+
+       # remove bundled stuff
+       rm -rf 3rdparty
+       sed -i \
+               -e '/add_subdirectory(.*3rdparty.*)/ d' \
+               CMakeLists.txt cmake/*cmake || die
+
+       if use contrib; then
+
+               cd "${WORKDIR}"
+               epatch "${FILESDIR}/${PN}-3.1.0-fix-hal-headers.patch" \
+                       "${FILESDIR}/${PN}-3.1.0-fix-ocl-declaration.patch" \
+                       "${FILESDIR}/${PN}-3.1.0-invalid-string-usage.patch"
+       fi
+
+       java-pkg-opt-2_src_prepare
+}
+
+src_configure() {
+       if use openmp; then
+               tc-has-openmp || die "Please switch to an openmp compatible 
compiler"
+       fi
+
+       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
+       local mycmakeargs=(
+       # the optinal dependency libraries
+               $(cmake-utils_use_with ieee1394 1394)
+               -DWITH_AVFOUNDATION=OFF # IOS
+               -DWITH_CARBON=OFF # APPLE
+               $(cmake-utils_use_with eigen)
+               $(cmake-utils_use_with ffmpeg)
+               -DWITH_VFW=OFF     # video windows support
+               $(cmake-utils_use_with gstreamer)
+               -DWITH_GSTREAMER_0_10=OFF
+               $(cmake-utils_use_with gtk)
+               -DWITH_GTK_2_X=OFF
+               $(cmake-utils_use_with ipp)
+               $(cmake-utils_use_with java)
+               $(cmake-utils_use_with jpeg2k JASPER)
+               $(cmake-utils_use_with jpeg)
+               $(cmake-utils_use_with webp)
+               $(cmake-utils_use_with opencl)
+               $(cmake-utils_use_with gphoto2)
+               $(cmake-utils_use_with openexr)
+               $(cmake-utils_use_with opengl)
+               $(cmake-utils_use_with openmp)
+               -DWITH_OPENNI=OFF       #not packaged
+               -DWITH_OPENNI2=OFF      #not packaged
+               $(cmake-utils_use_with png)
+               $(cmake-utils_use_build python opencv_python)
+               -DWITH_PVAPI=OFF                                        # not 
packaged
+               -DWITH_GIGEAPI=OFF
+               -DWITH_QUICKTIME=OFF
+               -DWITH_WIN32UI=OFF
+               $(cmake-utils_use_with threads TBB)
+               -DWITH_CSTRIPES=OFF
+               -DWITH_PTHREADS_PF=ON
+               $(cmake-utils_use_with tiff)
+               -DWITH_UNICAP=OFF                                       # not 
packaged
+               $(cmake-utils_use_with v4l V4L)
+               $(cmake-utils_use_with vtk VTK)
+               -DWITH_LIBV4L=ON
+               -DWITH_DSHOW=ON               # direct show supp
+               -DWITH_MSMF=OFF
+               -DWITH_VIDEOINPUT=OFF                                   # 
windows only
+               -DWITH_XIMEA=OFF # windows only
+               $(cmake-utils_use_with xine)
+               -DWITH_CLP=OFF
+               $(cmake-utils_use_with opencl)
+               -DWITH_OPENCL_SVM=OFF
+               $(cmake-utils_use_with opencl OPENCLAMDFFT)
+               $(cmake-utils_use_with opencl OPENCLAMDBLAS)
+               -DWITH_DIRECTX=OFF
+               -DWITH_INTELPERC=OFF
+               -DWITH_IPP_A=OFF
+               -DWITH_MATLAB=ON #default
+               $(cmake-utils_use_with vaapi VA)
+               $(cmake-utils_use_with vaapi VA_INTEL)
+               $(cmake-utils_use_with gdal gdal)
+               #
+               # OpenCV build components
+               -DBUILD_SHARED_LIBS=ON
+               -DBUILD_ANDROID_EXAMPLES=OFF
+               $(cmake-utils_use_build doc DOCS)
+               $(cmake-utils_use_build examples)
+               $(cmake-utils_use_build java opencv_java)               #for 
-java bug #555650
+               -DBUILD_PERF_TESTS=OFF
+               $(cmake-utils_use_build testprograms TESTS)
+       # install examples, tests etc
+               $(cmake-utils_use examples INSTALL_C_EXAMPLES)
+               $(cmake-utils_use testprograms INSTALL_TESTS)
+       # build options
+               $(cmake-utils_use_enable pch PRECOMPILED_HEADERS)
+               -DOPENCV_EXTRA_FLAGS_RELEASE=""                         # black 
magic
+       )
+
+       if use qt4; then
+               mycmakeargs+=( "-DWITH_QT=4" )
+       elif use qt5; then
+               mycmakeargs+=( "-DWITH_QT=5" )
+       else
+               mycmakeargs+=( "-DWITH_QT=OFF" )
+       fi
+
+       if use contrib; then
+               mycmakeargs+=( 
"-DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-master/modules" )
+       fi
+
+       if use cuda; then
+               mycmakeargs+=( "-DWITH_CUDA=ON" )
+               mycmakeargs+=( "-DWITH_CUBLAS=ON" )
+               mycmakeargs+=( "-DWITH_CUFFT=ON" )
+               mycmakeargs+=( "-DWITH_NVCUVID=ON" ) #Nvidia video decoding 
library supp
+       else
+               mycmakeargs+=( "-DWITH_CUDA=OFF" )
+               mycmakeargs+=( "-DWITH_CUBLAS=OFF" )
+               mycmakeargs+=( "-DWITH_CUFFT=OFF" )
+               mycmakeargs+=( "-DWITH_NVCUVID=OFF" )
+       fi
+
+       if use examples && use python; then
+               mycmakeargs+=( "-DINSTALL_PYTHON_EXAMPLES=ON" )
+       else
+               mycmakeargs+=( "-DINSTALL_PYTHON_EXAMPLES=OFF" )
+       fi
+
+       # things we want to be hard off or not yet figured out
+       mycmakeargs+=(
+               "-DOPENCV_BUILD_3RDPARTY_LIBS=OFF"
+               "-DBUILD_LATEX_DOCS=OFF"
+               "-DBUILD_PACKAGE=OFF"
+               "-DENABLE_PROFILING=OFF"
+       )
+
+       # things we want to be hard enabled not worth useflag
+       mycmakeargs+=(
+               "-DCMAKE_SKIP_RPATH=ON"
+               "-DOPENCV_DOC_INSTALL_PATH=${EPREFIX}/usr/share/doc/${PF}"
+       )
+
+       # hardcode cuda paths
+       mycmakeargs+=(
+               "-DCUDA_NPP_LIBRARY_ROOT_DIR=/opt/cuda"
+       )
+
+       # workaround for bug 413429
+       tc-export CC CXX
+
+       cmake-utils_src_configure
+}

Reply via email to