summaryrefslogtreecommitdiffstats
path: root/package/opencv
diff options
context:
space:
mode:
Diffstat (limited to 'package/opencv')
-rw-r--r--package/opencv/0001-Fixed-compilation-of-pthread-based-parallel_for-with-gcc-4.4.3.patch62
-rw-r--r--package/opencv/0001-core-fix-x86-PIC-code-compilation.patch49
-rw-r--r--package/opencv/0002-fix-support-for-pthreads-parallel_for.patch212
-rw-r--r--package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch40
-rw-r--r--package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch156
-rw-r--r--package/opencv/Config.in273
-rw-r--r--package/opencv/opencv.mk151
7 files changed, 342 insertions, 601 deletions
diff --git a/package/opencv/0001-Fixed-compilation-of-pthread-based-parallel_for-with-gcc-4.4.3.patch b/package/opencv/0001-Fixed-compilation-of-pthread-based-parallel_for-with-gcc-4.4.3.patch
deleted file mode 100644
index 2be8f33d76..0000000000
--- a/package/opencv/0001-Fixed-compilation-of-pthread-based-parallel_for-with-gcc-4.4.3.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Backport from https://github.com/Itseez/opencv/commit/1f983ec39c97298b0c8ce409a1cc229ecf14e55c
-
-From 1f983ec39c97298b0c8ce409a1cc229ecf14e55c Mon Sep 17 00:00:00 2001
-From: Maksim Shabunin <maksim.shabunin@itseez.com>
-Date: Tue, 9 Jun 2015 13:59:48 +0300
-Subject: [PATCH] Fixed compilation of pthread-based parallel_for with gcc
- 4.4.3
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- modules/core/src/parallel.cpp | 12 +++++++-----
- 1 file changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/modules/core/src/parallel.cpp b/modules/core/src/parallel.cpp
-index b1e7567..0b593ee 100644
---- a/modules/core/src/parallel.cpp
-+++ b/modules/core/src/parallel.cpp
-@@ -132,8 +132,14 @@
- namespace cv
- {
- ParallelLoopBody::~ParallelLoopBody() {}
-+#if defined HAVE_PTHREADS && HAVE_PTHREADS
-+ void parallel_for_pthreads(const cv::Range& range, const cv::ParallelLoopBody& body, double nstripes);
-+ size_t parallel_pthreads_get_threads_num();
-+ void parallel_pthreads_set_threads_num(int num);
-+#endif
- }
-
-+
- namespace
- {
- #ifdef CV_PARALLEL_FRAMEWORK
-@@ -301,7 +307,7 @@ void cv::parallel_for_(const cv::Range& range, const cv::ParallelLoopBody& body,
- }
-
- #elif defined HAVE_PTHREADS
-- void parallel_for_pthreads(const Range& range, const ParallelLoopBody& body, double nstripes);
-+
- parallel_for_pthreads(range, body, nstripes);
-
- #else
-@@ -361,8 +367,6 @@ int cv::getNumThreads(void)
-
- #elif defined HAVE_PTHREADS
-
-- size_t parallel_pthreads_get_threads_num();
--
- return parallel_pthreads_get_threads_num();
-
- #else
-@@ -424,8 +428,6 @@ void cv::setNumThreads( int threads )
-
- #elif defined HAVE_PTHREADS
-
-- void parallel_pthreads_set_threads_num(int num);
--
- parallel_pthreads_set_threads_num(threads);
-
- #endif
---
-2.4.4
-
diff --git a/package/opencv/0001-core-fix-x86-PIC-code-compilation.patch b/package/opencv/0001-core-fix-x86-PIC-code-compilation.patch
new file mode 100644
index 0000000000..9e8c2e98eb
--- /dev/null
+++ b/package/opencv/0001-core-fix-x86-PIC-code-compilation.patch
@@ -0,0 +1,49 @@
+From ea50be0529c248961e1b66293f8a9e4b807294a6 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sun, 12 Oct 2014 10:17:23 +0200
+Subject: [PATCH] core: fix x86 PIC code compilation
+
+This bug was triggered by Buildroot autobuilders [1,2], causing this
+kind of failures [3,4]:
+
+ [ 14%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/system.cpp.o
+ /home/test/autobuild/instance-0/output/build/opencv-2.4.10/modules/core/src/system.cpp: In function '(static initializers for /home/test/autobuild/instance-0/output/build/opencv-2.4.10/modules/core/src/system.cpp)':
+ /home/test/autobuild/instance-0/output/build/opencv-2.4.10/modules/core/src/system.cpp:280:10: error: inconsistent operand constraints in an 'asm'
+ make[3]: *** [modules/core/CMakeFiles/opencv_core.dir/src/system.cpp.o] Error 1
+
+[1] http://buildroot.org/
+[2] http://autobuild.buildroot.org/
+[3] http://autobuild.buildroot.org/?reason=opencv-2.4.10
+[4] http://autobuild.buildroot.org/results/483/4838285b25d6293a5cf0bb9eadd5040a7c75d766/build-end.log
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ modules/core/src/system.cpp | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/modules/core/src/system.cpp b/modules/core/src/system.cpp
+index 5a970d5..e9ffdc7 100644
+--- a/modules/core/src/system.cpp
++++ b/modules/core/src/system.cpp
+@@ -267,14 +267,17 @@ struct HWFeatures
+ : "cc"
+ );
+ #else
++ // We need to preserve ebx since we are compiling PIC code.
++ // This means we cannot use "=b" for the 2nd output register.
+ asm volatile
+ (
+ "pushl %%ebx\n\t"
+ "movl $7,%%eax\n\t"
+ "movl $0,%%ecx\n\t"
+ "cpuid\n\t"
++ "movl %%ebx,%1\n\t"
+ "popl %%ebx\n\t"
+- : "=a"(cpuid_data[0]), "=b"(cpuid_data[1]), "=c"(cpuid_data[2]), "=d"(cpuid_data[3])
++ : "=a"(cpuid_data[0]), "=r"(cpuid_data[1]), "=c"(cpuid_data[2]), "=d"(cpuid_data[3])
+ :
+ : "cc"
+ );
+--
+2.1.2
+
diff --git a/package/opencv/0002-fix-support-for-pthreads-parallel_for.patch b/package/opencv/0002-fix-support-for-pthreads-parallel_for.patch
deleted file mode 100644
index 6eeb270eea..0000000000
--- a/package/opencv/0002-fix-support-for-pthreads-parallel_for.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-Backport from https://github.com/Itseez/opencv/commit/a482dcce464acbd5368fb93c6c3d52ba8401776a
-
-From a482dcce464acbd5368fb93c6c3d52ba8401776a Mon Sep 17 00:00:00 2001
-From: Alexander Alekhin <alexander.alekhin@itseez.com>
-Date: Thu, 11 Jun 2015 16:53:07 +0300
-Subject: [PATCH] fix support for pthreads parallel_for
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- CMakeLists.txt | 29 ++++++++++++++++++++++-------
- cmake/OpenCVFindLibsPerf.cmake | 14 +++++++++-----
- cmake/templates/cvconfig.h.in | 6 ++++++
- modules/core/src/parallel.cpp | 13 ++++++++-----
- modules/core/src/parallel_pthreads.cpp | 2 +-
- modules/core/src/precomp.hpp | 6 ------
- 6 files changed, 46 insertions(+), 24 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index d9a17b3..27d8470 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -188,7 +188,7 @@ OCV_OPTION(WITH_QUICKTIME "Use QuickTime for Video I/O insted of QTKit" OFF
- OCV_OPTION(WITH_TBB "Include Intel TBB support" OFF IF (NOT IOS AND NOT WINRT) )
- OCV_OPTION(WITH_OPENMP "Include OpenMP support" OFF)
- OCV_OPTION(WITH_CSTRIPES "Include C= support" OFF IF (WIN32 AND NOT WINRT) )
--OCV_OPTION(WITH_PTHREADS_PF "Use pthreads-based parallel_for" OFF IF (NOT WIN32) )
-+OCV_OPTION(WITH_PTHREADS_PF "Use pthreads-based parallel_for" ON IF (NOT WIN32) )
- OCV_OPTION(WITH_TIFF "Include TIFF support" ON IF (NOT IOS) )
- OCV_OPTION(WITH_UNICAP "Include Unicap support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) )
- OCV_OPTION(WITH_V4L "Include Video 4 Linux support" ON IF (UNIX AND NOT ANDROID) )
-@@ -1026,6 +1026,27 @@ if(DEFINED WITH_GPHOTO2)
- endif(DEFINED WITH_GPHOTO2)
-
-
-+# Order is similar to CV_PARALLEL_FRAMEWORK in core/src/parallel.cpp
-+ocv_clear_vars(CV_PARALLEL_FRAMEWORK)
-+if(HAVE_TBB)
-+ set(CV_PARALLEL_FRAMEWORK "TBB (ver ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} interface ${TBB_INTERFACE_VERSION})")
-+elseif(HAVE_CSTRIPES)
-+ set(CV_PARALLEL_FRAMEWORK "C=")
-+elseif(HAVE_OPENMP)
-+ set(CV_PARALLEL_FRAMEWORK "OpenMP")
-+elseif(HAVE_GCD)
-+ set(CV_PARALLEL_FRAMEWORK "GCD")
-+elseif(WINRT OR HAVE_CONCURRENCY)
-+ set(CV_PARALLEL_FRAMEWORK "Concurrency")
-+elseif(HAVE_PTHREADS_PF)
-+ set(CV_PARALLEL_FRAMEWORK "pthreads")
-+else()
-+ set(CV_PARALLEL_FRAMEWORK "none")
-+endif()
-+status("")
-+status(" Parallel framework:" TRUE THEN "${CV_PARALLEL_FRAMEWORK}" ELSE NO)
-+
-+
- # ========================== Other third-party libraries ==========================
- status("")
- status(" Other third-party libraries:")
-@@ -1045,12 +1066,6 @@ status(" Use IPP Async:" HAVE_IPP_A THEN "YES" ELSE NO)
- endif(DEFINED WITH_IPP_A)
-
- status(" Use Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO)
--status(" Use TBB:" HAVE_TBB THEN "YES (ver ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} interface ${TBB_INTERFACE_VERSION})" ELSE NO)
--status(" Use OpenMP:" HAVE_OPENMP THEN YES ELSE NO)
--status(" Use GCD" HAVE_GCD THEN YES ELSE NO)
--status(" Use Concurrency" HAVE_CONCURRENCY THEN YES ELSE NO)
--status(" Use C=:" HAVE_CSTRIPES THEN YES ELSE NO)
--status(" Use pthreads for parallel for:" HAVE_PTHREADS_PF THEN YES ELSE NO)
- status(" Use Cuda:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING})" ELSE NO)
- status(" Use OpenCL:" HAVE_OPENCL THEN YES ELSE NO)
-
-diff --git a/cmake/OpenCVFindLibsPerf.cmake b/cmake/OpenCVFindLibsPerf.cmake
-index bda5d79..d1bc541 100644
---- a/cmake/OpenCVFindLibsPerf.cmake
-+++ b/cmake/OpenCVFindLibsPerf.cmake
-@@ -120,12 +120,16 @@ if(WITH_OPENMP)
- set(HAVE_OPENMP "${OPENMP_FOUND}")
- endif()
-
--if(UNIX OR ANDROID)
--if(NOT APPLE AND NOT HAVE_TBB AND NOT HAVE_OPENMP)
-- set(HAVE_PTHREADS_PF 1)
--else()
-- set(HAVE_PTHREADS_PF 0)
-+if(NOT MSVC AND NOT DEFINED HAVE_PTHREADS)
-+ set(_fname "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/pthread_test.cpp")
-+ file(WRITE "${_fname}" "#include <pthread.h>\nint main() { (void)pthread_self(); return 0; }\n")
-+ try_compile(HAVE_PTHREADS "${CMAKE_BINARY_DIR}" "${_fname}")
-+ file(REMOVE "${_fname}")
- endif()
-+
-+ocv_clear_vars(HAVE_PTHREADS_PF)
-+if(WITH_PTHREADS_PF)
-+ set(HAVE_PTHREADS_PF ${HAVE_PTHREADS})
- else()
- set(HAVE_PTHREADS_PF 0)
- endif()
-diff --git a/cmake/templates/cvconfig.h.in b/cmake/templates/cvconfig.h.in
-index 4a1d1c6..3330774 100644
---- a/cmake/templates/cvconfig.h.in
-+++ b/cmake/templates/cvconfig.h.in
-@@ -139,6 +139,12 @@
- /* PNG codec */
- #cmakedefine HAVE_PNG
-
-+/* Posix threads (pthreads) */
-+#cmakedefine HAVE_PTHREADS
-+
-+/* parallel_for with pthreads */
-+#cmakedefine HAVE_PTHREADS_PF
-+
- /* Qt support */
- #cmakedefine HAVE_QT
-
-diff --git a/modules/core/src/parallel.cpp b/modules/core/src/parallel.cpp
-index 0b593ee..caa8129 100644
---- a/modules/core/src/parallel.cpp
-+++ b/modules/core/src/parallel.cpp
-@@ -80,6 +80,7 @@
- 4. HAVE_GCD - system wide, used automatically (APPLE only)
- 5. WINRT - system wide, used automatically (Windows RT only)
- 6. HAVE_CONCURRENCY - part of runtime, used automatically (Windows only - MSVS 10, MSVS 11)
-+ 7. HAVE_PTHREADS_PF - pthreads if available
- */
-
- #if defined HAVE_TBB
-@@ -125,14 +126,14 @@
- # define CV_PARALLEL_FRAMEWORK "winrt-concurrency"
- #elif defined HAVE_CONCURRENCY
- # define CV_PARALLEL_FRAMEWORK "ms-concurrency"
--#elif defined HAVE_PTHREADS
-+#elif defined HAVE_PTHREADS_PF
- # define CV_PARALLEL_FRAMEWORK "pthreads"
- #endif
-
- namespace cv
- {
- ParallelLoopBody::~ParallelLoopBody() {}
--#if defined HAVE_PTHREADS && HAVE_PTHREADS
-+#ifdef HAVE_PTHREADS_PF
- void parallel_for_pthreads(const cv::Range& range, const cv::ParallelLoopBody& body, double nstripes);
- size_t parallel_pthreads_get_threads_num();
- void parallel_pthreads_set_threads_num(int num);
-@@ -306,7 +307,7 @@ void cv::parallel_for_(const cv::Range& range, const cv::ParallelLoopBody& body,
- Concurrency::CurrentScheduler::Detach();
- }
-
--#elif defined HAVE_PTHREADS
-+#elif defined HAVE_PTHREADS_PF
-
- parallel_for_pthreads(range, body, nstripes);
-
-@@ -365,7 +366,7 @@ int cv::getNumThreads(void)
- ? Concurrency::CurrentScheduler::Get()->GetNumberOfVirtualProcessors()
- : pplScheduler->GetNumberOfVirtualProcessors());
-
--#elif defined HAVE_PTHREADS
-+#elif defined HAVE_PTHREADS_PF
-
- return parallel_pthreads_get_threads_num();
-
-@@ -426,7 +427,7 @@ void cv::setNumThreads( int threads )
- Concurrency::MaxConcurrency, threads-1));
- }
-
--#elif defined HAVE_PTHREADS
-+#elif defined HAVE_PTHREADS_PF
-
- parallel_pthreads_set_threads_num(threads);
-
-@@ -452,6 +453,8 @@ int cv::getThreadNum(void)
- return 0;
- #elif defined HAVE_CONCURRENCY
- return std::max(0, (int)Concurrency::Context::VirtualProcessorId()); // zero for master thread, unique number for others but not necessary 1,2,3,...
-+#elif defined HAVE_PTHREADS_PF
-+ return (int)(size_t)(void*)pthread_self(); // no zero-based indexing
- #else
- return 0;
- #endif
-diff --git a/modules/core/src/parallel_pthreads.cpp b/modules/core/src/parallel_pthreads.cpp
-index 8c34959..091ea2d 100644
---- a/modules/core/src/parallel_pthreads.cpp
-+++ b/modules/core/src/parallel_pthreads.cpp
-@@ -42,7 +42,7 @@
-
- #include "precomp.hpp"
-
--#if defined HAVE_PTHREADS && HAVE_PTHREADS
-+#ifdef HAVE_PTHREADS_PF
-
- #include <algorithm>
- #include <pthread.h>
-diff --git a/modules/core/src/precomp.hpp b/modules/core/src/precomp.hpp
-index d463126..88b60e4 100644
---- a/modules/core/src/precomp.hpp
-+++ b/modules/core/src/precomp.hpp
-@@ -292,12 +292,6 @@ TLSData<CoreTLSData>& getCoreTlsData();
- #define CL_RUNTIME_EXPORT
- #endif
-
--#ifndef HAVE_PTHREADS
--#if !(defined WIN32 || defined _WIN32 || defined WINCE || defined HAVE_WINRT)
--#define HAVE_PTHREADS 1
--#endif
--#endif
--
- extern bool __termination; // skip some cleanups, because process is terminating
- // (for example, if ExitProcess() was already called)
-
---
-2.4.4
-
diff --git a/package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch b/package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch
new file mode 100644
index 0000000000..d71235d424
--- /dev/null
+++ b/package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch
@@ -0,0 +1,40 @@
+superres: Fix return value VideoFrameSource_GPU
+
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+
+From 2e393ab83362743ba1825ad4b31d4a2925c606b4 Mon Sep 17 00:00:00 2001
+From: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+Date: Mon, 27 Oct 2014 13:39:35 +0000
+Subject: [PATCH] superres: Fix return value VideoFrameSource_GPU
+
+superres module fails to compile with the following error messages:
+
+[100%] Building CXX object modules/superres/CMakeFiles/opencv_superres.dir/src/super_resolution.cpp.o
+/opencv-2.4.10/modules/superres/src/frame_source.cpp: In function 'cv::Ptr<cv::superres::FrameSource> cv::superres::createFrameSource_Video_GPU(const string&)':
+/opencv-2.4.10/modules/superres/src/frame_source.cpp:263:16: error: expected type-specifier before 'VideoFrameSource'
+/opencv-2.4.10/modules/superres/src/frame_source.cpp:263:16: error: could not convert '(int*)operator new(4ul)' from 'int*' to 'cv::Ptr<cv::superres::FrameSource>'
+/opencv-2.4.10/modules/superres/src/frame_source.cpp:263:16: error: expected ';' before 'VideoFrameSource'
+/opencv-2.4.10/modules/superres/src/frame_source.cpp:263:41: error: 'VideoFrameSource' was not declared in this scope
+/opencv-2.4.10/modules/superres/src/frame_source.cpp:264:1: error: control reaches end of non-void function [-Werror=return-type]
+cc1plus: some warnings being treated as errors
+make[3]: *** [modules/superres/CMakeFiles/opencv_superres.dir/src/frame_source.cpp.o] Error 1
+make[3]: *** Waiting for unfinished jobs....
+
+This is caused because the return value of the createFrameSource_Video_GPU function should be a VideoFrameSource_GPU object.
+---
+ modules/superres/src/frame_source.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/superres/src/frame_source.cpp b/modules/superres/src/frame_source.cpp
+index 5f59a98..c5b2e76 100644
+--- a/modules/superres/src/frame_source.cpp
++++ b/modules/superres/src/frame_source.cpp
+@@ -260,7 +260,7 @@ namespace
+
+ Ptr<FrameSource> cv::superres::createFrameSource_Video_GPU(const string& fileName)
+ {
+- return new VideoFrameSource(fileName);
++ return new VideoFrameSource_GPU(fileName);
+ }
+
+ #endif // HAVE_OPENCV_GPU
diff --git a/package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch b/package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch
new file mode 100644
index 0000000000..768f08d778
--- /dev/null
+++ b/package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch
@@ -0,0 +1,156 @@
+From eceada586bbf18fc267e437522ec4f1f23ddc656 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Fri, 3 Oct 2014 00:32:40 +0200
+Subject: [PATCH] cmake/OpenCVGenPkgconfig.cmake: rework opencv.pc generation
+
+Using absolute path to locate the components in the "Libs:" field of the
+*.pc can badly break cross-compilation, especially when building
+statically linked objects.
+
+Indeed, pkg-config automatically replaces the '-I...' and '-L...' paths
+when the PKG_CONFIG_SYSROOT_DIR and PKG_CONFIG_LIBDIR environment
+variables are set [1]. This feature is very helpful and common in
+cross-compilation framework like Buildroot [2,3].
+
+When there are absolute paths in the *.pc files, pkg-config won't be
+able to do the path substitions for these paths when the afromentioned
+environment variables are set.
+In such case, since the prefix is the target one, not the sysroot one,
+these libraries' abolute paths will point to:
+- in the best case: a non-existing file (i.e. these files do not exists
+ on the host system;
+- at worst: the host system's libraries. This will make the linking
+ failed because these host system's libraries will most likely not be
+ build for the target architecture [4].
+
+So, this patch replace the components' absolute paths by the form:
+ -L<libdir> -l<libname>
+
+This way, the linker will be able to resolve each dependency path,
+whatever the kind of objects/build (shared object or static build) it
+is dealing with.
+
+Note that for static link, the library order does matter [5]. The order
+of the opencv components has been carefully chosen to comply with this
+requirement.
+
+Fixes #3931
+
+[1] http://linux.die.net/man/1/pkg-config
+[2] http://buildroot.org/
+[3] http://git.buildroot.net/buildroot/tree/package/pkgconf/pkg-config.in
+[4] http://autobuild.buildroot.net/results/e8a/e8a859276db34aff87ef181b0cce98916b0afc90/build-end.log
+[5] http://stackoverflow.com/questions/45135/linker-order-gcc
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+---
+Note: this patch properly applies on top of the master branch, though it
+ has been written on top of the 2.4 branch.
+---
+ cmake/OpenCVGenPkgconfig.cmake | 64 +++++++++++++++++++++++++++---------------
+ 1 file changed, 42 insertions(+), 22 deletions(-)
+
+diff --git a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake
+index fa57db9..183c56d 100644
+--- a/cmake/OpenCVGenPkgconfig.cmake
++++ b/cmake/OpenCVGenPkgconfig.cmake
+@@ -8,10 +8,6 @@
+ #
+ # ${BIN_DIR}/unix-install/opencv.pc -> For use *with* "make install"
+ # -------------------------------------------------------------------------------------------
+-set(prefix "${CMAKE_INSTALL_PREFIX}")
+-set(exec_prefix "\${prefix}")
+-set(libdir "") #TODO: need link paths for OpenCV_EXTRA_COMPONENTS
+-set(includedir "\${prefix}/${OPENCV_INCLUDE_INSTALL_PATH}")
+
+ if(CMAKE_BUILD_TYPE MATCHES "Release")
+ set(ocv_optkind OPT)
+@@ -35,42 +31,66 @@ ocv_list_reverse(OpenCV_LIB_COMPONENTS)
+ ocv_list_reverse(OpenCV_EXTRA_COMPONENTS)
+
+ #build the list of components
+-set(OpenCV_LIB_COMPONENTS_ "")
+-foreach(CVLib ${OpenCV_LIB_COMPONENTS})
+- get_target_property(libpath ${CVLib} LOCATION_${CMAKE_BUILD_TYPE})
+- get_filename_component(libname "${libpath}" NAME)
+
+- if(INSTALL_TO_MANGLED_PATHS)
+- set(libname "${libname}.${OPENCV_VERSION}")
+- endif()
++# Note:
++# when linking against static libraries, if libfoo depends on libbar, then
++# libfoo must come first in the linker flags.
++
++# world is a special target whose library should come first, especially for
++# static link.
++if(OpenCV_LIB_COMPONENTS MATCHES "opencv_world")
++ list(REMOVE_ITEM OpenCV_LIB_COMPONENTS "opencv_world")
++ list(INSERT OpenCV_LIB_COMPONENTS 0 "opencv_world")
++endif()
++
++set(OpenCV_LIB_COMPONENTS_)
++foreach(CVLib ${OpenCV_LIB_COMPONENTS})
+
+- #need better solution....
+- if(libpath MATCHES "3rdparty")
+- set(installDir "share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH}")
++ get_target_property(libloc ${CVLib} LOCATION_${CMAKE_BUILD_TYPE})
++ if(libloc MATCHES "3rdparty")
++ set(libpath "\${exec_prefix}/share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH}")
+ else()
+- set(installDir "${OPENCV_LIB_INSTALL_PATH}")
++ set(libpath "\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}")
+ endif()
++ list(APPEND OpenCV_LIB_COMPONENTS_ "-L${libpath}")
++
++ get_filename_component(libname ${CVLib} NAME_WE)
++ string(REGEX REPLACE "^lib" "" libname "${libname}")
++ list(APPEND OpenCV_LIB_COMPONENTS_ "-l${libname}")
+
+- set(OpenCV_LIB_COMPONENTS_ "${OpenCV_LIB_COMPONENTS_} \${exec_prefix}/${installDir}/${libname}")
+ endforeach()
+
+ # add extra dependencies required for OpenCV
+-set(OpenCV_LIB_COMPONENTS ${OpenCV_LIB_COMPONENTS_})
+ if(OpenCV_EXTRA_COMPONENTS)
+ foreach(extra_component ${OpenCV_EXTRA_COMPONENTS})
+
+- if(extra_component MATCHES "^-[lL]" OR extra_component MATCHES "[\\/]")
+- set(maybe_l_prefix "")
++ if(extra_component MATCHES "^-[lL]")
++ set(libprefix "")
++ set(libname "${extra_component}")
++ elseif(extra_component MATCHES "[\\/]")
++ get_filename_component(libdir "${extra_component}" PATH)
++ list(APPEND OpenCV_LIB_COMPONENTS_ "-L${libdir}")
++ get_filename_component(libname "${extra_component}" NAME_WE)
++ string(REGEX REPLACE "^lib" "" libname "${libname}")
++ set(libprefix "-l")
+ else()
+- set(maybe_l_prefix "-l")
++ set(libprefix "-l")
++ set(libname "${extra_component}")
+ endif()
+-
+- set(OpenCV_LIB_COMPONENTS "${OpenCV_LIB_COMPONENTS} ${maybe_l_prefix}${extra_component}")
++ list(APPEND OpenCV_LIB_COMPONENTS_ "${libprefix}${libname}")
+
+ endforeach()
+ endif()
+
++list(REMOVE_DUPLICATES OpenCV_LIB_COMPONENTS_)
++string(REPLACE ";" " " OpenCV_LIB_COMPONENTS "${OpenCV_LIB_COMPONENTS_}")
++
+ #generate the .pc file
++set(prefix "${CMAKE_INSTALL_PREFIX}")
++set(exec_prefix "\${prefix}")
++set(libdir "\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}")
++set(includedir "\${prefix}/${OPENCV_INCLUDE_INSTALL_PATH}")
++
+ if(INSTALL_TO_MANGLED_PATHS)
+ set(OPENCV_PC_FILE_NAME "opencv-${OPENCV_VERSION}.pc")
+ else()
+--
+2.4.1
+
diff --git a/package/opencv/Config.in b/package/opencv/Config.in
index 0b5d1acb66..aca5174079 100644
--- a/package/opencv/Config.in
+++ b/package/opencv/Config.in
@@ -1,18 +1,13 @@
menuconfig BR2_PACKAGE_OPENCV
- bool "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
- depends on !BR2_STATIC_LIBS # include dlfcn.h
help
OpenCV (Open Source Computer Vision) is a library of programming
functions for real time computer vision.
- Note that the opencv_core module and the opencv_hal library
- are always built and installed, not matter which other
- modules are enabled below.
-
http://opencv.org/
if BR2_PACKAGE_OPENCV
@@ -21,216 +16,107 @@ comment "OpenCV modules"
config BR2_PACKAGE_OPENCV_LIB_CALIB3D
bool "calib3d"
- select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
- select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+ default y
+ help
+ Include opencv_calib3d module into the OpenCV build.
+
+config BR2_PACKAGE_OPENCV_LIB_CONTRIB
+ bool "contrib"
+ default y
help
- Include opencv_calib3d (camera calibration and 3d reconstruction) module
- into the OpenCV build.
+ Include opencv_contrib module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_FEATURES2D
bool "features2d"
- select BR2_PACKAGE_OPENCV_LIB_FLANN
- select BR2_PACKAGE_OPENCV_LIB_IMGPROC
- select BR2_PACKAGE_OPENCV_LIB_ML
+ default y
help
- Include opencv_features2d (2d features framework) module into the OpenCV
- build.
+ Include opencv_features2d module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_FLANN
bool "flann"
- # opencv_core dependency is already enabled
+ default y
help
- Include opencv_flann (clustering and search in multi-dimensional spaces)
- module into the OpenCV build.
+ Include opencv_flann module into the OpenCV build.
-config BR2_PACKAGE_OPENCV_LIB_HIGHGUI
- bool "highgui"
- select BR2_PACKAGE_OPENCV_LIB_IMGCODECS
- select BR2_PACKAGE_OPENCV_LIB_IMGPROC
- select BR2_PACKAGE_OPENCV_LIB_VIDEOIO
+config BR2_PACKAGE_OPENCV_LIB_GPU
+ bool "gpu"
help
- Include opencv_highgui (high-level gui and media i/o) module into the
- OpenCV build.
-
-if BR2_PACKAGE_OPENCV_LIB_HIGHGUI
-
-choice
- prompt "gui toolkit"
- help
- GUI toolkit to be used by the opencv_highgui module.
-
-config BR2_PACKAGE_OPENCV_GUI_NONE
- bool "none"
-
-config BR2_PACKAGE_OPENCV_WITH_GTK
- bool "gtk2"
- depends on BR2_PACKAGE_LIBGTK2
-
-comment "gtk2 support needs libgtk2"
- depends on BR2_USE_MMU # libgtk2 -> glib2
- depends on BR2_ARCH_HAS_ATOMICS # libgtk2 -> cairo
- depends on !BR2_PACKAGE_LIBGTK2
+ Include opencv_gpu module into the OpenCV build.
-config BR2_PACKAGE_OPENCV_WITH_GTK3
- bool "gtk3"
- depends on BR2_PACKAGE_LIBGTK3
-
-comment "gtk3 support needs libgtk3"
- depends on BR2_USE_MMU # libgtk3 -> glib2
- depends on BR2_ARCH_HAS_ATOMICS # libgtk3 -> cairo
- depends on !BR2_PACKAGE_LIBGTK3
-
-config BR2_PACKAGE_OPENCV_WITH_QT
- bool "qt4"
- depends on BR2_PACKAGE_QT
- select BR2_PACKAGE_QT_STL
- select BR2_PACKAGE_QT_GUI_MODULE
- select BR2_PACKAGE_QT_TEST
+config BR2_PACKAGE_OPENCV_LIB_HIGHGUI
+ bool "highgui"
+ default y
help
- Use Qt4 with QtTest and QtGui modules and STL support, as GUI toolkit.
+ Include opencv_highgui module into the OpenCV build.
-comment "qt4 support needs qt"
- depends on BR2_USE_MMU # qt
- depends on !BR2_PACKAGE_QT && !BR2_PACKAGE_QT5
-
-config BR2_PACKAGE_OPENCV_WITH_QT5
- bool "qt5"
- depends on BR2_PACKAGE_QT5
- select BR2_PACKAGE_QT5BASE
- select BR2_PACKAGE_QT5BASE_CONCURRENT
- select BR2_PACKAGE_QT5BASE_GUI
- select BR2_PACKAGE_QT5BASE_WIDGETS
- help
- Use Qt5 with base, concurrent, test, gui and widgets components, as GUI
- toolkit.
-
-comment "qt5 support needs qt5"
- depends on !BR2_PACKAGE_QT && !BR2_PACKAGE_QT5
-
-endchoice
-
-config BR2_PACKAGE_OPENCV_WITH_OPENGL
- bool "opengl support"
- # OpenGL support done using Qt5OpenGL, so depends on WITH_QT5
- depends on BR2_PACKAGE_OPENCV_WITH_QT5
- # OpenGL support requires Qt5OpenGL with GL support, not GLES
- depends on BR2_PACKAGE_QT5_GL_AVAILABLE
- depends on BR2_PACKAGE_HAS_LIBGL
- select BR2_PACKAGE_QT5BASE_OPENGL
+config BR2_PACKAGE_OPENCV_LIB_IMGPROC
+ bool "imgproc"
+ default y
help
- Enable OpenGL for UI.
-
-comment "opengl support needs an OpenGL provider"
- depends on BR2_PACKAGE_OPENCV_WITH_QT5
- depends on !BR2_PACKAGE_QT5_GL_AVAILABLE || \
- !BR2_PACKAGE_HAS_LIBGL
-
-endif # BR2_PACKAGE_OPENCV_LIB_HIGHGUI
-
+ Include opencv_imgproc module into the OpenCV build.
-config BR2_PACKAGE_OPENCV_LIB_IMGCODECS
- bool "imgcodecs"
- select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+config BR2_PACKAGE_OPENCV_LIB_LEGACY
+ bool "legacy"
+ default y
help
- Include opencv_imgcodecs (image codecs) module into the OpenCV build.
+ Include opencv_legacy module into the OpenCV build.
-config BR2_PACKAGE_OPENCV_LIB_IMGPROC
- bool "imgproc"
- # opencv_core dependency is already enabled
+config BR2_PACKAGE_OPENCV_LIB_ML
+ bool "ml (machine learning)"
+ default y
help
- Include opencv_imgproc (image processing) module into the OpenCV build.
+ Include opencv_ml module into the OpenCV build.
-config BR2_PACKAGE_OPENCV_LIB_ML
- bool "ml"
- # opencv_core dependency is already enabled
+config BR2_PACKAGE_OPENCV_LIB_NONFREE
+ bool "nonfree"
help
- Include opencv_ml (machine learning) module into the OpenCV build.
+ Include opencv_nonfree module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_OBJDETECT
bool "objdetect"
- # opencv_core dependency is already enabled
- select BR2_PACKAGE_OPENCV_LIB_IMGPROC
- select BR2_PACKAGE_OPENCV_LIB_ML
+ default y
help
- Include opencv_objdetect (object detection) module into the OpenCV build.
+ Include opencv_objdetect module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_PHOTO
bool "photo"
- select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+ default y
help
- Include opencv_photo (computational photography) module into the OpenCV
- build.
+ Include opencv_photo module into the OpenCV build.
-config BR2_PACKAGE_OPENCV_LIB_PYTHON
- bool "python"
- depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3
- depends on BR2_aarch64 || BR2_arm || BR2_armeb || BR2_i386 \
- || BR2_mips || BR2_mipsel || BR2_powerpc || BR2_powerpc64 \
- || BR2_sh || BR2_x86_64 # python-numpy
- depends on !BR2_TOOLCHAIN_USES_UCLIBC || BR2_i386 || BR2_x86_64 # python-numpy
- select BR2_PACKAGE_PYTHON_NUMPY
- help
- Include opencv_python module into the OpenCV build.
- No python example is installed.
-
-config BR2_PACKAGE_OPENCV_LIB_SHAPE
- bool "shape"
- # opencv_core dependency is already enabled
- select BR2_PACKAGE_OPENCV_LIB_IMGPROC
- select BR2_PACKAGE_OPENCV_LIB_VIDEO
- help
- Include opencv_shape (shape descriptors and matchers) module into the
- OpenCV build.
+comment "opencv_python module requires numpy which is not yet available."
config BR2_PACKAGE_OPENCV_LIB_STITCHING
bool "stitching"
- select BR2_PACKAGE_OPENCV_LIB_CALIB3D
- select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
- select BR2_PACKAGE_OPENCV_LIB_IMGPROC
- select BR2_PACKAGE_OPENCV_LIB_OBJDETECT
+ default y
help
- Include opencv_stitching (images stitching) module into the OpenCV build.
+ Include opencv_stitching module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_SUPERRES
bool "superres"
- select BR2_PACKAGE_OPENCV_LIB_IMGPROC
- select BR2_PACKAGE_OPENCV_LIB_VIDEO
+ default y
help
- Include opencv_superres (super resolution) module into the OpenCV build.
+ Include opencv_superres "super resolution" - module into the OpenCV
+ build.
config BR2_PACKAGE_OPENCV_LIB_TS
- bool "ts"
- # opencv_core dependency is already enabled
+ bool "ts (touchscreen)"
select BR2_PACKAGE_OPENCV_LIB_HIGHGUI
- select BR2_PACKAGE_OPENCV_LIB_IMGCODECS
- select BR2_PACKAGE_OPENCV_LIB_IMGPROC
- select BR2_PACKAGE_OPENCV_LIB_VIDEOIO
+ default y
help
- Include opencv_ts (test) module into the OpenCV build.
-
-config BR2_PACKAGE_OPENCV_LIB_VIDEOIO
- bool "videoio"
- select BR2_PACKAGE_OPENCV_LIB_IMGCODECS
- select BR2_PACKAGE_OPENCV_LIB_IMGPROC
- help
- Include opencv_videoio (media i/o) module into the OpenCV build.
+ Include opencv_ts module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_VIDEO
bool "video"
- select BR2_PACKAGE_OPENCV_LIB_IMGPROC
+ default y
help
- Include opencv_video (video analysis) module into the OpenCV build.
+ Include opencv_video module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB
bool "videostab"
- select BR2_PACKAGE_OPENCV_LIB_CALIB3D
- select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
- select BR2_PACKAGE_OPENCV_LIB_IMGPROC
- select BR2_PACKAGE_OPENCV_LIB_PHOTO
- select BR2_PACKAGE_OPENCV_LIB_VIDEO
+ default y
help
- Include opencv_videostab (video stabilization) module into the OpenCV
- build.
+ Include opencv_videostab module into the OpenCV build.
comment "Test sets"
config BR2_PACKAGE_OPENCV_BUILD_TESTS
@@ -249,16 +135,8 @@ config BR2_PACKAGE_OPENCV_WITH_FFMPEG
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"
+ bool "gstreamer support"
depends on BR2_USE_MMU # gstreamer -> libglib2
depends on BR2_USE_WCHAR # gstreamer -> libglib2
depends on BR2_TOOLCHAIN_HAS_THREADS # gstreamer -> libglib2
@@ -266,24 +144,20 @@ config BR2_PACKAGE_OPENCV_WITH_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"
- depends on BR2_USE_MMU
- depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
-
-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"
+comment "gstreamer 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_ARCH_HAS_ATOMICS # libgtk2 -> cairo
+ depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
+ select BR2_PACKAGE_LIBGTK2
config BR2_PACKAGE_OPENCV_WITH_JASPER
bool "jpeg2000 support"
@@ -307,6 +181,18 @@ config BR2_PACKAGE_OPENCV_WITH_PNG
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
+ 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
+
config BR2_PACKAGE_OPENCV_WITH_TIFF
bool "tiff support"
select BR2_PACKAGE_TIFF
@@ -333,8 +219,5 @@ config BR2_PACKAGE_OPENCV_INSTALL_DATA
endif # BR2_PACKAGE_OPENCV
-comment "opencv needs a toolchain w/ C++, NPTL, wchar, dynamic library"
- depends on !BR2_INSTALL_LIBSTDCPP || \
- !BR2_USE_WCHAR || \
- !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
- BR2_STATIC_LIBS
+comment "opencv needs a toolchain w/ C++, NPTL, wchar"
+ depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS_NPTL)
diff --git a/package/opencv/opencv.mk b/package/opencv/opencv.mk
index bb1bcd85e9..ee1122064f 100644
--- a/package/opencv/opencv.mk
+++ b/package/opencv/opencv.mk
@@ -4,7 +4,7 @@
#
################################################################################
-OPENCV_VERSION = 3.0.0
+OPENCV_VERSION = 2.4.10
OPENCV_SITE = $(call github,itseez,opencv,$(OPENCV_VERSION))
OPENCV_INSTALL_STAGING = YES
OPENCV_LICENSE = BSD-3c
@@ -12,28 +12,19 @@ OPENCV_LICENSE_FILES = LICENSE
# OpenCV component options
OPENCV_CONF_OPTS += \
- -DBUILD_DOCS=OFF \
-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
-ifeq ($(BR2_PACKAGE_OPENCV_BUILD_TESTS)$(BR2_PACKAGE_OPENCV_BUILD_PERF_TESTS),)
-OPENCV_CONF_OPTS += -DINSTALL_TEST=OFF
-else
-OPENCV_CONF_OPTS += -DINSTALL_TEST=ON
-endif
-
# OpenCV build options
OPENCV_CONF_OPTS += \
-DBUILD_WITH_STATIC_CRT=OFF \
- -DENABLE_COVERAGE=OFF \
-DENABLE_FAST_MATH=ON \
- -DENABLE_IMPL_COLLECTION=OFF \
-DENABLE_NOISY_WARNINGS=OFF \
-DENABLE_OMIT_FRAME_POINTER=ON \
-DENABLE_PRECOMPILED_HEADERS=OFF \
-DENABLE_PROFILING=OFF \
- -DOPENCV_WARNINGS_ARE_ERRORS=OFF
+ -DOPENCV_CAN_BREAK_BINARY_COMPATIBILITY=ON
# OpenCV link options
OPENCV_CONF_OPTS += \
@@ -48,59 +39,40 @@ OPENCV_CONF_OPTS += \
-DINSTALL_CREATE_DISTRIB=OFF
# OpenCV module selection
-# * Modules on:
-# - core: if not set, opencv does not build anything
-# - hal: core's dependency
-# * Modules off:
-# - android*: android stuff
-# - apps: programs for training classifiers
-# - java: java bindings
-# - viz: missing VTK dependency
-# - world: all-in-one module
-#
-# * Contrib modules from [1] are disabled:
-# - opencv_contrib package is not available in Buildroot;
-# - OPENCV_EXTRA_MODULES_PATH is not set.
-#
-# [1] https://github.com/Itseez/opencv_contrib
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_hal=ON \
+ -DBUILD_opencv_gpu=$(if $(BR2_PACKAGE_OPENCV_LIB_GPU),ON,OFF) \
-DBUILD_opencv_highgui=$(if $(BR2_PACKAGE_OPENCV_LIB_HIGHGUI),ON,OFF) \
- -DBUILD_opencv_imgcodecs=$(if $(BR2_PACKAGE_OPENCV_LIB_IMGCODECS),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_shape=$(if $(BR2_PACKAGE_OPENCV_LIB_SHAPE),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_videoio=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEOIO),ON,OFF) \
-DBUILD_opencv_videostab=$(if $(BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB),ON,OFF) \
- -DBUILD_opencv_viz=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.
-# * fma3 and popcnt support is disabled because according to gcc manual [2], it
-# is only available on x86_64 haswell, broadwell and knl architecture.
-#
-# [2] https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/x86-Options.html#x86-Options
OPENCV_CONF_OPTS += \
-DENABLE_AVX=$(if $(BR2_X86_CPU_HAS_AVX),ON,OFF) \
-DENABLE_AVX2=$(if $(BR2_X86_CPU_HAS_AVX2),ON,OFF) \
- -DENABLE_FMA3=OFF \
- -DENABLE_POPCNT=OFF \
-DENABLE_POWERPC=OFF \
-DENABLE_SSE=$(if $(BR2_X86_CPU_HAS_SSE),ON,OFF) \
-DENABLE_SSE2=$(if $(BR2_X86_CPU_HAS_SSE2),ON,OFF) \
@@ -111,19 +83,6 @@ OPENCV_CONF_OPTS += \
# Cuda stuff
OPENCV_CONF_OPTS += \
- -DBUILD_CUDA_STUBS=OFF \
- -DBUILD_opencv_cudaarithm=OFF \
- -DBUILD_opencv_cudabgsegm=OFF \
- -DBUILD_opencv_cudacodec=OFF \
- -DBUILD_opencv_cudafeatures2d=OFF \
- -DBUILD_opencv_cudafilters=OFF \
- -DBUILD_opencv_cudaimgproc=OFF \
- -DBUILD_opencv_cudalegacy=OFF \
- -DBUILD_opencv_cudaobjdetect=OFF \
- -DBUILD_opencv_cudaoptflow=OFF \
- -DBUILD_opencv_cudastereo=OFF \
- -DBUILD_opencv_cudawarping=OFF \
- -DBUILD_opencv_cudev=OFF \
-DWITH_CUBLAS=OFF \
-DWITH_CUDA=OFF \
-DWITH_CUFFT=OFF
@@ -138,10 +97,8 @@ OPENCV_CONF_OPTS += \
# Intel stuff
OPENCV_CONF_OPTS += \
- -DBUILD_WITH_DYNAMIC_IPP=OFF \
-DWITH_INTELPERC=OFF \
-DWITH_IPP=OFF \
- -DWITH_IPP_A=OFF \
-DWITH_TBB=OFF
# Smartek stuff
@@ -155,11 +112,10 @@ OPENCV_CONF_OPTS += -DWITH_XIMEA=OFF
# Non-Linux support (Android options) must remain OFF:
OPENCV_CONF_OPTS += \
- -DANDROID=OFF \
-DBUILD_ANDROID_CAMERA_WRAPPER=OFF \
-DBUILD_ANDROID_EXAMPLES=OFF \
- -DBUILD_ANDROID_SERVICE=OFF \
-DBUILD_FAT_JAVA_LIB=OFF \
+ -DBUILD_JAVA_SUPPORT=OFF \
-DINSTALL_ANDROID_EXAMPLES=OFF \
-DWITH_ANDROID_CAMERA=OFF
@@ -174,17 +130,15 @@ OPENCV_CONF_OPTS += \
-DWITH_CSTRIPES=OFF \
-DWITH_DSHOW=OFF \
-DWITH_MSMF=OFF \
- -DWITH_PTHREADS_PF=OFF \
-DWITH_VFW=OFF \
-DWITH_VIDEOINPUT=OFF \
-DWITH_WIN32UI=OFF
-# Software/3rd-party support options:
-# - disable all examples
+# Software/3rd-party support options.
OPENCV_CONF_OPTS += \
- -DBUILD_EXAMPLES=OFF \
-DBUILD_JASPER=OFF \
-DBUILD_JPEG=OFF \
+ -DBUILD_NEW_PYTHON_SUPPORT=OFF \
-DBUILD_OPENEXR=OFF \
-DBUILD_PNG=OFF \
-DBUILD_TIFF=OFF \
@@ -197,20 +151,14 @@ OPENCV_CONF_OPTS += \
# - eigen: OpenCV does not use it, not take any benefit from it.
OPENCV_CONF_OPTS += \
-DWITH_1394=OFF \
- -DWITH_CLP=OFF \
-DWITH_EIGEN=OFF \
- -DWITH_GDAL=OFF \
- -DWITH_GPHOTO2=OFF \
+ -DWITH_IMAGEIO=OFF \
-DWITH_OPENCL=OFF \
- -DWITH_OPENCL_SVM=OFF \
-DWITH_OPENEXR=OFF \
-DWITH_OPENGL=OFF \
-DWITH_OPENMP=OFF \
- -DWITH_OPENNI2=OFF \
-DWITH_OPENNI=OFF \
-DWITH_UNICAP=OFF \
- -DWITH_VTK=OFF \
- -DWITH_WEBP=OFF \
-DWITH_XINE=OFF
OPENCV_DEPENDENCIES += zlib
@@ -223,31 +171,17 @@ 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
+OPENCV_DEPENDENCIES += gstreamer gst-plugins-base
else
OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF
endif
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_GTK)$(BR2_PACKAGE_OPENCV_WITH_GTK3),)
-OPENCV_CONF_OPTS += -DWITH_GTK=OFF -DWITH_GTK_2_X=OFF
-endif
-
ifeq ($(BR2_PACKAGE_OPENCV_WITH_GTK),y)
-OPENCV_CONF_OPTS += -DWITH_GTK=ON -DWITH_GTK_2_X=ON
+OPENCV_CONF_OPTS += -DWITH_GTK=ON
OPENCV_DEPENDENCIES += libgtk2
-endif
-
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_GTK3),y)
-OPENCV_CONF_OPTS += -DWITH_GTK=ON -DWITH_GTK_2_X=OFF
-OPENCV_DEPENDENCIES += libgtk3
+else
+OPENCV_CONF_OPTS += -DWITH_GTK=OFF
endif
ifeq ($(BR2_PACKAGE_OPENCV_WITH_JASPER),y)
@@ -264,15 +198,6 @@ else
OPENCV_CONF_OPTS += -DWITH_JPEG=OFF
endif
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_OPENGL),y)
-OPENCV_CONF_OPTS += -DWITH_OPENGL=ON
-OPENCV_DEPENDENCIES += libgl
-else
-OPENCV_CONF_OPTS += -DWITH_OPENGL=OFF
-endif
-
-OPENCV_CONF_OPTS += -DWITH_OPENMP=$(if $(BR2_GCC_ENABLE_OPENMP),ON,OFF)
-
ifeq ($(BR2_PACKAGE_OPENCV_WITH_PNG),y)
OPENCV_CONF_OPTS += -DWITH_PNG=ON
OPENCV_DEPENDENCIES += libpng
@@ -280,18 +205,11 @@ else
OPENCV_CONF_OPTS += -DWITH_PNG=OFF
endif
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_QT)$(BR2_PACKAGE_OPENCV_WITH_QT5),)
-OPENCV_CONF_OPTS += -DWITH_QT=OFF
-endif
-
ifeq ($(BR2_PACKAGE_OPENCV_WITH_QT),y)
OPENCV_CONF_OPTS += -DWITH_QT=4
OPENCV_DEPENDENCIES += qt
-endif
-
-ifeq ($(BR2_PACKAGE_OPENCV_WITH_QT5),y)
-OPENCV_CONF_OPTS += -DWITH_QT=5
-OPENCV_DEPENDENCIES += qt5base
+else
+OPENCV_CONF_OPTS += -DWITH_QT=OFF
endif
ifeq ($(BR2_PACKAGE_OPENCV_WITH_TIFF),y)
@@ -310,37 +228,6 @@ else
OPENCV_CONF_OPTS += -DWITH_V4L=OFF -DWITH_LIBV4L=OFF
endif
-ifeq ($(BR2_PACKAGE_OPENCV_LIB_PYTHON),y)
-ifeq ($(BR2_PACKAGE_PYTHON),y)
-OPENCV_CONF_OPTS += \
- -DBUILD_opencv_python2=ON \
- -DBUILD_opencv_python3=OFF \
- -DPYTHON2_EXECUTABLE=$(HOST_DIR)/usr/bin/python2 \
- -DPYTHON2_INCLUDE_PATH=$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR) \
- -DPYTHON2_LIBRARIES=$(STAGING_DIR)/usr/lib/libpython$(PYTHON_VERSION_MAJOR).so \
- -DPYTHON2_NUMPY_INCLUDE_DIRS=$(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages/numpy/core/include \
- -DPYTHON2_PACKAGES_PATH=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \
- -DPYTHON2_NUMPY_VERSION=$(PYTHON_NUMPY_VERSION)
-OPENCV_DEPENDENCIES += python
-else
-OPENCV_CONF_OPTS += \
- -DBUILD_opencv_python2=OFF \
- -DBUILD_opencv_python3=ON \
- -DPYTHON3_EXECUTABLE=$(HOST_DIR)/usr/bin/python3 \
- -DPYTHON3_INCLUDE_PATH=$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR)m \
- -DPYTHON3_LIBRARIES=$(STAGING_DIR)/usr/lib/libpython$(PYTHON3_VERSION_MAJOR)m.so \
- -DPYTHON3_NUMPY_INCLUDE_DIRS=$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/core/include \
- -DPYTHON3_PACKAGES_PATH=/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages \
- -DPYTHON3_NUMPY_VERSION=$(PYTHON_NUMPY_VERSION)
-OPENCV_DEPENDENCIES += python3
-endif
-OPENCV_DEPENDENCIES += python-numpy
-else
-OPENCV_CONF_OPTS += \
- -DBUILD_opencv_python2=OFF \
- -DBUILD_opencv_python3=OFF
-endif
-
# Installation hooks:
define OPENCV_CLEAN_INSTALL_DOC
$(RM) -fr $(TARGET_DIR)/usr/share/OpenCV/doc
OpenPOWER on IntegriCloud