From 456a7398316655ad0b669635f580e4887c24a700 Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Mon, 14 Nov 2022 16:22:53 -0700 Subject: [PATCH] package/zxing-cpp: bump to version 1.4.0 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 Signed-off-by: Thomas Petazzoni --- ...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 | 48 +++++++++++++++---- 5 files changed, 42 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 -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 -[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 -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 -[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..1051376808 100644 --- a/package/zxing-cpp/zxing-cpp.mk +++ b/package/zxing-cpp/zxing-cpp.mk @@ -4,23 +4,51 @@ # ################################################################################ -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=OFF \ + -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),yy) +ZXING_CPP_DEPENDENCIES += python3 python-pybind +ZXING_CPP_CONF_OPTS += -DBUILD_PYTHON_MODULE=ON else -ZXING_CPP_CONF_OPTS += -DBUILD_OPENCV=OFF +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 +# Only set qt5 as required when all optional qt5 dependencies are present +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 += -DCMAKE_DISABLE_FIND_PACKAGE_Qt5=TRUE endif $(eval $(cmake-package))