All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/cpp-httplib: new package
@ 2024-09-26 12:41 Aleksandr Makarov
  2024-10-26 20:52 ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 2+ messages in thread
From: Aleksandr Makarov @ 2024-09-26 12:41 UTC (permalink / raw)
  To: buildroot; +Cc: Eric Le Bihan, Aleksandr Makarov

Signed-off-by: Aleksandr Makarov <aleksandr.o.makarov@gmail.com>
---
 package/Config.in                    |  1 +
 package/cpp-httplib/Config.in        | 21 +++++++++++++
 package/cpp-httplib/cpp-httplib.hash |  3 ++
 package/cpp-httplib/cpp-httplib.mk   | 44 ++++++++++++++++++++++++++++
 4 files changed, 69 insertions(+)
 create mode 100644 package/cpp-httplib/Config.in
 create mode 100644 package/cpp-httplib/cpp-httplib.hash
 create mode 100644 package/cpp-httplib/cpp-httplib.mk

diff --git a/package/Config.in b/package/Config.in
index c0f4d9ece5..27f464b112 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1987,6 +1987,7 @@ menu "Networking"
 	source "package/bluez5_utils-headers/Config.in"
 	source "package/c-ares/Config.in"
 	source "package/cni-plugins/Config.in"
+	source "package/cpp-httplib/Config.in"
 	source "package/cppzmq/Config.in"
 	source "package/curlpp/Config.in"
 	source "package/czmq/Config.in"
diff --git a/package/cpp-httplib/Config.in b/package/cpp-httplib/Config.in
new file mode 100644
index 0000000000..ee24adff81
--- /dev/null
+++ b/package/cpp-httplib/Config.in
@@ -0,0 +1,21 @@
+comment "cpp-httplib needs a toolchain w/ C++, wchar, threads"
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+
+config BR2_PACKAGE_CPP_HTTPLIB
+	bool "cpp-httplib"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_USE_WCHAR
+	help
+	  A C++ header-only HTTP/HTTPS server and client library.
+
+	  https://github.com/yhirose/cpp-httplib
+
+if BR2_PACKAGE_CPP_HTTPLIB
+config BR2_PACKAGE_CPP_HTTPLIB_COMPILE
+	bool "compile"
+	select BR2_PACKAGE_HOST_PYTHON3
+	help
+	  Build as library
+
+endif # BR2_PACKAGE_CPP_HTTPLIB
diff --git a/package/cpp-httplib/cpp-httplib.hash b/package/cpp-httplib/cpp-httplib.hash
new file mode 100644
index 0000000000..45c2214105
--- /dev/null
+++ b/package/cpp-httplib/cpp-httplib.hash
@@ -0,0 +1,3 @@
+# Locally computed:
+sha256  6ed5894bbbc4a34a0f4c5e962672d0003d2ea099bbadacc66f6dee2b213ff394  cpp-httplib-0.18.0.tar.gz
+sha256  4b45cbe16d7b71b89ae6127e26e0d90a029198ca5e958ad8e3d0b8bbed364d8b  LICENSE
diff --git a/package/cpp-httplib/cpp-httplib.mk b/package/cpp-httplib/cpp-httplib.mk
new file mode 100644
index 0000000000..9b66114851
--- /dev/null
+++ b/package/cpp-httplib/cpp-httplib.mk
@@ -0,0 +1,44 @@
+################################################################################
+#
+# cpp-httplib
+#
+################################################################################
+
+CPP_HTTPLIB_VERSION = 0.18.0
+CPP_HTTPLIB_SITE = $(call github,yhirose,cpp-httplib,v$(CPP_HTTPLIB_VERSION))
+CPP_HTTPLIB_LICENSE = MIT
+CPP_HTTPLIB_LICENSE_FILES = LICENSE
+CPP_HTTPLIB_CONF_OPTS = \
+	-Dcpp-httplib_test=false
+
+
+ifeq ($(BR2_PACKAGE_CPP_HTTPLIB_COMPILE),y)
+CPP_HTTPLIB_CONF_OPTS += -Dcpp-httplib_compile=true
+CPP_HTTPLIB_DEPENDENCIES += host-python3
+else
+CPP_HTTPLIB_INSTALL_STAGING = YES
+endif
+
+ifeq ($(BR2_PACKAGE_OPENSSL),y)
+CPP_HTTPLIB_CONF_OPTS += -Dcpp-httplib_openssl=enabled
+CPP_HTTPLIB_DEPENDENCIES += openssl
+else
+CPP_HTTPLIB_CONF_OPTS += -Dcpp-httplib_openssl=disabled
+endif
+
+ifeq ($(BR2_PACKAGE_ZLIB),y)
+CPP_HTTPLIB_CONF_OPTS += -Dcpp-httplib_zlib=enabled
+CPP_HTTPLIB_DEPENDENCIES += zlib
+else
+CPP_HTTPLIB_CONF_OPTS += -Dcpp-httplib_zlib=disabled
+endif
+
+ifeq ($(BR2_PACKAGE_BROTLI),y)
+CPP_HTTPLIB_CONF_OPTS += -Dcpp-httplib_brotli=enabled
+CPP_HTTPLIB_DEPENDENCIES += brotli
+else
+CPP_HTTPLIB_CONF_OPTS += -Dcpp-httplib_brotli=disabled
+endif
+
+$(eval $(meson-package))
+
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Buildroot] [PATCH 1/1] package/cpp-httplib: new package
  2024-09-26 12:41 [Buildroot] [PATCH 1/1] package/cpp-httplib: new package Aleksandr Makarov
