[Buildroot] [PATCH v2 2/2] opencv3: add support for tbb
Bradford Barr
bradford at density.io
Thu Sep 28 23:50:43 UTC 2017
From: bradford barr <bradford at density.io>
This patchset adds support for tbb optimizations in opencv3.
Signed-off-by: bradford barr <bradford at density.io>
---
package/opencv3/0001-tbb-debug.patch | 27 +++++++++++++++++++++++++++
package/opencv3/Config.in | 6 ++++++
package/opencv3/opencv3.mk | 12 ++++++++++--
3 files changed, 43 insertions(+), 2 deletions(-)
create mode 100644 package/opencv3/0001-tbb-debug.patch
diff --git a/package/opencv3/0001-tbb-debug.patch b/package/opencv3/0001-tbb-debug.patch
new file mode 100644
index 0000000..808483d
--- /dev/null
+++ b/package/opencv3/0001-tbb-debug.patch
@@ -0,0 +1,27 @@
+From a56d7592f0f2f63a84e2159171a784026cc99986 Mon Sep 17 00:00:00 2001
+From: bradford barr <bradford at density.io>
+Date: Thu, 28 Sep 2017 17:31:41 -0400
+Subject: [PATCH] TBB Debug Release
+
+OpenCV fails to detect tbb on a debug build if the platform has only installed
+debug libraries. This PR adds an additional check to the tbb detect logic for
+systems that only install tbb debug and not both tbb debug and release.
+
+Signed-off-by: bradford barr <bradford at density.io>
+---
+ cmake/OpenCVDetectTBB.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/OpenCVDetectTBB.cmake b/cmake/OpenCVDetectTBB.cmake
+index 426487a88cc..9417a53dd98 100644
+--- a/cmake/OpenCVDetectTBB.cmake
++++ b/cmake/OpenCVDetectTBB.cmake
+@@ -45,7 +45,7 @@ function(ocv_tbb_env_guess _found)
+ find_library(TBB_ENV_LIB NAMES "tbb")
+ find_library(TBB_ENV_LIB_DEBUG NAMES "tbb_debug" PATHS ENV LIBRARY_PATH ENV LD_LIBRARY_PATH NO_DEFAULT_PATH)
+ find_library(TBB_ENV_LIB_DEBUG NAMES "tbb_debug")
+- if (TBB_ENV_INCLUDE AND TBB_ENV_LIB)
++ if (TBB_ENV_INCLUDE AND (TBB_ENV_LIB OR TBB_ENV_LIB_DEBUG))
+ ocv_tbb_verify()
+ ocv_tbb_read_version("${TBB_ENV_INCLUDE}")
+ add_library(tbb UNKNOWN IMPORTED)
diff --git a/package/opencv3/Config.in b/package/opencv3/Config.in
index 2214ee8..07613e8 100644
--- a/package/opencv3/Config.in
+++ b/package/opencv3/Config.in
@@ -307,6 +307,12 @@ config BR2_PACKAGE_OPENCV3_WITH_PNG
help
Use shared libpng from the target system.
+config BR2_PACKAGE_OPENCV3_WITH_TBB
+ bool "tbb support"
+ select BR2_PACKAGE_TBB
+ help
+ Use build libtbb from OpenCV3.
+
config BR2_PACKAGE_OPENCV3_WITH_TIFF
bool "tiff support"
select BR2_PACKAGE_TIFF
diff --git a/package/opencv3/opencv3.mk b/package/opencv3/opencv3.mk
index 3a7c3f4..1b3de46 100644
--- a/package/opencv3/opencv3.mk
+++ b/package/opencv3/opencv3.mk
@@ -133,8 +133,7 @@ OPENCV3_CONF_OPTS += \
-DBUILD_WITH_DYNAMIC_IPP=OFF \
-DWITH_INTELPERC=OFF \
-DWITH_IPP=OFF \
- -DWITH_IPP_A=OFF \
- -DWITH_TBB=OFF
+ -DWITH_IPP_A=OFF
# Smartek stuff
OPENCV3_CONF_OPTS += -DWITH_GIGEAPI=OFF
@@ -288,6 +287,15 @@ OPENCV3_CONF_OPTS += -DWITH_QT=5
OPENCV3_DEPENDENCIES += qt5base
endif
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_TBB),y)
+OPENCV3_CONF_OPTS += \
+ -DWITH_TBB=ON \
+ -DTBB_ENV_INCLUDE=$(STAGING_DIR)/usr/include/tbb
+OPENCV3_DEPENDENCIES += tbb
+else
+OPENCV3_CONF_OPTS += -DWITH_TBB=OFF
+endif
+
ifeq ($(BR2_PACKAGE_OPENCV3_WITH_TIFF),y)
OPENCV3_CONF_OPTS += -DWITH_TIFF=ON
OPENCV3_DEPENDENCIES += tiff
--
2.9.3
More information about the buildroot
mailing list