[Buildroot] [PATCH 2/3] package/zxing-cpp: bump to version 1.4.0

James Hilliard james.hilliard1 at gmail.com
Mon Nov 7 02:24:57 UTC 2022


Drop patches which are no longer required.

Verified license remains Apache-2.0 after hash change.

Rework config options for 1.4.0.

Add new host-pkgconf and stb build dependency.

Drop optional libiconv dependency which is no longer used.

Add optional python module support.

Add optional qt5 support.

Add optional opencv4 support.

Signed-off-by: James Hilliard <james.hilliard1 at gmail.com>
---
 ...bs-private-not-exported-to-the-users.patch | 43 -----------------
 ...akeLists-txt-add-BUILD_OPENCV-option.patch | 39 ---------------
 package/zxing-cpp/Config.in                   |  2 +
 package/zxing-cpp/zxing-cpp.hash              |  4 +-
 package/zxing-cpp/zxing-cpp.mk                | 47 +++++++++++++++----
 5 files changed, 41 insertions(+), 94 deletions(-)
 delete mode 100644 package/zxing-cpp/0001-Link-library-with-OpenCV-make-libs-private-not-exported-to-the-users.patch
 delete mode 100644 package/zxing-cpp/0002-CMakeLists-txt-add-BUILD_OPENCV-option.patch