@ 2024-10-26 20:52 ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-10-26 20:52 UTC (permalink / raw)
  To: Aleksandr Makarov; +Cc: buildroot, Eric Le Bihan

Hello Aleksandr,

On Thu, 26 Sep 2024 15:41:31 +0300
Aleksandr Makarov <aleksandr.o.makarov@gmail.com> wrote:

> Signed-off-by: Aleksandr Makarov <aleksandr.o.makarov@gmail.com>

Thanks, I have applied your patch after doing a few tweaks.

> ---
>  package/Config.in                    |  1 +
>  package/cpp-httplib/Config.in        | 21 +++++++++++++
>  package/cpp-httplib/cpp-httplib.hash |  3 ++
>  package/cpp-httplib/cpp-httplib.mk   | 44 ++++++++++++++++++++++++++++
>  4 files changed, 69 insertions(+)

An entry in the DEVELOPERS should be added, so I did that.


> diff --git a/package/cpp-httplib/Config.in b/package/cpp-httplib/Config.in
> new file mode 100644
> index 0000000000..ee24adff81
> --- /dev/null
> +++ b/package/cpp-httplib/Config.in
> @@ -0,0 +1,21 @@
> +comment "cpp-httplib needs a toolchain w/ C++, wchar, threads"
> +	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
> +
> +config BR2_PACKAGE_CPP_HTTPLIB
> +	bool "cpp-httplib"
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on BR2_USE_WCHAR
> +	help
> +	  A C++ header-only HTTP/HTTPS server and client library.
> +
> +	  https://github.com/yhirose/cpp-httplib
> +
> +if BR2_PACKAGE_CPP_HTTPLIB
> +config BR2_PACKAGE_CPP_HTTPLIB_COMPILE
> +	bool "compile"

"compile" was a bit short, so I changed to:

+       bool "compile as a shared library"
> diff --git a/package/cpp-httplib/cpp-httplib.mk b/package/cpp-httplib/cpp-httplib.mk
> new file mode 100644
> index 0000000000..9b66114851
> --- /dev/null
> +++ b/package/cpp-httplib/cpp-httplib.mk
> @@ -0,0 +1,44 @@
> +################################################################################
> +#
> +# cpp-httplib
> +#
> +################################################################################
> +
> +CPP_HTTPLIB_VERSION = 0.18.0
> +CPP_HTTPLIB_SITE = $(call github,yhirose,cpp-httplib,v$(CPP_HTTPLIB_VERSION))
> +CPP_HTTPLIB_LICENSE = MIT
> +CPP_HTTPLIB_LICENSE_FILES = LICENSE
> +CPP_HTTPLIB_CONF_OPTS = \
> +	-Dcpp-httplib_test=false
> +
> +

One two many lines.

> +ifeq ($(BR2_PACKAGE_CPP_HTTPLIB_COMPILE),y)
> +CPP_HTTPLIB_CONF_OPTS += -Dcpp-httplib_compile=true
> +CPP_HTTPLIB_DEPENDENCIES += host-python3
> +else
> +CPP_HTTPLIB_INSTALL_STAGING = YES

You tried to do the right thing, but this wasn't the correct thing. In
fact, what was needed is:

CPP_HTTPLIB_INSTALL_STAGING = YES

unconditionally.

And

CPP_HTTPLIB_INSTALL_TARGET = NO when BR2_PACKAGE_CPP_HTTPLIB_COMPILE is
disabled.

Indeed, when BR2_PACKAGE_CPP_HTTPLIB_COMPILE is disabled, it's a header
only library. The header is needed in staging but not in tgarget.

When BR2_PACKAGE_CPP_HTTPLIB_COMPILE is enabled, you have a shared
library, it's needed both in the target and staging.

> +$(eval $(meson-package))
> +

Final empty line not needed.

Once again: I fixed those issues when applying.

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-10-26 20:53 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-26 12:41 [Buildroot] [PATCH 1/1] package/cpp-httplib: new package Aleksandr Makarov
2024-10-26 20:52 ` Thomas Petazzoni via buildroot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.