mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
media-libs/opencv: drop old 3.1.0-r1 and patches
Package-Manager: portage-2.2.26
This commit is contained in:
@@ -1,91 +0,0 @@
|
||||
From f529a1df2b17bcada1179ddcaf1352e3a5ba97b8 Mon Sep 17 00:00:00 2001
|
||||
From: Maksim Shabunin <maksim.shabunin@itseez.com>
|
||||
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 {
|
||||
|
||||
@@ -1,214 +0,0 @@
|
||||
From ac8dd366e4a1877e0af16961a4094496bed955f7 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Alekhin <alexander.alekhin@itseez.com>
|
||||
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
|
||||
@@ -1,75 +0,0 @@
|
||||
From 9862a8bac536981c1c1a74710741fb40db4beac7 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Alekhin <alexander.alekhin@itseez.com>
|
||||
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;
|
||||
@@ -1,252 +0,0 @@
|
||||
# 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
|
||||
}
|
||||
Reference in New Issue
Block a user