package/opencv3: use external protobuf instead of bundled one
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Sat, 11 Jan 2020 15:01:43 +0000 (16:01 +0100)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sun, 12 Jan 2020 21:44:07 +0000 (22:44 +0100)
Since version 3.3.0 and its commit
https://github.com/opencv/opencv/commit/1c4c58d1b5b7430463281e8c8072e04245f561b0,
opencv3 bundles its own copy of protobuf. Instead of using the bundled
protobuf library, this commit disables building protobuf
(BUILD_PROTOBUF=OFF) and instead uses the protobuf Buildroot package
(using the WITH_PROTOBUF=ON/OFF option).

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/opencv3/Config.in
package/opencv3/opencv3.mk

index cf7763d4ae5f4706f585a55f2bde7f15d6599594..fdd7152ee685b04c67c359f32e786c2f65ba7762 100644 (file)
@@ -307,6 +307,18 @@ config BR2_PACKAGE_OPENCV3_WITH_PNG
        help
          Use shared libpng from the target system.
 
+config BR2_PACKAGE_OPENCV3_WITH_PROTOBUF
+       bool "protobuf support"
+       depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS # protobuf
+       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # protobuf
+       select BR2_PACKAGE_PROTOBUF
+       help
+         Use shared protobuf from the target system.
+
+comment "protobuf support needs a toolchain w/ gcc >= 4.8"
+       depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
+       depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+
 config BR2_PACKAGE_OPENCV3_WITH_TIFF
        bool "tiff support"
        select BR2_PACKAGE_TIFF
index 4ddd80723f602b480af88d27ba6b98159d4e888e..89ed8f4278e46ef6c01b58c5a684012a84aff8d2 100644 (file)
@@ -193,6 +193,7 @@ OPENCV3_CONF_OPTS += \
        -DBUILD_JPEG=OFF \
        -DBUILD_OPENEXR=OFF \
        -DBUILD_PNG=OFF \
+       -DBUILD_PROTOBUF=OFF \
        -DBUILD_TIFF=OFF \
        -DBUILD_ZLIB=OFF \
        -DINSTALL_C_EXAMPLES=OFF \
@@ -288,6 +289,13 @@ else
 OPENCV3_CONF_OPTS += -DWITH_PNG=OFF
 endif
 
+ifeq ($(BR2_PACKAGE_OPENCV3_WITH_PROTOBUF),y)
+OPENCV3_CONF_OPTS += -DWITH_PROTOBUF=ON
+OPENCV3_DEPENDENCIES += protobuf
+else
+OPENCV3_CONF_OPTS += -DWITH_PROTOBUF=OFF
+endif
+
 ifeq ($(BR2_PACKAGE_OPENCV3_WITH_QT5),y)
 OPENCV3_CONF_OPTS += -DWITH_QT=5
 OPENCV3_DEPENDENCIES += qt5base