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

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

Commit Message

Dario Binacchi May 19, 2024, 7:25 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.

Co-Developed-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Co-Developed-by: Francesco Nicoletta Puzzillo <francesco.nicolettap@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>

---
Changes v2 -> v3:
- Add 'select BR2_PACKAGE_ZXING_CPP_READERS if !BR2_PACKAGE_ZXING_CPP_WRITERS'
  and drop comment.
- Add Co-Developed-by tags

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

Yann E. MORIN May 21, 2024, 4:59 a.m. UTC | #1
Dario, All,

On 2024-05-19 09:25 +0200, Dario Binacchi spake thusly:
> 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.
> 
> Co-Developed-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> Co-Developed-by: Francesco Nicoletta Puzzillo <francesco.nicolettap@amarulasolutions.com>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>

Applied to master, thanks.

Regards,
Yann E. MORIN.

> ---
> Changes v2 -> v3:
> - Add 'select BR2_PACKAGE_ZXING_CPP_READERS if !BR2_PACKAGE_ZXING_CPP_WRITERS'
>   and drop comment.
> - Add Co-Developed-by tags
> 
> 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(-)
> 
> diff --git a/package/zxing-cpp/Config.in b/package/zxing-cpp/Config.in
> index b72a00ec35f9..e5b8cfcdd8aa 100644
> --- a/package/zxing-cpp/Config.in
> +++ b/package/zxing-cpp/Config.in
> @@ -10,6 +10,7 @@ config BR2_PACKAGE_ZXING_CPP
>  	depends on BR2_TOOLCHAIN_HAS_THREADS
>  	select BR2_PACKAGE_STB
>  	select BR2_PACKAGE_PYTHON_PYBIND if BR2_PACKAGE_PYTHON3
> +	select BR2_PACKAGE_ZXING_CPP_READERS if !BR2_PACKAGE_ZXING_CPP_WRITERS
>  	help
>  	  ZXing-cpp (pronounced "zebra crossing") is an open-source,
>  	  multi-format 1D/2D barcode image processing library
> @@ -17,3 +18,19 @@ config BR2_PACKAGE_ZXING_CPP
>  	  compiles the C++ port.
>  
>  	  https://github.com/zxing-cpp/zxing-cpp
> +
> +if BR2_PACKAGE_ZXING_CPP
> +
> +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))
> -- 
> 2.43.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

Patch

diff --git a/package/zxing-cpp/Config.in b/package/zxing-cpp/Config.in
index b72a00ec35f9..e5b8cfcdd8aa 100644
--- a/package/zxing-cpp/Config.in
+++ b/package/zxing-cpp/Config.in
@@ -10,6 +10,7 @@  config BR2_PACKAGE_ZXING_CPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	select BR2_PACKAGE_STB
 	select BR2_PACKAGE_PYTHON_PYBIND if BR2_PACKAGE_PYTHON3
+	select BR2_PACKAGE_ZXING_CPP_READERS if !BR2_PACKAGE_ZXING_CPP_WRITERS
 	help
 	  ZXing-cpp (pronounced "zebra crossing") is an open-source,
 	  multi-format 1D/2D barcode image processing library
@@ -17,3 +18,19 @@  config BR2_PACKAGE_ZXING_CPP
 	  compiles the C++ port.
 
 	  https://github.com/zxing-cpp/zxing-cpp
+
+if BR2_PACKAGE_ZXING_CPP
+
+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))