dev-cpp/drogon: New package.

C++14/17 based HTTP web application framework

Signed-off-by: Ronny (tastytea) Gutbrod <gentoo@tastytea.de>
This commit is contained in:
Ronny (tastytea) Gutbrod
2021-08-16 23:02:34 +02:00
parent 1704eb3345
commit adce6ec38a
4 changed files with 115 additions and 0 deletions

1
dev-cpp/drogon/Manifest Normal file
View File

@@ -0,0 +1 @@
DIST drogon-1.7.1.tar.gz 465299 BLAKE2B 72ddcc050333f6ff8d0749c3de5a4db80cf5f36613253d90abcbf8983aa53db44a6a4e71b73cc42c0596684b7a56a1cb69faa348652c0fc673e6be7d3ad383b3 SHA512 8a7cb8aa87cc48b130a5b47558b3c9e2a0af13cd8b76681e42d14a366dac75c88e389f2e2fe03b4f0f1e0e31971a47eee2bf5df8fcb4b79f8ed00d2a592315b6

View File

@@ -0,0 +1,64 @@
# Copyright 2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit cmake
DESCRIPTION="C++14/17 based HTTP web application framework"
HOMEPAGE="https://github.com/drogonframework/drogon"
SRC_URI="https://github.com/drogonframework/drogon/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+brotli examples mariadb postgres redis sqlite +ssl test"
RESTRICT="!test? ( test )"
RDEPEND="
dev-cpp/trantor
dev-libs/jsoncpp
sys-libs/zlib
brotli? ( app-arch/brotli )
mariadb? ( dev-db/mariadb:= )
postgres? ( dev-db/postgresql:= )
redis? ( dev-libs/hiredis )
sqlite? ( dev-db/sqlite )
ssl? ( dev-libs/openssl )
"
DEPEND="
${RDEPEND}
test? ( dev-cpp/gtest )
"
PATCHES=( "${FILESDIR}/${PN}-1.7.1_GNUInstallDirs.patch" )
DOCS=( CONTRIBUTING.md ChangeLog.md README.md README.zh-CN.md README.zh-TW.md )
src_prepare() {
sed -i '/add_subdirectory(trantor)/d' CMakeLists.txt || die
sed -i '/${PROJECT_SOURCE_DIR}\/trantor\/trantor\/tests\/server.pem/d' \
lib/tests/CMakeLists.txt || die
use brotli || sed -i '/find_package(Brotli)/d' CMakeLists.txt || die
use ssl || sed -i '/find_package(OpenSSL)/d' CMakeLists.txt || die
use examples && DOCS+=( "${S}/examples" )
cmake_src_prepare
}
src_configure() {
# NOTE: Next version has BUILD_DOC switch.
local -a mycmakeargs=(
"-DBUILD_EXAMPLES=NO"
"-DBUILD_DROGON_SHARED=YES"
"-DBUILD_POSTGRESQL=$(usex postgres)"
"-DBUILD_MYSQL=$(usex mariadb)"
"-DBUILD_SQLITE=$(usex sqlite)"
"-DBUILD_REDIS=$(usex redis)"
"-DBUILD_TESTING=$(usex test)"
)
cmake_src_configure
}

View File

@@ -0,0 +1,33 @@
From 318327104fa444f764caccc9ad7ae40ae3452ea9 Mon Sep 17 00:00:00 2001
From: tastytea <tastytea@tastytea.de>
Date: Mon, 16 Aug 2021 22:19:46 +0200
Subject: [PATCH] cmake: Use GNUInstallDirs to figure out install dirs.
---
CMakeLists.txt | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 821cf09..9634bfc 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -33,11 +33,12 @@ set(DROGON_VERSION
${DROGON_MAJOR_VERSION}.${DROGON_MINOR_VERSION}.${DROGON_PATCH_VERSION})
set(DROGON_VERSION_STRING "${DROGON_VERSION}")
+include(GNUInstallDirs)
# Offer the user the choice of overriding the installation directories
-set(INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries")
-set(INSTALL_BIN_DIR bin CACHE PATH "Installation directory for executables")
-set(INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files")
-set(DEF_INSTALL_DROGON_CMAKE_DIR lib/cmake/Drogon)
+set(INSTALL_LIB_DIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Installation directory for libraries")
+set(INSTALL_BIN_DIR ${CMAKE_INSTALL_BINDIR} CACHE PATH "Installation directory for executables")
+set(INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH "Installation directory for header files")
+set(DEF_INSTALL_DROGON_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/Drogon)
set(INSTALL_DROGON_CMAKE_DIR ${DEF_INSTALL_DROGON_CMAKE_DIR}
CACHE PATH "Installation directory for cmake files")
--
2.31.1

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>gentoo@tastytea.de</email>
<name>Ronny (tastytea) Gutbrod</name>
</maintainer>
<upstream>
<doc>https://drogon.docsforge.com/</doc>
</upstream>
<use>
<flag name="brotli">Enable support for brotli compression</flag>
<flag name="mariadb">Add support for the mariadb database</flag>
<flag name="redis">Add support for the Redis database via
dev-libs/hiredis</flag>
</use>
</pkgmetadata>