From 2bcf0a963159eb6beba80dce1b901d8ad7ec5bbc Mon Sep 17 00:00:00 2001 From: Aleksandr Makarov Date: Thu, 26 Sep 2024 15:41:31 +0300 Subject: [PATCH] package/cpp-httplib: new package Signed-off-by: Aleksandr Makarov Signed-off-by: Thomas Petazzoni --- DEVELOPERS | 3 ++ package/Config.in | 1 + package/cpp-httplib/Config.in | 21 +++++++++++++ package/cpp-httplib/cpp-httplib.hash | 3 ++ package/cpp-httplib/cpp-httplib.mk | 44 ++++++++++++++++++++++++++++ 5 files changed, 72 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/DEVELOPERS b/DEVELOPERS index 7f9a60b1b9..8ad5540dc9 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -81,6 +81,9 @@ F: package/libmbim/ F: package/libqmi/ F: package/modem-manager/ +N: Aleksandr Makarov +F: package/cpp-httplib/ + N: Alessandro Partesotti F: package/oatpp/ diff --git a/package/Config.in b/package/Config.in index 3c2e75db6c..b03bc2ffcf 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1999,6 +1999,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..9bd93ee0af --- /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 as a shared library" + 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..5a02b562b3 --- /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_INSTALL_STAGING = YES +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 +# Header only library +CPP_HTTPLIB_INSTALL_TARGET = NO +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))