[v2] package/zxing-cpp: add options for enabling readers and/or writers

Message ID 20240518094006.1134068-1-dario.binacchi@amarulasolutions.com
State New
Headers show
Series
  • [v2] package/zxing-cpp: add options for enabling readers and/or writers
Related show

Commit Message

Dario Binacchi May 18, 2024, 9:40 a.m. UTC
The patch allows you to choose whether to build encoding (BUILD_WRITERS),
decoding (BUILD_READERS) or both. At least one of the two options must
be enabled. This way, it's possible to keep the library size at minimum.
By default, to ensure backward compatibility, both are compiled.

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
Changes v1 -> v2:
- Drop BR2_PACKAGE_ZXING_CPP_READERS_AND_WRITERS selection

 package/zxing-cpp/Config.in    | 17 +++++++++++++++++
 package/zxing-cpp/zxing-cpp.mk | 14 ++++++++++++--
 2 files changed, 29 insertions(+), 2 deletions(-)

Comments

'Krzysztof Kozlowski' via Amarula Linux May 18, 2024, 8:13 p.m. UTC | #1
Hello Dario,

On Sat, 18 May 2024 11:40:06 +0200
Dario Binacchi <dario.binacchi@amarulasolutions.com> wrote:

> +if BR2_PACKAGE_ZXING_CPP
> +comment "At least one of readers/writers must be enabled"

This comment is not really useful, as it doesn't force anything. If
really at least one of readers or writers are needed, then you should
do this in the main BR2_PACKAGE_ZXING option:

	select BR2_PACKAGE_ZXING_CPP_READERS if !BR2_PACKAGE_ZXING_CPP_WRITERS

This will ensure that readers are selected if writers are not selected.
But it will still allow to deselect readers if writers are enabled.

Thanks!

Thomas

Patch

diff --git a/package/zxing-cpp/Config.in b/package/zxing-cpp/Config.in
index b72a00ec35f9..511c21e7360a 100644
--- a/package/zxing-cpp/Config.in
+++ b/package/zxing-cpp/Config.in
@@ -17,3 +17,20 @@  config BR2_PACKAGE_ZXING_CPP
 	  compiles the C++ port.
 
 	  https://github.com/zxing-cpp/zxing-cpp
+
+if BR2_PACKAGE_ZXING_CPP
+comment "At least one of readers/writers must be enabled"
+
+config BR2_PACKAGE_ZXING_CPP_READERS
+	bool "readers support"
+	default y
+	help
+	  Build with readers (decoders) support
+
+config BR2_PACKAGE_ZXING_CPP_WRITERS
+	bool "writers support"
+	default y
+	help
+	  Build with writers (encoders) support
+
+endif # BR2_PACKAGE_ZXING_CPP
diff --git a/package/zxing-cpp/zxing-cpp.mk b/package/zxing-cpp/zxing-cpp.mk
index 86a1ef96806d..077d7e75d3dd 100644
--- a/package/zxing-cpp/zxing-cpp.mk
+++ b/package/zxing-cpp/zxing-cpp.mk
@@ -12,8 +12,6 @@  ZXING_CPP_INSTALL_STAGING = YES
 ZXING_CPP_SUPPORTS_IN_SOURCE_BUILD = NO
 ZXING_CPP_DEPENDENCIES = host-pkgconf stb
 ZXING_CPP_CONF_OPTS = \
-	-DBUILD_READERS=ON \
-	-DBUILD_WRITERS=ON \
 	-DBUILD_BLACKBOX_TESTS=OFF \
 	-DBUILD_UNIT_TESTS=OFF \
 	-DBUILD_DEPENDENCIES=LOCAL
@@ -28,4 +26,16 @@  else
 ZXING_CPP_CONF_OPTS += -DBUILD_PYTHON_MODULE=OFF
 endif
 
+ifeq ($(BR2_PACKAGE_ZXING_CPP_READERS),y)
+ZXING_CPP_CONF_OPTS += -DBUILD_READERS=ON
+else
+ZXING_CPP_CONF_OPTS += -DBUILD_READERS=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_ZXING_CPP_WRITERS),y)
+ZXING_CPP_CONF_OPTS += -DBUILD_WRITERS=ON
+else
+ZXING_CPP_CONF_OPTS += -DBUILD_WRITERS=OFF
+endif
+
 $(eval $(cmake-package))