From patchwork Fri Jan 2 18:24:37 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 4407 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 361CF40D16 for ; Fri, 2 Jan 2026 19:24:59 +0100 (CET) Received: by mail-ed1-f71.google.com with SMTP id 4fb4d7f45d1cf-64981bd02a4sf10805468a12.0 for ; Fri, 02 Jan 2026 10:24:59 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1767378299; cv=pass; d=google.com; s=arc-20240605; b=LL1j/NGckMmz7wYH8NAHbnIB9aJ8350fYox8Ssz70gWM1M/hKnZapBvoOKM2jktWBg HXYB/ww0/4FPJVIQ/s61l/f3Q29R0b89DVONesaXycXvpZy7dxHQKD10g+CWdioywT9r TF0jxJPqxXGeRdsl43xAPCL2wv4IcaL5uNgqdlrXH7UOAk29LwGtA0eoNVZ6QclLDai2 ygTRhXjYRxDO65Y55ZChnJyP6QTKGoCpyvUeKGc+GPWr2HTAb5tzothPIpoEOz9GwfW2 tZPnPJ/jeObRU36jUwsBi4HvtSDpylXT1CTrcxPXZ1EFpMAJ3PeiyIrznSkudLMqxHJK PXMg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=PDxA1PJ5xLOjxqPWx6+ep3R/9yxqZFA3qNRES5++m1k=; fh=LMzHlDbb9bjDc/JrudZRtjoug0IBDTEt7p1odSr+5j4=; b=bkPc2DAxctK60YaZ9Y9VXNUlR/8J3nszMIpVTJfOyvqmJ56iNoP8Zir0n48LKKITQ6 g0Hu6krZ9rnEmQozXlzPo+MKeKrjXHSI9ZqQnFu9elTaP9MxEobaNw68ev0Cb4yQ0YFV c/gSYUvk7MUNDn1LpxyXIjkzuoC9eLpeoM99MPkcJk5XX5o1/VyWVsulbCqNofRVtXRo +DR52PI/VtLl9RuLAcnBqByZ9i2TJLDKLI919reW/6uwvErP/vFoPTGES65oGNc3DAjp o5ZipJrNB/YZFk/JjxZcz8R3tD8lIUsRax30qXBB1f/7rjtkb5EhlDqGx1qs9uJYLnz2 gG2g==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=NDTYf082; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1767378299; x=1767983099; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=PDxA1PJ5xLOjxqPWx6+ep3R/9yxqZFA3qNRES5++m1k=; b=VloG9NJetJoNTD9o0qOj/Vi2gRGpKQhnI+TtYR6UIr2s9bA86aTq+CoxcNiwuOKsOi ABrA5ItBidhsx5gMXJZ5gbV6u6NpW557q14rO0I9Hkdxv7H5GpnFbTGr6o9Axe9p3Kl0 Dk6QnnZwHelhBlztfhey2PeHPBiFFRdJQVGe4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767378299; x=1767983099; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-beenthere :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=PDxA1PJ5xLOjxqPWx6+ep3R/9yxqZFA3qNRES5++m1k=; b=SnwpHWRvRh4y7r+OVGSpwVvtMVbVWAr9GLS4eZCXwtIobH3BNM7hwNqSariS390pys ZZpFuPyJ+Kx7NGIO/GCUIdxF8Iw771ZrUAWmU1EfJ38NPUUxLwoliBznDbsi21RhbAZP SS83F38u0PvWC/pn9TO/y1KoaHzArulIgchIPO/gw+z0I5BNycOZ1mM0PhKzDaAQ6MIa OBdoq1ijg280CGafVxRCoepi5v48fpKxEMxiSAUkFJ1Xskq9ZUhj8sGrbo2viJSs41v8 ik2YTG9p6Xja8lnRbkqh9dElBOkWR/k8Uf5dwdxnAKBNVtlySf6MS/GPWV3ZDkfG0UVd 99Sw== X-Forwarded-Encrypted: i=2; AJvYcCXKFb/ES8gmIfpzKgx31D9DYgxuXW+O1QeA+EdqApUO/dVE2VpDKq7Myo5fiDp8bEMvbulhrmfyH4+eGWkg@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0Yy49+L2Olw9xQjO55qYZqy49h1AdbjJBWJwGsA6wpbfeQcRGtOz +t8JIL8TrOCSKpTMosr1QnGBusNQ4Z3zRbjFYGIlV3vKCU6upAyL74TYSoFDtc8sqHjD8g== X-Google-Smtp-Source: AGHT+IGa08i9VYi6cAVUuFMzWzcBhD8clfxTC+sHDSNGPfQpPYZxfRoD8JZOovdmvKCJqTOUFz7TKw== X-Received: by 2002:a05:6402:518e:b0:64d:65d:2315 with SMTP id 4fb4d7f45d1cf-64d065d406cmr41899087a12.30.1767378298796; Fri, 02 Jan 2026 10:24:58 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com; h="AWVwgWb0qbCftUjQYRo1404ImqFIXqP0LB10Sf5Xrr+d0HnS4A==" Received: by 2002:a50:ec94:0:b0:641:5a07:215b with SMTP id 4fb4d7f45d1cf-64b566018e5ls6997237a12.2.-pod-prod-06-eu; Fri, 02 Jan 2026 10:24:57 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWFEeI0XjWMNqyFOoiNzunH2104vGQ2oFciQSHGBesvdaa0wOJBPXa5Dx75qq2O6NJr82IuKlrSqlISNimX@amarulasolutions.com X-Received: by 2002:a05:6402:3550:b0:64b:62f7:c897 with SMTP id 4fb4d7f45d1cf-64b8e93ba78mr41520671a12.5.1767378296640; Fri, 02 Jan 2026 10:24:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1767378296; cv=none; d=google.com; s=arc-20240605; b=U0ceXjFm/hFpNfcy/d8FvLIdyR7gx3TUocZ08AcZq7e2rt5HMVOQjaN9QvyT6vqSeB Z3wclFGM+VTWDMvRF4Otz52e/BRXGvi9SpCMen3wJkpkmKJmJQjzOtaJdJRKTHoo/ier hIscKUaaLNJv4toSYVwbv0FG0nqtjUn/4nSywlbwGRZ7NuNX4u2B4HMJyC4S71mNY9gJ sKh0x4zVTdMXSHl2YF9iVNZXnJL1zmxQB3qeT3+u5nXHDWV4sbVdpzay24cKECqRzx/v 3/MQsEfWJQhfTtbbQDjOIXFIlM3r2vXhEafISaU7JykFxCifuwHPtvUaDeP6IbC4PKyk wCdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=ER08Grti4iNf+mAUG5yNohFHbFVlpvtvnZkBed1Nym0=; fh=P3XDQgAxAs6+f16MJDT4OtrKA0s9f99DBJPPYegWBj4=; b=jfdwbaKth77CpWHb5SfI47Y05rp8c6IWqFhNNUD7LIsFMt+JvrJFxhOP9W0z70g5ge T5+phFUNRmbPBYTb6EEIiheGNDGJuZpteZ2nekLMSoX0aNfwpbDcQez80KXOi/MfEZTD CR7AGnCsYaZ7jR9DaBbNPWn256gBhuK0Nq28rMnjQj2pRFw0ba5wgmsG9V7HRc1SOT6O /xi0vphbW08k43DAttMBOEwrOs6eAJoNlnacWy9+KcoU9SH+tzDmytF/rc1fswMXjAHR iFNtXyisJFALAP6WAhwKtUnf2MCyaCakIYHfE1w3IlArrccf3ScVhMOyuHeI1TLU1cIT 0S/w==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=NDTYf082; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id 4fb4d7f45d1cf-64b585ba5f8sor10048557a12.3.2026.01.02.10.24.56 for (Google Transport Security); Fri, 02 Jan 2026 10:24:56 -0800 (PST) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Forwarded-Encrypted: i=1; AJvYcCXufP33hsE4T43OYCo4DY7CJLzLM1+3bwlf1c8P+c64BGy5ucMfYJ1EKSdg0bkpAh1PbZ2Py8JJ3g447QU0@amarulasolutions.com X-Gm-Gg: AY/fxX7bNDm0DYSCCzFZO1Momia4oXpB82XvzV9ceiYrivavOKOtW1IgOE99dKlEIZK t2xqdznO5jkKnOIlsMJpDzBZQv2B3PdeMczznQiQLvzQtFQPY7Owke9G5Q4RdycKRP/JjK5o/GG rC03XvvPDKrMqdI7T2egIo5q4TX5EyLV+Xf7uq+VhU+pAOUuAwey1F7hRTfkflKZo3cXLMJwAKF mbrFh18D3wBx/Vb95/gt9EmQ3nQ9hfqKpM9agBYkvu8ebVxKsHVuYDVxk7Ud5NZY975Yj6k+FGY j2YwmxVuzFv4t83vjqRIDvevcM7lXb9mNynZ6KQVreLSd4S/+V0hX9aqYNzNo9FG0NnpeXi5+qM Qiq7DSBtQexRDj64OA9KpVXM8I5Cx0HQffyVSZZ44i4RQp6d5Zxl2oGMqLbn8t17c5Rc9zbrvpU +cLJ5fZk10MmJxqppr4WzW7ljbxp/L50vbpkNtJcKZL4sBTH5/3gJCphmkommcE1BJqAzdZWRVz chRaGLtejmYDGeYroQz4yWCM7gC5OQzaN8QS3jtix9gZTDrhlKjbjqNvmL+vbn/sLlbFCO3WKTc NtiVkfFU9Xo= X-Received: by 2002:a05:6402:34c6:b0:64b:a1e6:7fed with SMTP id 4fb4d7f45d1cf-64ba1e682a1mr40416824a12.8.1767378295343; Fri, 02 Jan 2026 10:24:55 -0800 (PST) Received: from dario-ThinkPad-P14s-Gen-5.homenet.telecomitalia.it (host-95-248-31-95.retail.telecomitalia.it. [95.248.31.95]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-64b90f53c51sm45296375a12.3.2026.01.02.10.24.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Jan 2026 10:24:54 -0800 (PST) From: Dario Binacchi To: buildroot@buildroot.org Cc: Bernd Kuhls , Dario Binacchi , Eric Le Bihan , Thomas Petazzoni , linux-amarula@amarulasolutions.com Subject: [PATCH v3 2/2] package/drogon: new package Date: Fri, 2 Jan 2026 19:24:37 +0100 Message-ID: <20260102182445.365668-2-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260102182445.365668-1-dario.binacchi@amarulasolutions.com> References: <20260102182445.365668-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" X-Original-Sender: dario.binacchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=NDTYf082; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , 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 --- 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 +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 "$") ++ 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 $ ++ 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 $) +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 +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 +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))