| Message ID | 20260102182445.365668-2-dario.binacchi@amarulasolutions.com |
|---|---|
| State | New |
| Headers | show |
| Series |
|
| Related | show |
Hi all On Fri, Jan 2, 2026 at 7:24 PM Dario Binacchi <dario.binacchi@amarulasolutions.com> wrote: > > Drogon is a C++17/20 based HTTP application framework. It can be used to > easily build various types of web application server programs using C++. > > Project page: https://github.com/drogonframework/drogon > > Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> > > --- > > Changes v2 -> v3: > - The PRs related to the patches have all been merged. The first PR was > merged by combining the three patches into a single one. Replace all > Upstream: links with the link to the final commit. > - Add help text to the added KConfig options. > - Select external libraries for BROTLI and YAML_CONFIG options. > - Drop the host configurations. Files too. > - Always add -DBUILD_CTL=ON to HOST_DROGON_CONF_OPTS (together with > -DBUILD_TESTS=OFF and -DBUILD_EXAMPLES=OFF). > > Changes v1 -> v2: > - Drop BR2_ARCH_IS_64 dependency. It has been tested on imx6ull platform. > - Add DROGON_INSTALL_STAGING > - Add 0004-Fix-building-error-for-Werror-unused-value.patch for trantor > submodule. > > DEVELOPERS | 1 + > package/Config.in | 1 + > .../0001-Fix-cross-compiling-2389.patch | 76 +++++++++++++++++++ > ...ilding-error-for-Werror-unused-value.patch | 42 ++++++++++ > package/drogon/Config.in | 50 ++++++++++++ > package/drogon/drogon.mk | 63 +++++++++++++++ > 6 files changed, 233 insertions(+) > create mode 100644 package/drogon/0001-Fix-cross-compiling-2389.patch > create mode 100644 package/drogon/0002-Fix-building-error-for-Werror-unused-value.patch > create mode 100644 package/drogon/Config.in > create mode 100644 package/drogon/drogon.mk > > diff --git a/DEVELOPERS b/DEVELOPERS > index f448c3b5820c..70ea6f8e023f 100644 > --- a/DEVELOPERS > +++ b/DEVELOPERS > @@ -815,6 +815,7 @@ F: package/babeld/ > F: package/bc/ > F: package/cmocka/ > F: package/connman/ > +F: package/drogon/ > F: package/empty/ > F: package/iana-assignments/ > F: package/inih/ > diff --git a/package/Config.in b/package/Config.in > index 2b9e31ebb30d..998042ed2610 100644 > --- a/package/Config.in > +++ b/package/Config.in > @@ -1979,6 +1979,7 @@ menu "Networking" > source "package/davici/Config.in" > source "package/dht/Config.in" > source "package/dpdk/Config.in" > + source "package/drogon/Config.in" > source "package/enet/Config.in" > source "package/filemq/Config.in" > source "package/fmlib/Config.in" > diff --git a/package/drogon/0001-Fix-cross-compiling-2389.patch b/package/drogon/0001-Fix-cross-compiling-2389.patch > new file mode 100644 > index 000000000000..f6df0a435006 > --- /dev/null > +++ b/package/drogon/0001-Fix-cross-compiling-2389.patch > @@ -0,0 +1,76 @@ > +From 06508006812881c91eebd80307aa465d5abd0e55 Mon Sep 17 00:00:00 2001 > +From: Dario Binacchi <45538935+passgat@users.noreply.github.com> > +Date: Wed, 24 Sep 2025 09:21:12 +0200 > +Subject: [PATCH] Fix cross compiling (#2389) > + > +Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> > +Upstream: https://github.com/drogonframework/drogon/commit/06508006812881c91eebd80307aa465d5abd0e55 > +--- > + CMakeLists.txt | 9 +++++++++ > + drogon_ctl/CMakeLists.txt | 3 ++- > + examples/CMakeLists.txt | 8 ++++++++ > + 3 files changed, 19 insertions(+), 1 deletion(-) > + > +diff --git a/CMakeLists.txt b/CMakeLists.txt > +index 9cbc6d732a33..7cf091e90ef7 100644 > +--- a/CMakeLists.txt > ++++ b/CMakeLists.txt > +@@ -524,6 +524,15 @@ if (BUILD_EXAMPLES) > + endif (BUILD_EXAMPLES) > + > + if (BUILD_CTL) > ++ if (CMAKE_CROSSCOMPILING) > ++ find_program(HOST_DROGON_CTL _drogon_ctl) > ++ if (NOT HOST_DROGON_CTL) > ++ message(FATAL_ERROR "_drogon_ctl not found on host system") > ++ endif() > ++ set(DROGON_CTL "${HOST_DROGON_CTL}") > ++ else (CMAKE_CROSSCOMPILING) > ++ set(DROGON_CTL "$<TARGET_FILE:_drogon_ctl>") > ++ endif (CMAKE_CROSSCOMPILING) > + add_subdirectory(drogon_ctl) > + endif (BUILD_CTL) > + > +diff --git a/drogon_ctl/CMakeLists.txt b/drogon_ctl/CMakeLists.txt > +index 04b790d3741b..f6b12bddab60 100755 > +--- a/drogon_ctl/CMakeLists.txt > ++++ b/drogon_ctl/CMakeLists.txt > +@@ -43,7 +43,7 @@ foreach(cspFile ${SCP_LIST}) > + get_filename_component(classname ${cspFile} NAME_WE) > + message(STATUS "view classname:" ${classname}) > + add_custom_command(OUTPUT ${classname}.h ${classname}.cc > +- COMMAND $<TARGET_FILE:_drogon_ctl> > ++ COMMAND ${DROGON_CTL} > + ARGS > + create > + view > +@@ -63,6 +63,7 @@ if(APPLE) > + target_link_libraries(drogon_ctl PRIVATE resolv) > + endif() > + message(STATUS "bin:" ${INSTALL_BIN_DIR}) > ++install(TARGETS _drogon_ctl RUNTIME DESTINATION ${INSTALL_BIN_DIR}) > + install(TARGETS drogon_ctl RUNTIME DESTINATION ${INSTALL_BIN_DIR}) > + if(WIN32) > + set(CTL_FILE $<TARGET_FILE:drogon_ctl>) > +diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt > +index dca122f424ba..61e65d8323aa 100755 > +--- a/examples/CMakeLists.txt > ++++ b/examples/CMakeLists.txt > +@@ -50,6 +50,14 @@ set(example_targets > + async_stream > + cors) > + > ++foreach(target ${example_targets}) > ++ set_target_properties(${target} PROPERTIES > ++ RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) > ++endforeach() > ++ > ++install(TARGETS ${example_targets} > ++ RUNTIME DESTINATION ${INSTALL_BIN_DIR}) > ++ > + # Add warnings for our example targets--some warnings (such as -Wunused-parameter) only appear > + # when the templated functions are instantiated at their point of use. > + if(NOT ${CMAKE_PLATFORM_NAME} STREQUAL "Windows" AND CMAKE_CXX_COMPILER_ID MATCHES GNU) > +-- > +2.43.0 > + > diff --git a/package/drogon/0002-Fix-building-error-for-Werror-unused-value.patch b/package/drogon/0002-Fix-building-error-for-Werror-unused-value.patch > new file mode 100644 > index 000000000000..16c6ba6b4217 > --- /dev/null > +++ b/package/drogon/0002-Fix-building-error-for-Werror-unused-value.patch > @@ -0,0 +1,42 @@ > +From 7134f2f8e07b89450dd2407e7a21a7b9cea6b192 Mon Sep 17 00:00:00 2001 > +From: Dario Binacchi <dario.binacchi@amarulasolutions.com> > +Date: Sat, 8 Nov 2025 19:39:01 +0100 > +Subject: [PATCH] Fix building error for -Werror=unused-value > +MIME-Version: 1.0 > +Content-Type: text/plain; charset=UTF-8 > +Content-Transfer-Encoding: 8bit > + > +Compiling trantor in Buildroot raises the following error: > + > +In file included from output/host/include/openssl/ssl.h:30, > + from output/build/host-drogon-v1.9.11/trantor/trantor/net/inner/tlsprovider/OpenSSLProvider.cc:6: > +build/host-drogon-v1.9.11/trantor/trantor/net/inner/tlsprovider/OpenSSLProvider.cc: In member function ‘ssize_t OpenSSLProvider::sendTLSData()’: > +output/host/include/openssl/bio.h:629:34: error: value computed is not used [-Werror=unused-value] > + 629 | # define BIO_reset(b) (int)BIO_ctrl(b,BIO_CTRL_RESET,0,NULL) > + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > +output/build/host-drogon-v1.9.11/trantor/trantor/net/inner/tlsprovider/OpenSSLProvider.cc:777:9: note: in expansion of macro ‘BIO_reset’ > + 777 | BIO_reset(wbio_); > + | ^~~~~~~~~ > + > +Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> > +Upstream: https://github.com/an-tao/trantor/commit/5714e8f68d3016c9a6a5abd23c627cf5d98eab81 > +--- > + trantor/trantor/net/inner/tlsprovider/OpenSSLProvider.cc | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/trantor/trantor/net/inner/tlsprovider/OpenSSLProvider.cc b/trantor/trantor/net/inner/tlsprovider/OpenSSLProvider.cc > +index f91e9cde75bd..787cbc405436 100644 > +--- a/trantor/trantor/net/inner/tlsprovider/OpenSSLProvider.cc > ++++ b/trantor/trantor/net/inner/tlsprovider/OpenSSLProvider.cc > +@@ -774,7 +774,7 @@ struct OpenSSLProvider : public TLSProvider, public NonCopyable > + { > + appendToWriteBuffer((char *)data + n, len - n); > + } > +- BIO_reset(wbio_); > ++ (void)BIO_reset(wbio_); > + if (n < 0) > + return -1; > + return len; > +-- > +2.43.0 > + > diff --git a/package/drogon/Config.in b/package/drogon/Config.in > new file mode 100644 > index 000000000000..d5b03cf61767 > --- /dev/null > +++ b/package/drogon/Config.in > @@ -0,0 +1,50 @@ > +config BR2_PACKAGE_DROGON > + bool "drogon" > + depends on BR2_INSTALL_LIBSTDCPP > + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_11 # C++17/20 > + depends on BR2_TOOLCHAIN_HAS_THREADS > + select BR2_PACKAGE_JSONCPP > + select BR2_PACKAGE_UTIL_LINUX > + select BR2_PACKAGE_UTIL_LINUX_LIBUUID > + select BR2_PACKAGE_ZLIB > + help > + Drogon is a C++17/20 based HTTP application framework. > + Drogon can be used to easily build various types of web > + application server programs using C++. > + > + https://github.com/drogonframework/drogon > + > +if BR2_PACKAGE_DROGON > + > +config BR2_PACKAGE_DROGON_BROTLI > + bool "build Brotli" > + select BR2_PACKAGE_BROTLI > + help > + Add support for brotli compression. > + > +config BR2_PACKAGE_DROGON_CTL > + bool "build drogon_ctl" > + help > + drogon_ctl is a command-line tool used to generate > + project skeletons and source code. > + > +config BR2_PACKAGE_DROGON_EXAMPLES > + bool "build examples" > + > +config BR2_PACKAGE_DROGON_ORM > + bool "build orm" > + help > + Enable the ORM module for typed database access. > + > +config BR2_PACKAGE_DROGON_YAML_CONFIG > + bool "build yaml config" > + select BR2_PACKAGE_YAML_CPP > + help > + Add support for YAML configuration via yaml-cpp. > + > +endif > + > +comment "drogon needs a toolchain w/ C++, threads, gcc >= 11" > + depends on !BR2_INSTALL_LIBSTDCPP || \ > + !BR2_TOOLCHAIN_GCC_AT_LEAST_11 || \ > + !BR2_TOOLCHAIN_HAS_THREADS > diff --git a/package/drogon/drogon.mk b/package/drogon/drogon.mk > new file mode 100644 > index 000000000000..06354280db07 > --- /dev/null > +++ b/package/drogon/drogon.mk > @@ -0,0 +1,63 @@ > +################################################################################ > +# > +# drogon > +# > +################################################################################ > + > +DROGON_VERSION = v1.9.11 > +DROGON_SITE = https://github.com/drogonframework/drogon > +DROGON_SITE_METHOD = git > +DROGON_GIT_SUBMODULES = YES > +DROGON_LICENSE = MIT > +DROGON_LICENSE_FILES = LICENSE > +DROGON_INSTALL_STAGING = YES > + > +DROGON_DEPENDENCIES = jsoncpp util-linux zlib > +HOST_DROGON_DEPENDENCIES = host-jsoncpp host-util-linux host-zlib > + > +DROGON_CONF_OPTS = \ > + -DBUILD_TESTS=OFF > + > +HOST_DROGON_CONF_OPTS = \ > + -DBUILD_CTL=ON \ > + -DBUILD_EXAMPLES=OFF \ > + -DBUILD_TESTS=OFF > + > +ifeq ($(BR2_PACKAGE_DROGON_BROTLI),y) > +DROGON_DEPENDENCIES += brotli > +DROGON_CONF_OPTS += -DBUILD_BROTLI=ON > +else > +DROGON_CONF_OPTS += -DBUILD_BROTLI=OFF > +endif > + > +ifeq ($(BR2_PACKAGE_DROGON_CTL),y) > +# When we have drogon_ctl for the target, we need to build the > +# _drogon_ctl tool with host-drogon support so that it can be > +# run during the building process > +DROGON_DEPENDENCIES += host-drogon > +DROGON_CONF_OPTS += -DBUILD_CTL=ON > +else > +DROGON_CONF_OPTS += -DBUILD_CTL=OFF > +endif > + > +ifeq ($(BR2_PACKAGE_DROGON_EXAMPLES),y) > +DROGON_CONF_OPTS += -DBUILD_EXAMPLES=ON > +else > +DROGON_CONF_OPTS += -DBUILD_EXMPLES=OFF > +endif > + > +ifeq ($(BR2_PACKAGE_DROGON_ORM),y) > +DROGON_CONF_OPTS += -DBUILD_ORM=ON > +else > +DROGON_CONF_OPTS += -DBUILD_ORM=OFF > +endif > + > +ifeq ($(BR2_PACKAGE_DROGON_YAML_CONFIG),y) > +DROGON_DEPENDENCIES += yaml-cpp > +DROGON_CONF_OPTS += -DBUILD_YAML_CONFIG=ON > +else > +DROGON_CONF_OPTS += -DBUILD_YAML_CONFIG=OFF > +endif > + > +$(eval $(cmake-package)) > +$(eval $(host-cmake-package)) > -- > 2.43.0 > A gentle ping on this series, as it has been pending for a while now. Could someone please kindly take a look and provide a review? Thanks and regards, Dario
diff --git a/DEVELOPERS b/DEVELOPERS index f448c3b5820c..70ea6f8e023f 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -815,6 +815,7 @@ F: package/babeld/ F: package/bc/ F: package/cmocka/ F: package/connman/ +F: package/drogon/ F: package/empty/ F: package/iana-assignments/ F: package/inih/ diff --git a/package/Config.in b/package/Config.in index 2b9e31ebb30d..998042ed2610 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1979,6 +1979,7 @@ menu "Networking" source "package/davici/Config.in" source "package/dht/Config.in" source "package/dpdk/Config.in" + source "package/drogon/Config.in" source "package/enet/Config.in" source "package/filemq/Config.in" source "package/fmlib/Config.in" diff --git a/package/drogon/0001-Fix-cross-compiling-2389.patch b/package/drogon/0001-Fix-cross-compiling-2389.patch new file mode 100644 index 000000000000..f6df0a435006 --- /dev/null +++ b/package/drogon/0001-Fix-cross-compiling-2389.patch @@ -0,0 +1,76 @@ +From 06508006812881c91eebd80307aa465d5abd0e55 Mon Sep 17 00:00:00 2001 +From: Dario Binacchi <45538935+passgat@users.noreply.github.com> +Date: Wed, 24 Sep 2025 09:21:12 +0200 +Subject: [PATCH] Fix cross compiling (#2389) + +Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> +Upstream: https://github.com/drogonframework/drogon/commit/06508006812881c91eebd80307aa465d5abd0e55 +--- + CMakeLists.txt | 9 +++++++++ + drogon_ctl/CMakeLists.txt | 3 ++- + examples/CMakeLists.txt | 8 ++++++++ + 3 files changed, 19 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9cbc6d732a33..7cf091e90ef7 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -524,6 +524,15 @@ if (BUILD_EXAMPLES) + endif (BUILD_EXAMPLES) + + if (BUILD_CTL) ++ if (CMAKE_CROSSCOMPILING) ++ find_program(HOST_DROGON_CTL _drogon_ctl) ++ if (NOT HOST_DROGON_CTL) ++ message(FATAL_ERROR "_drogon_ctl not found on host system") ++ endif() ++ set(DROGON_CTL "${HOST_DROGON_CTL}") ++ else (CMAKE_CROSSCOMPILING) ++ set(DROGON_CTL "$<TARGET_FILE:_drogon_ctl>") ++ endif (CMAKE_CROSSCOMPILING) + add_subdirectory(drogon_ctl) + endif (BUILD_CTL) + +diff --git a/drogon_ctl/CMakeLists.txt b/drogon_ctl/CMakeLists.txt +index 04b790d3741b..f6b12bddab60 100755 +--- a/drogon_ctl/CMakeLists.txt ++++ b/drogon_ctl/CMakeLists.txt +@@ -43,7 +43,7 @@ foreach(cspFile ${SCP_LIST}) + get_filename_component(classname ${cspFile} NAME_WE) + message(STATUS "view classname:" ${classname}) + add_custom_command(OUTPUT ${classname}.h ${classname}.cc +- COMMAND $<TARGET_FILE:_drogon_ctl> ++ COMMAND ${DROGON_CTL} + ARGS + create + view +@@ -63,6 +63,7 @@ if(APPLE) + target_link_libraries(drogon_ctl PRIVATE resolv) + endif() + message(STATUS "bin:" ${INSTALL_BIN_DIR}) ++install(TARGETS _drogon_ctl RUNTIME DESTINATION ${INSTALL_BIN_DIR}) + install(TARGETS drogon_ctl RUNTIME DESTINATION ${INSTALL_BIN_DIR}) + if(WIN32) + set(CTL_FILE $<TARGET_FILE:drogon_ctl>) +diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt +index dca122f424ba..61e65d8323aa 100755 +--- a/examples/CMakeLists.txt ++++ b/examples/CMakeLists.txt +@@ -50,6 +50,14 @@ set(example_targets + async_stream + cors) + ++foreach(target ${example_targets}) ++ set_target_properties(${target} PROPERTIES ++ RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) ++endforeach() ++ ++install(TARGETS ${example_targets} ++ RUNTIME DESTINATION ${INSTALL_BIN_DIR}) ++ + # Add warnings for our example targets--some warnings (such as -Wunused-parameter) only appear + # when the templated functions are instantiated at their point of use. + if(NOT ${CMAKE_PLATFORM_NAME} STREQUAL "Windows" AND CMAKE_CXX_COMPILER_ID MATCHES GNU) +-- +2.43.0 + diff --git a/package/drogon/0002-Fix-building-error-for-Werror-unused-value.patch b/package/drogon/0002-Fix-building-error-for-Werror-unused-value.patch new file mode 100644 index 000000000000..16c6ba6b4217 --- /dev/null +++ b/package/drogon/0002-Fix-building-error-for-Werror-unused-value.patch @@ -0,0 +1,42 @@ +From 7134f2f8e07b89450dd2407e7a21a7b9cea6b192 Mon Sep 17 00:00:00 2001 +From: Dario Binacchi <dario.binacchi@amarulasolutions.com> +Date: Sat, 8 Nov 2025 19:39:01 +0100 +Subject: [PATCH] Fix building error for -Werror=unused-value +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Compiling trantor in Buildroot raises the following error: + +In file included from output/host/include/openssl/ssl.h:30, + from output/build/host-drogon-v1.9.11/trantor/trantor/net/inner/tlsprovider/OpenSSLProvider.cc:6: +build/host-drogon-v1.9.11/trantor/trantor/net/inner/tlsprovider/OpenSSLProvider.cc: In member function ‘ssize_t OpenSSLProvider::sendTLSData()’: +output/host/include/openssl/bio.h:629:34: error: value computed is not used [-Werror=unused-value] + 629 | # define BIO_reset(b) (int)BIO_ctrl(b,BIO_CTRL_RESET,0,NULL) + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +output/build/host-drogon-v1.9.11/trantor/trantor/net/inner/tlsprovider/OpenSSLProvider.cc:777:9: note: in expansion of macro ‘BIO_reset’ + 777 | BIO_reset(wbio_); + | ^~~~~~~~~ + +Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> +Upstream: https://github.com/an-tao/trantor/commit/5714e8f68d3016c9a6a5abd23c627cf5d98eab81 +--- + trantor/trantor/net/inner/tlsprovider/OpenSSLProvider.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/trantor/trantor/net/inner/tlsprovider/OpenSSLProvider.cc b/trantor/trantor/net/inner/tlsprovider/OpenSSLProvider.cc +index f91e9cde75bd..787cbc405436 100644 +--- a/trantor/trantor/net/inner/tlsprovider/OpenSSLProvider.cc ++++ b/trantor/trantor/net/inner/tlsprovider/OpenSSLProvider.cc +@@ -774,7 +774,7 @@ struct OpenSSLProvider : public TLSProvider, public NonCopyable + { + appendToWriteBuffer((char *)data + n, len - n); + } +- BIO_reset(wbio_); ++ (void)BIO_reset(wbio_); + if (n < 0) + return -1; + return len; +-- +2.43.0 + diff --git a/package/drogon/Config.in b/package/drogon/Config.in new file mode 100644 index 000000000000..d5b03cf61767 --- /dev/null +++ b/package/drogon/Config.in @@ -0,0 +1,50 @@ +config BR2_PACKAGE_DROGON + bool "drogon" + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_11 # C++17/20 + depends on BR2_TOOLCHAIN_HAS_THREADS + select BR2_PACKAGE_JSONCPP + select BR2_PACKAGE_UTIL_LINUX + select BR2_PACKAGE_UTIL_LINUX_LIBUUID + select BR2_PACKAGE_ZLIB + help + Drogon is a C++17/20 based HTTP application framework. + Drogon can be used to easily build various types of web + application server programs using C++. + + https://github.com/drogonframework/drogon + +if BR2_PACKAGE_DROGON + +config BR2_PACKAGE_DROGON_BROTLI + bool "build Brotli" + select BR2_PACKAGE_BROTLI + help + Add support for brotli compression. + +config BR2_PACKAGE_DROGON_CTL + bool "build drogon_ctl" + help + drogon_ctl is a command-line tool used to generate + project skeletons and source code. + +config BR2_PACKAGE_DROGON_EXAMPLES + bool "build examples" + +config BR2_PACKAGE_DROGON_ORM + bool "build orm" + help + Enable the ORM module for typed database access. + +config BR2_PACKAGE_DROGON_YAML_CONFIG + bool "build yaml config" + select BR2_PACKAGE_YAML_CPP + help + Add support for YAML configuration via yaml-cpp. + +endif + +comment "drogon needs a toolchain w/ C++, threads, gcc >= 11" + depends on !BR2_INSTALL_LIBSTDCPP || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_11 || \ + !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/drogon/drogon.mk b/package/drogon/drogon.mk new file mode 100644 index 000000000000..06354280db07 --- /dev/null +++ b/package/drogon/drogon.mk @@ -0,0 +1,63 @@ +################################################################################ +# +# drogon +# +################################################################################ + +DROGON_VERSION = v1.9.11 +DROGON_SITE = https://github.com/drogonframework/drogon +DROGON_SITE_METHOD = git +DROGON_GIT_SUBMODULES = YES +DROGON_LICENSE = MIT +DROGON_LICENSE_FILES = LICENSE +DROGON_INSTALL_STAGING = YES + +DROGON_DEPENDENCIES = jsoncpp util-linux zlib +HOST_DROGON_DEPENDENCIES = host-jsoncpp host-util-linux host-zlib + +DROGON_CONF_OPTS = \ + -DBUILD_TESTS=OFF + +HOST_DROGON_CONF_OPTS = \ + -DBUILD_CTL=ON \ + -DBUILD_EXAMPLES=OFF \ + -DBUILD_TESTS=OFF + +ifeq ($(BR2_PACKAGE_DROGON_BROTLI),y) +DROGON_DEPENDENCIES += brotli +DROGON_CONF_OPTS += -DBUILD_BROTLI=ON +else +DROGON_CONF_OPTS += -DBUILD_BROTLI=OFF +endif + +ifeq ($(BR2_PACKAGE_DROGON_CTL),y) +# When we have drogon_ctl for the target, we need to build the +# _drogon_ctl tool with host-drogon support so that it can be +# run during the building process +DROGON_DEPENDENCIES += host-drogon +DROGON_CONF_OPTS += -DBUILD_CTL=ON +else +DROGON_CONF_OPTS += -DBUILD_CTL=OFF +endif + +ifeq ($(BR2_PACKAGE_DROGON_EXAMPLES),y) +DROGON_CONF_OPTS += -DBUILD_EXAMPLES=ON +else +DROGON_CONF_OPTS += -DBUILD_EXMPLES=OFF +endif + +ifeq ($(BR2_PACKAGE_DROGON_ORM),y) +DROGON_CONF_OPTS += -DBUILD_ORM=ON +else +DROGON_CONF_OPTS += -DBUILD_ORM=OFF +endif + +ifeq ($(BR2_PACKAGE_DROGON_YAML_CONFIG),y) +DROGON_DEPENDENCIES += yaml-cpp +DROGON_CONF_OPTS += -DBUILD_YAML_CONFIG=ON +else +DROGON_CONF_OPTS += -DBUILD_YAML_CONFIG=OFF +endif + +$(eval $(cmake-package)) +$(eval $(host-cmake-package))
Drogon is a C++17/20 based HTTP application framework. It can be used to easily build various types of web application server programs using C++. Project page: https://github.com/drogonframework/drogon Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> --- Changes v2 -> v3: - The PRs related to the patches have all been merged. The first PR was merged by combining the three patches into a single one. Replace all Upstream: links with the link to the final commit. - Add help text to the added KConfig options. - Select external libraries for BROTLI and YAML_CONFIG options. - Drop the host configurations. Files too. - Always add -DBUILD_CTL=ON to HOST_DROGON_CONF_OPTS (together with -DBUILD_TESTS=OFF and -DBUILD_EXAMPLES=OFF). Changes v1 -> v2: - Drop BR2_ARCH_IS_64 dependency. It has been tested on imx6ull platform. - Add DROGON_INSTALL_STAGING - Add 0004-Fix-building-error-for-Werror-unused-value.patch for trantor submodule. DEVELOPERS | 1 + package/Config.in | 1 + .../0001-Fix-cross-compiling-2389.patch | 76 +++++++++++++++++++ ...ilding-error-for-Werror-unused-value.patch | 42 ++++++++++ package/drogon/Config.in | 50 ++++++++++++ package/drogon/drogon.mk | 63 +++++++++++++++ 6 files changed, 233 insertions(+) create mode 100644 package/drogon/0001-Fix-cross-compiling-2389.patch create mode 100644 package/drogon/0002-Fix-building-error-for-Werror-unused-value.patch create mode 100644 package/drogon/Config.in create mode 100644 package/drogon/drogon.mk