diff --git a/package/zxing-cpp/0001-Link-library-with-OpenCV-make-libs-private-not-exported-to-the-users.patch b/package/zxing-cpp/0001-Link-library-with-OpenCV-make-libs-private-not-exported-to-the-users.patch
deleted file mode 100644
index 90b2320384..0000000000
--- a/package/zxing-cpp/0001-Link-library-with-OpenCV-make-libs-private-not-exported-to-the-users.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 9e5dfa57f3b998bc3049bfa893b20e81dea656df Mon Sep 17 00:00:00 2001
-From: Yuri <yuri at rawbw.com>
-Date: Sat, 20 Apr 2019 07:28:26 -0700
-Subject: [PATCH] Link library with OpenCV, not only the executable, make libs
- PRIVATE.
-
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
-[Upstream status: https://github.com/glassechidna/zxing-cpp/pull/86]
----
- CMakeLists.txt | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 738f4e1..efe3aee 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -60,10 +60,12 @@ include_directories(core/src)
- add_library(libzxing ${LIBZXING_FILES})
- set_target_properties(libzxing PROPERTIES PREFIX "")
- 
-+set(libzxing_LIBS "")
-+
- find_package(Iconv)
- if(ICONV_FOUND)
-     include_directories(${ICONV_INCLUDE_DIR})
--    target_link_libraries(libzxing ${ICONV_LIBRARIES})
-+    set(libzxing_LIBS ${libzxing_LIBS} ${ICONV_LIBRARIES})
- else()
-     add_definitions(-DNO_ICONV=1)
- endif()
-@@ -75,9 +77,12 @@ if(OpenCV_FOUND)
-         "./opencv-cli/src/*.h"
-     )
-     add_executable(zxing-cv ${OPENCV_ZXING_FILES})
-+    set(libzxing_LIBS ${libzxing_LIBS} ${OpenCV_LIBRARIES})
-     target_link_libraries(zxing-cv libzxing ${OpenCV_LIBRARIES})
- endif()
- 
-+target_link_libraries(libzxing PRIVATE ${libzxing_LIBS})
-+
- # Add cli executable.
- file(GLOB_RECURSE ZXING_FILES
-     "./cli/src/*.cpp"
diff --git a/package/zxing-cpp/0002-CMakeLists-txt-add-BUILD_OPENCV-option.patch b/package/zxing-cpp/0002-CMakeLists-txt-add-BUILD_OPENCV-option.patch
deleted file mode 100644
index 31753d7c24..0000000000
--- a/package/zxing-cpp/0002-CMakeLists-txt-add-BUILD_OPENCV-option.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From fe740316af970f57ec511cdeafb512510e4842a9 Mon Sep 17 00:00:00 2001
-From: Fabrice Fontaine <fontaine.fabrice at gmail.com>
-Date: Sat, 9 Nov 2019 17:21:13 +0100
-Subject: [PATCH] CMakeLists.txt: add BUILD_OPENCV option
-
-Add BUILD_OPENCV option to allow the user to disable OpenCV. It is
-especially useful as opencv library can be built without highgui support
-
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
-[Upstream status: https://github.com/glassechidna/zxing-cpp/pull/90]
----
- CMakeLists.txt | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 738f4e1..12913cd 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 3.0)
- project(zxing)
- 
- option(BUILD_TESTING "Enable generation of test targets" OFF)
-+option(BUILD_OPENCV "Enable OpenCV classes and OpenCV cli executable" ON)
- 
- set(CMAKE_LIBRARY_PATH /opt/local/lib ${CMAKE_LIBRARY_PATH})
- 
-@@ -44,8 +45,10 @@ else()
-     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
- endif()
- 
--# OpenCV classes
--find_package(OpenCV)
-+if (BUILD_OPENCV)
-+    # OpenCV classes
-+    find_package(OpenCV)
-+endif()
- if(OpenCV_FOUND)
-     list(APPEND LIBZXING_FILES
-         opencv/src/zxing/MatSource.cpp
diff --git a/package/zxing-cpp/Config.in b/package/zxing-cpp/Config.in
index c1109219a0..6c17565d2a 100644
--- a/package/zxing-cpp/Config.in
+++ b/package/zxing-cpp/Config.in
@@ -5,6 +5,8 @@ config BR2_PACKAGE_ZXING_CPP
 	bool "zxing-cpp"
 	depends on !BR2_STATIC_LIBS
 	depends on BR2_INSTALL_LIBSTDCPP
+	select BR2_PACKAGE_STB
+	select BR2_PACKAGE_PYTHON_PYBIND if BR2_PACKAGE_PYTHON3
 	help
 	  ZXing-cpp (pronounced "zebra crossing") is an open-source,
 	  multi-format 1D/2D barcode image processing library
diff --git a/package/zxing-cpp/zxing-cpp.hash b/package/zxing-cpp/zxing-cpp.hash
index cabe3e70d4..5457ede44a 100644
--- a/package/zxing-cpp/zxing-cpp.hash
+++ b/package/zxing-cpp/zxing-cpp.hash
@@ -1,5 +1,5 @@
 # Locally calculated
-sha256  4c2b8601d0e3377143c1a0bbab220146af9fa5a5e29e8fbef42862fe3d38f8e6  zxing-cpp-e0e40ddec63f38405aca5c8c1ff60b85ec8b1f10.tar.gz
+sha256  126767bb56f8a1f25ae84d233db2e9b9be50d71f5776092d0e170ca0f0ed1862  zxing-cpp-1.4.0.tar.gz
 
 # License files
-sha256  c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4  COPYING
+sha256  c6596eb7be8581c18be736c846fb9173b69eccf6ef94c5135893ec56bd92ba08  LICENSE
diff --git a/package/zxing-cpp/zxing-cpp.mk b/package/zxing-cpp/zxing-cpp.mk
index e9c80b4453..a728e3c352 100644
--- a/package/zxing-cpp/zxing-cpp.mk
+++ b/package/zxing-cpp/zxing-cpp.mk
@@ -4,23 +4,50 @@
 #
 ################################################################################
 
-ZXING_CPP_VERSION = e0e40ddec63f38405aca5c8c1ff60b85ec8b1f10
-ZXING_CPP_SITE = $(call github,glassechidna,zxing-cpp,$(ZXING_CPP_VERSION))
+ZXING_CPP_VERSION = 1.4.0
+ZXING_CPP_SITE = $(call github,zxing-cpp,zxing-cpp,v$(ZXING_CPP_VERSION))
 ZXING_CPP_LICENSE = Apache-2.0
-ZXING_CPP_LICENSE_FILES = COPYING
+ZXING_CPP_LICENSE_FILES = LICENSE
 ZXING_CPP_INSTALL_STAGING = YES
 ZXING_CPP_SUPPORTS_IN_SOURCE_BUILD = NO
-ZXING_CPP_CONF_OPTS = -DBUILD_TESTING=OFF
+ZXING_CPP_DEPENDENCIES = host-pkgconf stb
+ZXING_CPP_CONF_OPTS = \
+	-DBUILD_READERS=ON \
+	-DBUILD_WRITERS=ON \
+	-DBUILD_EXAMPLES=ON \
+	-DBUILD_BLACKBOX_TESTS=OFF \
+	-DBUILD_UNIT_TESTS=OFF \
+	-DBUILD_DEPENDENCIES=LOCAL
 
-ifeq ($(BR2_PACKAGE_LIBICONV),y)
-ZXING_CPP_DEPENDENCIES += libiconv
+ifeq ($(BR2_PACKAGE_OPENCV3_LIB_HIGHGUI)$(BR2_PACKAGE_OPENCV4_LIB_HIGHGUI),y)
+ifeq ($(BR2_PACKAGE_OPENCV3),y)
+ZXING_CPP_DEPENDENCIES += opencv3
+endif
+ifeq ($(BR2_PACKAGE_OPENCV4),y)
+ZXING_CPP_DEPENDENCIES += opencv4
+endif
+ZXING_CPP_CONF_OPTS += -DCMAKE_REQUIRE_FIND_PACKAGE_OpenCV=TRUE
+else
+ZXING_CPP_CONF_OPTS += -DCMAKE_DISABLE_FIND_PACKAGE_OpenCV=TRUE
 endif
 
-ifeq ($(BR2_PACKAGE_OPENCV3_LIB_HIGHGUI),y)
-ZXING_CPP_DEPENDENCIES += opencv3
-ZXING_CPP_CONF_OPTS += -DBUILD_OPENCV=ON
+ifeq ($(BR2_PACKAGE_PYTHON3)$(BR2_PACKAGE_PYTHON_PYBIND),y)
+ZXING_CPP_DEPENDENCIES += python3 python-pybind
+ZXING_CPP_CONF_OPTS += -DBUILD_PYTHON_MODULE=ON
+else
+ZXING_CPP_CONF_OPTS += -DBUILD_PYTHON_MODULE=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_QT5BASE),y)
+ZXING_CPP_DEPENDENCIES += qt5base
+ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK)$(BR2_PACKAGE_QT5MULTIMEDIA),yy)
+ZXING_CPP_DEPENDENCIES += qt5declarative qt5multimedia
+endif
+ifeq ($(BR2_PACKAGE_QT5BASE_GUI)$(BR2_PACKAGE_QT5DECLARATIVE_QUICK)$(BR2_PACKAGE_QT5MULTIMEDIA),yyy)
+ZXING_CPP_CONF_OPTS += -DCMAKE_REQUIRE_FIND_PACKAGE_Qt5=TRUE
+endif
 else
-ZXING_CPP_CONF_OPTS += -DBUILD_OPENCV=OFF
+ZXING_CPP_CONF_OPTS += -DCMAKE_DISABLE_FIND_PACKAGE_Qt5=TRUE
 endif
 
 $(eval $(cmake-package))
-- 
2.34.1




More information about the buildroot mailing list