update buildroot to 2017.02.11

This commit is contained in:
jbnadal
2018-05-22 15:35:47 +02:00
parent 4bf1f5e091
commit a3c10bd762
9257 changed files with 433426 additions and 1701 deletions

View File

@@ -0,0 +1,259 @@
From f71c288c6d853e623461f97cd72e6a9e6541f61a Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Tue, 1 Nov 2016 09:25:30 +0100
Subject: [PATCH 1/4] Bug#714923: opencv FTBFS on sparc64
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=714923
opencv uses functions from <ext/atomicity.h>, but it wrongly assumes
this functions apply to an int type. While it is true for some
architectures, some architectures are using a long type there. The
correct type to use is _Atomic_word.
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
[Samuel Martin: convert to git diff]
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
---
modules/core/include/opencv2/core/core.hpp | 10 +++++-----
modules/core/include/opencv2/core/gpumat.hpp | 2 +-
modules/core/include/opencv2/core/operations.hpp | 4 ++--
modules/core/src/gpumat.cpp | 2 +-
modules/core/src/matrix.cpp | 4 ++--
modules/core/src/system.cpp | 8 ++++----
modules/gpu/include/opencv2/gpu/gpu.hpp | 2 +-
modules/ocl/include/opencv2/ocl/ocl.hpp | 2 +-
modules/ocl/src/matrix_operations.cpp | 2 +-
modules/python/src2/cv2.cpp | 8 ++++----
10 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/modules/core/include/opencv2/core/core.hpp b/modules/core/include/opencv2/core/core.hpp
index 591d50a..5b4261e 100644
--- a/modules/core/include/opencv2/core/core.hpp
+++ b/modules/core/include/opencv2/core/core.hpp
@@ -1290,7 +1290,7 @@ public:
operator const _Tp*() const;
_Tp* obj; //< the object pointer.
- int* refcount; //< the associated reference counter
+ _Atomic_word* refcount; //< the associated reference counter
};
template<typename T>
@@ -1490,9 +1490,9 @@ class CV_EXPORTS MatAllocator
public:
MatAllocator() {}
virtual ~MatAllocator() {}
- virtual void allocate(int dims, const int* sizes, int type, int*& refcount,
+ virtual void allocate(int dims, const int* sizes, int type, _Atomic_word*& refcount,
uchar*& datastart, uchar*& data, size_t* step) = 0;
- virtual void deallocate(int* refcount, uchar* datastart, uchar* data) = 0;
+ virtual void deallocate(_Atomic_word* refcount, uchar* datastart, uchar* data) = 0;
};
/*!
@@ -1985,7 +1985,7 @@ public:
//! pointer to the reference counter;
// when matrix points to user-allocated data, the pointer is NULL
- int* refcount;
+ _Atomic_word* refcount;
//! helper fields used in locateROI and adjustROI
uchar* datastart;
@@ -3449,7 +3449,7 @@ public:
{
Hdr(int _dims, const int* _sizes, int _type);
void clear();
- int refcount;
+ _Atomic_word refcount;
int dims;
int valueOffset;
size_t nodeSize;
diff --git a/modules/core/include/opencv2/core/gpumat.hpp b/modules/core/include/opencv2/core/gpumat.hpp
index 68647d9..d488c27 100644
--- a/modules/core/include/opencv2/core/gpumat.hpp
+++ b/modules/core/include/opencv2/core/gpumat.hpp
@@ -301,7 +301,7 @@ namespace cv { namespace gpu
//! pointer to the reference counter;
// when GpuMatrix points to user-allocated data, the pointer is NULL
- int* refcount;
+ _Atomic_word* refcount;
//! helper fields used in locateROI and adjustROI
uchar* datastart;
diff --git a/modules/core/include/opencv2/core/operations.hpp b/modules/core/include/opencv2/core/operations.hpp
index 0ae51c6..a455502 100644
--- a/modules/core/include/opencv2/core/operations.hpp
+++ b/modules/core/include/opencv2/core/operations.hpp
@@ -2589,7 +2589,7 @@ template<typename _Tp> inline Ptr<_Tp>::Ptr(_Tp* _obj) : obj(_obj)
{
if(obj)
{
- refcount = (int*)fastMalloc(sizeof(*refcount));
+ refcount = (_Atomic_word*)fastMalloc(sizeof(*refcount));
*refcount = 1;
}
else
@@ -2628,7 +2628,7 @@ template<typename _Tp> inline Ptr<_Tp>& Ptr<_Tp>::operator = (const Ptr<_Tp>& _p
{
if (this != &_ptr)
{
- int* _refcount = _ptr.refcount;
+ _Atomic_word* _refcount = _ptr.refcount;
if( _refcount )
CV_XADD(_refcount, 1);
release();
diff --git a/modules/core/src/gpumat.cpp b/modules/core/src/gpumat.cpp
index 9669191..0bd2568 100644
--- a/modules/core/src/gpumat.cpp
+++ b/modules/core/src/gpumat.cpp
@@ -716,7 +716,7 @@ void cv::gpu::GpuMat::create(int _rows, int _cols, int _type)
datastart = data = static_cast<uchar*>(devPtr);
dataend = data + nettosize;
- refcount = static_cast<int*>(fastMalloc(sizeof(*refcount)));
+ refcount = static_cast<_Atomic_word*>(fastMalloc(sizeof(*refcount)));
*refcount = 1;
}
}
diff --git a/modules/core/src/matrix.cpp b/modules/core/src/matrix.cpp
index 57abffc..7b840a0 100644
--- a/modules/core/src/matrix.cpp
+++ b/modules/core/src/matrix.cpp
@@ -213,7 +213,7 @@ void Mat::create(int d, const int* _sizes, int _type)
{
size_t totalsize = alignSize(step.p[0]*size.p[0], (int)sizeof(*refcount));
data = datastart = (uchar*)fastMalloc(totalsize + (int)sizeof(*refcount));
- refcount = (int*)(data + totalsize);
+ refcount = (_Atomic_word*)(data + totalsize);
*refcount = 1;
}
else
@@ -228,7 +228,7 @@ void Mat::create(int d, const int* _sizes, int _type)
allocator = 0;
size_t totalSize = alignSize(step.p[0]*size.p[0], (int)sizeof(*refcount));
data = datastart = (uchar*)fastMalloc(totalSize + (int)sizeof(*refcount));
- refcount = (int*)(data + totalSize);
+ refcount = (_Atomic_word*)(data + totalSize);
*refcount = 1;
}
#else
diff --git a/modules/core/src/system.cpp b/modules/core/src/system.cpp
index f5a1af2..9a7b262 100644
--- a/modules/core/src/system.cpp
+++ b/modules/core/src/system.cpp
@@ -892,7 +892,7 @@ struct Mutex::Impl
void unlock() { LeaveCriticalSection(&cs); }
CRITICAL_SECTION cs;
- int refcount;
+ _Atomic_word refcount;
};
#ifndef __GNUC__
@@ -920,7 +920,7 @@ struct Mutex::Impl
void unlock() { OSSpinLockUnlock(&sl); }
OSSpinLock sl;
- int refcount;
+ _Atomic_word refcount;
};
#elif defined __linux__ && !defined ANDROID && !defined __LINUXTHREADS_OLD__
@@ -935,7 +935,7 @@ struct Mutex::Impl
void unlock() { pthread_spin_unlock(&sl); }
pthread_spinlock_t sl;
- int refcount;
+ _Atomic_word refcount;
};
#else
@@ -950,7 +950,7 @@ struct Mutex::Impl
void unlock() { pthread_mutex_unlock(&sl); }
pthread_mutex_t sl;
- int refcount;
+ _Atomic_word refcount;
};
#endif
diff --git a/modules/gpu/include/opencv2/gpu/gpu.hpp b/modules/gpu/include/opencv2/gpu/gpu.hpp
index de16982..266fa2f 100644
--- a/modules/gpu/include/opencv2/gpu/gpu.hpp
+++ b/modules/gpu/include/opencv2/gpu/gpu.hpp
@@ -125,7 +125,7 @@ public:
size_t step;
uchar* data;
- int* refcount;
+ _Atomic_word* refcount;
uchar* datastart;
uchar* dataend;
diff --git a/modules/ocl/include/opencv2/ocl/ocl.hpp b/modules/ocl/include/opencv2/ocl/ocl.hpp
index e8eb3e8..5ea05fc 100644
--- a/modules/ocl/include/opencv2/ocl/ocl.hpp
+++ b/modules/ocl/include/opencv2/ocl/ocl.hpp
@@ -404,7 +404,7 @@ namespace cv
//! pointer to the reference counter;
// when oclMatrix points to user-allocated data, the pointer is NULL
- int *refcount;
+ _Atomic_word *refcount;
//! helper fields used in locateROI and adjustROI
//datastart and dataend are not used in current version
diff --git a/modules/ocl/src/matrix_operations.cpp b/modules/ocl/src/matrix_operations.cpp
index 331e432..c61dca4 100644
--- a/modules/ocl/src/matrix_operations.cpp
+++ b/modules/ocl/src/matrix_operations.cpp
@@ -591,7 +591,7 @@ void cv::ocl::oclMat::createEx(int _rows, int _cols, int _type, DevMemRW rw_type
datastart = data = (uchar *)dev_ptr;
dataend = data + nettosize;
- refcount = (int *)fastMalloc(sizeof(*refcount));
+ refcount = (_Atomic_word *)fastMalloc(sizeof(*refcount));
*refcount = 1;
}
}
diff --git a/modules/python/src2/cv2.cpp b/modules/python/src2/cv2.cpp
index 04cea39..40e5d43 100644
--- a/modules/python/src2/cv2.cpp
+++ b/modules/python/src2/cv2.cpp
@@ -157,12 +157,12 @@ static PyObject* failmsgp(const char *fmt, ...)
static size_t REFCOUNT_OFFSET = (size_t)&(((PyObject*)0)->ob_refcnt) +
(0x12345678 != *(const size_t*)"\x78\x56\x34\x12\0\0\0\0\0")*sizeof(int);
-static inline PyObject* pyObjectFromRefcount(const int* refcount)
+static inline PyObject* pyObjectFromRefcount(const _Atomic_word* refcount)
{
return (PyObject*)((size_t)refcount - REFCOUNT_OFFSET);
}
-static inline int* refcountFromPyObject(const PyObject* obj)
+static inline _Atomic_word* refcountFromPyObject(const PyObject* obj)
{
return (int*)((size_t)obj + REFCOUNT_OFFSET);
}
@@ -173,7 +173,7 @@ public:
NumpyAllocator() {}
~NumpyAllocator() {}
- void allocate(int dims, const int* sizes, int type, int*& refcount,
+ void allocate(int dims, const int* sizes, int type, _Atomic_word*& refcount,
uchar*& datastart, uchar*& data, size_t* step)
{
PyEnsureGIL gil;
@@ -206,7 +206,7 @@ public:
datastart = data = (uchar*)PyArray_DATA((PyArrayObject*) o);
}
- void deallocate(int* refcount, uchar*, uchar*)
+ void deallocate(_Atomic_word* refcount, uchar*, uchar*)
{
PyEnsureGIL gil;
if( !refcount )
--
2.10.2

View File

@@ -0,0 +1,61 @@
From e5e71c31d54562f9c67a8226f0bfc08ad24b81cf Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Tue, 1 Nov 2016 09:30:23 +0100
Subject: [PATCH 2/4] From upstream master branch:
https://github.com/Itseez/opencv/blob/master/modules/core/src/
Do not include sysctl.h targeting Linux systems.
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
[Samuel Martin: convert patch to git diff, add cap_ffmpeg_impl.hpp fix]
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
---
modules/core/src/parallel.cpp | 2 +-
modules/core/src/system.cpp | 2 +-
modules/highgui/src/cap_ffmpeg_impl.hpp | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules/core/src/parallel.cpp b/modules/core/src/parallel.cpp
index 4459a24..0374876 100644
--- a/modules/core/src/parallel.cpp
+++ b/modules/core/src/parallel.cpp
@@ -56,7 +56,7 @@
#include <sys/types.h>
#if defined ANDROID
#include <sys/sysconf.h>
- #else
+ #elif defined __APPLE__
#include <sys/sysctl.h>
#endif
#endif
diff --git a/modules/core/src/system.cpp b/modules/core/src/system.cpp
index 9a7b262..731f090 100644
--- a/modules/core/src/system.cpp
+++ b/modules/core/src/system.cpp
@@ -163,7 +163,7 @@ std::wstring GetTempFileNameWinRT(std::wstring prefix)
#include <sys/types.h>
#if defined ANDROID
#include <sys/sysconf.h>
-#else
+#elif defined __APPLE__
#include <sys/sysctl.h>
#endif
#endif
diff --git a/modules/highgui/src/cap_ffmpeg_impl.hpp b/modules/highgui/src/cap_ffmpeg_impl.hpp
index dc3e10d..23674ff 100644
--- a/modules/highgui/src/cap_ffmpeg_impl.hpp
+++ b/modules/highgui/src/cap_ffmpeg_impl.hpp
@@ -126,9 +126,9 @@ extern "C" {
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
- #include <sys/sysctl.h>
#include <sys/time.h>
#if defined __APPLE__
+ #include <sys/sysctl.h>
#include <mach/clock.h>
#include <mach/mach.h>
#endif
--
2.10.2

View File

@@ -0,0 +1,37 @@
From 18c868c47307b786d1bea729dccaad7f8d696cb7 Mon Sep 17 00:00:00 2001
From: Bernd Kuhls <bernd.kuhls@t-online.de>
Date: Tue, 6 Sep 2016 11:49:00 +0200
Subject: [PATCH 1/1] types_c.h: Fix compiling VFP assembler code
Replace asm by __asm__ according to
https://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html#Alternate-Keywords
as suggested by Arnout Vandecappelle:
http://lists.busybox.net/pipermail/buildroot/2016-September/171491.html
to fix build errors in ffmpeg with opencv2 support detected by
buildroot autobuilders:
http://autobuild.buildroot.net/results/c32/c32a21240a9933796ee850349a62ff3c2314f25c/build-end.log
Patch sent upstream: https://github.com/opencv/opencv/pull/7242
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
modules/core/include/opencv2/core/types_c.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/core/include/opencv2/core/types_c.h b/modules/core/include/opencv2/core/types_c.h
index c21cd2c..771715d 100644
--- a/modules/core/include/opencv2/core/types_c.h
+++ b/modules/core/include/opencv2/core/types_c.h
@@ -318,7 +318,7 @@ enum {
int res; \
float temp; \
(void)temp; \
- asm(_asm_string : [res] "=r" (res), [temp] "=w" (temp) : [value] "w" (_value)); \
+ __asm__(_asm_string : [res] "=r" (res), [temp] "=w" (temp) : [value] "w" (_value)); \
return res;
// 2. version for double
#ifdef __clang__
--
2.9.3

View File

@@ -0,0 +1,39 @@
From 22e03ef8a9e3adcbc6b2f16c3cc98e4e14443eed Mon Sep 17 00:00:00 2001
From: Bernd Kuhls <bernd.kuhls@t-online.de>
Date: Sat, 24 Sep 2016 17:51:22 +0200
Subject: [PATCH 1/1] CMakeLists.txt: Do not add libdl to LINKER_LIBS for
static builds
Without this patch -ldl is present in opencv.pc which breaks OpenCV
detection by ffmpeg, detected by buildroot autobuilders:
http://autobuild.buildroot.net/results/765/7657e01481995a4f0d725467e935a83928a59a04//ffmpeg-3.1.3/config.log
/home/peko/autobuild/instance-1/output/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/4.9.4/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: cannot find -ldl
Patch sent upstream: https://github.com/opencv/opencv/pull/7337
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
CMakeLists.txt | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 007b80d..99b047d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -457,7 +457,10 @@ if(UNIX)
elseif(${CMAKE_SYSTEM_NAME} MATCHES "QNX")
set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} m)
else()
- set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} dl m pthread rt)
+ if(BUILD_SHARED_LIBS)
+ set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} dl)
+ endif()
+ set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} m pthread rt)
endif()
else()
set(HAVE_LIBPTHREAD YES)
--
2.9.3

View File

@@ -0,0 +1,316 @@
menuconfig BR2_PACKAGE_OPENCV
bool "opencv-2.4"
select BR2_PACKAGE_ZLIB
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_USE_WCHAR
help
OpenCV (Open Source Computer Vision) is a library of programming
functions for real time computer vision.
http://opencv.org/
if BR2_PACKAGE_OPENCV
comment "OpenCV modules"
config BR2_PACKAGE_OPENCV_LIB_CALIB3D
bool "calib3d"
default y
select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
help
Include opencv_calib3d module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_CONTRIB
bool "contrib"
default y
select BR2_PACKAGE_OPENCV_LIB_CALIB3D
select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
select BR2_PACKAGE_OPENCV_LIB_ML
select BR2_PACKAGE_OPENCV_LIB_OBJDETECT
select BR2_PACKAGE_OPENCV_LIB_VIDEO
help
Include opencv_contrib module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_FEATURES2D
bool "features2d"
default y
select BR2_PACKAGE_OPENCV_LIB_FLANN
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
help
Include opencv_features2d module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_FLANN
bool "flann"
default y
# opencv_core dependency is already enabled
help
Include opencv_flann module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_GPU
bool "gpu"
depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # opencv libphoto
select BR2_PACKAGE_OPENCV_LIB_CALIB3D
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
select BR2_PACKAGE_OPENCV_LIB_LEGACY
select BR2_PACKAGE_OPENCV_LIB_OBJDETECT
select BR2_PACKAGE_OPENCV_LIB_PHOTO
select BR2_PACKAGE_OPENCV_LIB_VIDEO
depends on !BR2_STATIC_LIBS
help
Include opencv_gpu module into the OpenCV build.
comment "gpu module needs a toolchain w/ dynamic libraries"
depends on BR2_STATIC_LIBS
config BR2_PACKAGE_OPENCV_LIB_HIGHGUI
bool "highgui"
default y
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
help
Include opencv_highgui module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_IMGPROC
bool "imgproc"
default y
# opencv_core dependency is already enabled
help
Include opencv_imgproc module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_LEGACY
bool "legacy"
default y
select BR2_PACKAGE_OPENCV_LIB_CALIB3D
select BR2_PACKAGE_OPENCV_LIB_ML
select BR2_PACKAGE_OPENCV_LIB_VIDEO
help
Include opencv_legacy module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_ML
bool "ml (machine learning)"
default y
# opencv_core dependency is already enabled
help
Include opencv_ml module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_NONFREE
bool "nonfree"
select BR2_PACKAGE_OPENCV_LIB_CALIB3D
select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
help
Include opencv_nonfree module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_OBJDETECT
bool "objdetect"
default y
# opencv_core dependency is already enabled
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
help
Include opencv_objdetect module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_PHOTO
bool "photo"
default y
depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # Binutils 2.25 nios2 issue
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
help
Include opencv_photo module into the OpenCV build.
comment "opencv_python module requires numpy which is not yet available."
config BR2_PACKAGE_OPENCV_LIB_STITCHING
bool "stitching"
default y
select BR2_PACKAGE_OPENCV_LIB_CALIB3D
select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
select BR2_PACKAGE_OPENCV_LIB_OBJDETECT
help
Include opencv_stitching module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_SUPERRES
bool "superres"
default y
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
select BR2_PACKAGE_OPENCV_LIB_VIDEO
help
Include opencv_superres "super resolution" - module into the OpenCV
build.
config BR2_PACKAGE_OPENCV_LIB_TS
bool "ts (touchscreen)"
default y
# opencv_core dependency is already enabled
select BR2_PACKAGE_OPENCV_LIB_CALIB3D
select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
select BR2_PACKAGE_OPENCV_LIB_HIGHGUI
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
select BR2_PACKAGE_OPENCV_LIB_VIDEO
help
Include opencv_ts module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_VIDEO
bool "video"
default y
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
help
Include opencv_video module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB
bool "videostab"
default y
depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # opencv libphoto
select BR2_PACKAGE_OPENCV_LIB_CALIB3D
select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
select BR2_PACKAGE_OPENCV_LIB_HIGHGUI
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
select BR2_PACKAGE_OPENCV_LIB_PHOTO
select BR2_PACKAGE_OPENCV_LIB_VIDEO
help
Include opencv_videostab module into the OpenCV build.
if !BR2_STATIC_LIBS
comment "Test sets"
config BR2_PACKAGE_OPENCV_BUILD_TESTS
bool "build tests"
config BR2_PACKAGE_OPENCV_BUILD_PERF_TESTS
bool "build performance tests"
endif
comment "Tests sets need a toolchain w/ dynamic libraries"
depends on BR2_STATIC_LIBS
comment "3rd party support"
config BR2_PACKAGE_OPENCV_WITH_FFMPEG
bool "ffmpeg support"
depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
select BR2_PACKAGE_BZIP2
select BR2_PACKAGE_FFMPEG
select BR2_PACKAGE_FFMPEG_SWSCALE
help
Use ffmpeg from the target system.
choice
prompt "gstreamer support"
help
OpenCV prefers gstreamer-1 over gstreamer-0.10.
config BR2_PACKAGE_OPENCV_WITHOUT_GSTREAMER
bool "none"
config BR2_PACKAGE_OPENCV_WITH_GSTREAMER
bool "gstreamer-0.10"
depends on BR2_USE_MMU # gstreamer -> libglib2
depends on BR2_USE_WCHAR # gstreamer -> libglib2
depends on BR2_TOOLCHAIN_HAS_THREADS # gstreamer -> libglib2
depends on !BR2_STATIC_LIBS # gstreamer
select BR2_PACKAGE_GSTREAMER
select BR2_PACKAGE_GST_PLUGINS_BASE
select BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_APP
comment "gstreamer-0.10 support needs a toolchain w/ wchar, threads, dynamic library"
depends on BR2_USE_MMU
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
BR2_STATIC_LIBS
config BR2_PACKAGE_OPENCV_WITH_GSTREAMER1
bool "gstreamer-1.x"
depends on BR2_USE_MMU # gstreamer1 -> libglib2
depends on BR2_USE_WCHAR # gstreamer1 -> libglib2
depends on BR2_TOOLCHAIN_HAS_THREADS # gstreamer1 -> libglib2
select BR2_PACKAGE_GSTREAMER1
select BR2_PACKAGE_GST1_PLUGINS_BASE
select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP
comment "gstreamer-1.x support needs a toolchain w/ wchar, threads"
depends on BR2_USE_MMU
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
endchoice
config BR2_PACKAGE_OPENCV_WITH_GTK
bool "gtk support"
depends on BR2_PACKAGE_XORG7
depends on BR2_USE_WCHAR # libgtk2 -> libglib2
depends on BR2_TOOLCHAIN_HAS_THREADS # libgtk2 -> libglib2
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_USE_MMU # libgtk2 -> glib2
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk2 -> pango -> harfbuzz
depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
select BR2_PACKAGE_LIBGTK2
config BR2_PACKAGE_OPENCV_WITH_JASPER
bool "jpeg2000 support"
select BR2_PACKAGE_JASPER
help
Enable jpeg2000 support.
Note: this does not use the libjasper bundled with opencv,
but uses the libjasper package installed system-wide by
Buildroot.
config BR2_PACKAGE_OPENCV_WITH_JPEG
bool "jpeg support"
select BR2_PACKAGE_JPEG
help
Use shared libjpeg from the target system.
config BR2_PACKAGE_OPENCV_WITH_PNG
bool "png support"
select BR2_PACKAGE_LIBPNG
help
Use shared libpng from the target system.
config BR2_PACKAGE_OPENCV_WITH_QT
bool "qt backend support"
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_USE_MMU # qt
depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # Qt GUI module
select BR2_PACKAGE_QT
select BR2_PACKAGE_QT_STL
select BR2_PACKAGE_QT_GUI_MODULE
select BR2_PACKAGE_QT_TEST
help
Use Qt with QtTest module and STL support
comment "qt backend support needs a toolchain not affected by Binutils bug 19405"
depends on BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405
config BR2_PACKAGE_OPENCV_WITH_TIFF
bool "tiff support"
select BR2_PACKAGE_TIFF
help
Use shared libtiff from the target system.
config BR2_PACKAGE_OPENCV_WITH_V4L
bool "v4l support"
help
Enable Video 4 Linux support.
If the package libv4l is enabled, its support is automatically enabled.
comment "Install options"
config BR2_PACKAGE_OPENCV_INSTALL_DATA
bool "install extra data"
help
Install various data that is used by cv libraries and/or demo
applications, specifically for haarcascades and lbpcascades
features.
For further information: see OpenCV documentation.
endif # BR2_PACKAGE_OPENCV
comment "opencv needs a toolchain w/ C++, NPTL, wchar"
depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS_NPTL)

View File

@@ -0,0 +1,2 @@
# Locally calculated
sha256 94ebcca61c30034d5fb16feab8ec12c8a868f5162d20a9f0396f0f5f6d8bbbff opencv-2.4.13.tar.gz

View File

@@ -0,0 +1,257 @@
################################################################################
#
# opencv
#
################################################################################
OPENCV_VERSION = 2.4.13
OPENCV_SITE = $(call github,itseez,opencv,$(OPENCV_VERSION))
OPENCV_INSTALL_STAGING = YES
OPENCV_LICENSE = BSD-3c
OPENCV_LICENSE_FILES = LICENSE
# OpenCV component options
OPENCV_CONF_OPTS += \
-DBUILD_PERF_TESTS=$(if $(BR2_PACKAGE_OPENCV_BUILD_PERF_TESTS),ON,OFF) \
-DBUILD_TESTS=$(if $(BR2_PACKAGE_OPENCV_BUILD_TESTS),ON,OFF) \
-DBUILD_WITH_DEBUG_INFO=OFF
# OpenCV build options
OPENCV_CONF_OPTS += \
-DBUILD_WITH_STATIC_CRT=OFF \
-DENABLE_FAST_MATH=ON \
-DENABLE_NOISY_WARNINGS=OFF \
-DENABLE_OMIT_FRAME_POINTER=ON \
-DENABLE_PRECOMPILED_HEADERS=OFF \
-DENABLE_PROFILING=OFF \
-DOPENCV_CAN_BREAK_BINARY_COMPATIBILITY=ON
# OpenCV link options
OPENCV_CONF_OPTS += \
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF \
-DCMAKE_SKIP_RPATH=OFF \
-DCMAKE_USE_RELATIVE_PATHS=OFF
# OpenCV packaging options:
OPENCV_CONF_OPTS += \
-DBUILD_PACKAGE=OFF \
-DENABLE_SOLUTION_FOLDERS=OFF \
-DINSTALL_CREATE_DISTRIB=OFF
# OpenCV module selection
OPENCV_CONF_OPTS += \
-DBUILD_opencv_androidcamera=OFF \
-DBUILD_opencv_apps=OFF \
-DBUILD_opencv_calib3d=$(if $(BR2_PACKAGE_OPENCV_LIB_CALIB3D),ON,OFF) \
-DBUILD_opencv_contrib=$(if $(BR2_PACKAGE_OPENCV_LIB_CONTRIB),ON,OFF) \
-DBUILD_opencv_core=ON \
-DBUILD_opencv_dynamicuda=OFF \
-DBUILD_opencv_features2d=$(if $(BR2_PACKAGE_OPENCV_LIB_FEATURES2D),ON,OFF) \
-DBUILD_opencv_flann=$(if $(BR2_PACKAGE_OPENCV_LIB_FLANN),ON,OFF) \
-DBUILD_opencv_gpu=$(if $(BR2_PACKAGE_OPENCV_LIB_GPU),ON,OFF) \
-DBUILD_opencv_highgui=$(if $(BR2_PACKAGE_OPENCV_LIB_HIGHGUI),ON,OFF) \
-DBUILD_opencv_imgproc=$(if $(BR2_PACKAGE_OPENCV_LIB_IMGPROC),ON,OFF) \
-DBUILD_opencv_java=OFF \
-DBUILD_opencv_legacy=$(if $(BR2_PACKAGE_OPENCV_LIB_LEGACY),ON,OFF) \
-DBUILD_opencv_ml=$(if $(BR2_PACKAGE_OPENCV_LIB_ML),ON,OFF) \
-DBUILD_opencv_nonfree=$(if $(BR2_PACKAGE_OPENCV_LIB_NONFREE),ON,OFF) \
-DBUILD_opencv_objdetect=$(if $(BR2_PACKAGE_OPENCV_LIB_OBJDETECT),ON,OFF) \
-DBUILD_opencv_ocl=OFF \
-DBUILD_opencv_photo=$(if $(BR2_PACKAGE_OPENCV_LIB_PHOTO),ON,OFF) \
-DBUILD_opencv_python=OFF \
-DBUILD_opencv_stitching=$(if $(BR2_PACKAGE_OPENCV_LIB_STITCHING),ON,OFF) \
-DBUILD_opencv_superres=$(if $(BR2_PACKAGE_OPENCV_LIB_SUPERRES),ON,OFF) \
-DBUILD_opencv_ts=$(if $(BR2_PACKAGE_OPENCV_LIB_TS),ON,OFF) \
-DBUILD_opencv_video=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEO),ON,OFF) \
-DBUILD_opencv_videostab=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB),ON,OFF) \
-DBUILD_opencv_world=OFF
# Hardware support options.
#
# * PowerPC support is turned off since its only effect is altering CFLAGS,
# adding '-mcpu=G3 -mtune=G5' to them, which is already handled by Buildroot.
OPENCV_CONF_OPTS += \
-DENABLE_AVX=$(if $(BR2_X86_CPU_HAS_AVX),ON,OFF) \
-DENABLE_AVX2=$(if $(BR2_X86_CPU_HAS_AVX2),ON,OFF) \
-DENABLE_POWERPC=OFF \
-DENABLE_SSE=$(if $(BR2_X86_CPU_HAS_SSE),ON,OFF) \
-DENABLE_SSE2=$(if $(BR2_X86_CPU_HAS_SSE2),ON,OFF) \
-DENABLE_SSE3=$(if $(BR2_X86_CPU_HAS_SSE3),ON,OFF) \
-DENABLE_SSE41=$(if $(BR2_X86_CPU_HAS_SSE4),ON,OFF) \
-DENABLE_SSE42=$(if $(BR2_X86_CPU_HAS_SSE42),ON,OFF) \
-DENABLE_SSSE3=$(if $(BR2_X86_CPU_HAS_SSSE3),ON,OFF)
# Cuda stuff
OPENCV_CONF_OPTS += \
-DWITH_CUBLAS=OFF \
-DWITH_CUDA=OFF \
-DWITH_CUFFT=OFF
# NVidia stuff
OPENCV_CONF_OPTS += -DWITH_NVCUVID=OFF
# AMD stuff
OPENCV_CONF_OPTS += \
-DWITH_OPENCLAMDBLAS=OFF \
-DWITH_OPENCLAMDFFT=OFF
# Intel stuff
OPENCV_CONF_OPTS += \
-DWITH_INTELPERC=OFF \
-DWITH_IPP=OFF \
-DWITH_TBB=OFF
# Smartek stuff
OPENCV_CONF_OPTS += -DWITH_GIGEAPI=OFF
# Prosilica stuff
OPENCV_CONF_OPTS += -DWITH_PVAPI=OFF
# Ximea stuff
OPENCV_CONF_OPTS += -DWITH_XIMEA=OFF
# Non-Linux support (Android options) must remain OFF:
OPENCV_CONF_OPTS += \
-DBUILD_ANDROID_CAMERA_WRAPPER=OFF \
-DBUILD_ANDROID_EXAMPLES=OFF \
-DBUILD_FAT_JAVA_LIB=OFF \
-DBUILD_JAVA_SUPPORT=OFF \
-DINSTALL_ANDROID_EXAMPLES=OFF \
-DWITH_ANDROID_CAMERA=OFF
# Non-Linux support (Mac OSX options) must remain OFF:
OPENCV_CONF_OPTS += \
-DWITH_AVFOUNDATION=OFF \
-DWITH_CARBON=OFF \
-DWITH_QUICKTIME=OFF
# Non-Linux support (Windows options) must remain OFF:
OPENCV_CONF_OPTS += \
-DWITH_CSTRIPES=OFF \
-DWITH_DSHOW=OFF \
-DWITH_MSMF=OFF \
-DWITH_VFW=OFF \
-DWITH_VIDEOINPUT=OFF \
-DWITH_WIN32UI=OFF
# Software/3rd-party support options.
OPENCV_CONF_OPTS += \
-DBUILD_JASPER=OFF \
-DBUILD_JPEG=OFF \
-DBUILD_NEW_PYTHON_SUPPORT=OFF \
-DBUILD_OPENEXR=OFF \
-DBUILD_PNG=OFF \
-DBUILD_TIFF=OFF \
-DBUILD_ZLIB=OFF \
-DINSTALL_C_EXAMPLES=OFF \
-DINSTALL_PYTHON_EXAMPLES=OFF \
-DINSTALL_TO_MANGLED_PATHS=OFF
# Disabled features (mostly because they are not available in Buildroot), but
# - eigen: OpenCV does not use it, not take any benefit from it.
OPENCV_CONF_OPTS += \
-DWITH_1394=OFF \
-DWITH_EIGEN=OFF \
-DWITH_IMAGEIO=OFF \
-DWITH_OPENCL=OFF \
-DWITH_OPENEXR=OFF \
-DWITH_OPENGL=OFF \
-DWITH_OPENMP=OFF \
-DWITH_OPENNI=OFF \
-DWITH_UNICAP=OFF \
-DWITH_XINE=OFF
OPENCV_DEPENDENCIES += zlib
ifeq ($(BR2_PACKAGE_OPENCV_WITH_FFMPEG),y)
OPENCV_CONF_OPTS += -DWITH_FFMPEG=ON
OPENCV_DEPENDENCIES += ffmpeg bzip2
else
OPENCV_CONF_OPTS += -DWITH_FFMPEG=OFF
endif
ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER),y)
OPENCV_CONF_OPTS += -DWITH_GSTREAMER_0_10=ON
OPENCV_DEPENDENCIES += gstreamer gst-plugins-base
else
OPENCV_CONF_OPTS += -DWITH_GSTREAMER_0_10=OFF
endif
ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER1),y)
OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON
OPENCV_DEPENDENCIES += gstreamer1 gst1-plugins-base
else
OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF
endif
ifeq ($(BR2_PACKAGE_OPENCV_WITH_GTK),y)
OPENCV_CONF_OPTS += -DWITH_GTK=ON
OPENCV_DEPENDENCIES += libgtk2
else
OPENCV_CONF_OPTS += -DWITH_GTK=OFF
endif
ifeq ($(BR2_PACKAGE_OPENCV_WITH_JASPER),y)
OPENCV_CONF_OPTS += -DWITH_JASPER=ON
OPENCV_DEPENDENCIES += jasper
else
OPENCV_CONF_OPTS += -DWITH_JASPER=OFF
endif
ifeq ($(BR2_PACKAGE_OPENCV_WITH_JPEG),y)
OPENCV_CONF_OPTS += -DWITH_JPEG=ON
OPENCV_DEPENDENCIES += jpeg
else
OPENCV_CONF_OPTS += -DWITH_JPEG=OFF
endif
ifeq ($(BR2_PACKAGE_OPENCV_WITH_PNG),y)
OPENCV_CONF_OPTS += -DWITH_PNG=ON
OPENCV_DEPENDENCIES += libpng
else
OPENCV_CONF_OPTS += -DWITH_PNG=OFF
endif
ifeq ($(BR2_PACKAGE_OPENCV_WITH_QT),y)
OPENCV_CONF_OPTS += -DWITH_QT=4
OPENCV_DEPENDENCIES += qt
else
OPENCV_CONF_OPTS += -DWITH_QT=OFF
endif
ifeq ($(BR2_PACKAGE_OPENCV_WITH_TIFF),y)
OPENCV_CONF_OPTS += -DWITH_TIFF=ON
OPENCV_DEPENDENCIES += tiff
else
OPENCV_CONF_OPTS += -DWITH_TIFF=OFF
endif
ifeq ($(BR2_PACKAGE_OPENCV_WITH_V4L),y)
OPENCV_CONF_OPTS += \
-DWITH_LIBV4L=$(if $(BR2_PACKAGE_LIBV4L),ON,OFF) \
-DWITH_V4L=ON
OPENCV_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBV4L),libv4l)
else
OPENCV_CONF_OPTS += -DWITH_V4L=OFF -DWITH_LIBV4L=OFF
endif
# Installation hooks:
define OPENCV_CLEAN_INSTALL_DOC
$(RM) -fr $(TARGET_DIR)/usr/share/OpenCV/doc
endef
OPENCV_POST_INSTALL_TARGET_HOOKS += OPENCV_CLEAN_INSTALL_DOC
define OPENCV_CLEAN_INSTALL_CMAKE
$(RM) -f $(TARGET_DIR)/usr/share/OpenCV/OpenCVConfig*.cmake
endef
OPENCV_POST_INSTALL_TARGET_HOOKS += OPENCV_CLEAN_INSTALL_CMAKE
ifneq ($(BR2_PACKAGE_OPENCV_INSTALL_DATA),y)
define OPENCV_CLEAN_INSTALL_DATA
$(RM) -fr $(TARGET_DIR)/usr/share/OpenCV/haarcascades \
$(TARGET_DIR)/usr/share/OpenCV/lbpcascades
endef
OPENCV_POST_INSTALL_TARGET_HOOKS += OPENCV_CLEAN_INSTALL_DATA
endif
$(eval $(cmake-package))