85 lines
1.8 KiB
Nix
85 lines
1.8 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
cmake,
|
|
asio,
|
|
boost,
|
|
expected-lite,
|
|
fmt,
|
|
llhttp,
|
|
openssl,
|
|
pcre2,
|
|
zlib,
|
|
catch2_3,
|
|
# Build with the asio library bundled in boost instead of the standalone asio package.
|
|
with_boost_asio ? false,
|
|
}:
|
|
|
|
assert with_boost_asio -> boost != null;
|
|
assert !with_boost_asio -> asio != null;
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "restinio";
|
|
version = "0.7.3";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "Stiffstream";
|
|
repo = "restinio";
|
|
rev = "v.${finalAttrs.version}";
|
|
hash = "sha256-heVdo0MtsWi/r9yse+/FZ55lhiunyEdwB3UkOOY5Vj0=";
|
|
};
|
|
|
|
strictDeps = true;
|
|
|
|
nativeBuildInputs = [ cmake ];
|
|
|
|
propagatedBuildInputs =
|
|
[
|
|
expected-lite
|
|
fmt
|
|
llhttp
|
|
openssl
|
|
pcre2
|
|
zlib
|
|
]
|
|
++ (
|
|
if with_boost_asio then
|
|
[
|
|
boost
|
|
]
|
|
else
|
|
[
|
|
asio
|
|
]
|
|
);
|
|
|
|
checkInputs = [
|
|
catch2_3
|
|
];
|
|
|
|
cmakeDir = "../dev";
|
|
cmakeFlags = [
|
|
"-DRESTINIO_TEST=ON"
|
|
"-DRESTINIO_SAMPLE=OFF"
|
|
"-DRESTINIO_BENCHMARK=OFF"
|
|
"-DRESTINIO_WITH_SOBJECTIZER=OFF"
|
|
"-DRESTINIO_ASIO_SOURCE=${if with_boost_asio then "boost" else "standalone"}"
|
|
"-DRESTINIO_DEP_EXPECTED_LITE=find"
|
|
"-DRESTINIO_DEP_FMT=find"
|
|
"-DRESTINIO_DEP_LLHTTP=find"
|
|
"-DRESTINIO_DEP_CATCH2=find"
|
|
];
|
|
|
|
doCheck = true;
|
|
enableParallelChecking = false;
|
|
|
|
meta = with lib; {
|
|
description = "Cross-platform, efficient, customizable, and robust asynchronous HTTP(S)/WebSocket server C++ library";
|
|
homepage = "https://github.com/Stiffstream/restinio";
|
|
changelog = "https://github.com/Stiffstream/restinio/releases/tag/${finalAttrs.src.rev}";
|
|
license = licenses.bsd3;
|
|
platforms = platforms.all;
|
|
maintainers = with maintainers; [ tobim ];
|
|
};
|
|
})
|