c7cb07f092
GitOrigin-RevId: 1536926ef5621b09bba54035ae2bb6d806d72ac8
102 lines
2.4 KiB
Nix
102 lines
2.4 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
fetchpatch,
|
|
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.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "Stiffstream";
|
|
repo = "restinio";
|
|
rev = "v.${finalAttrs.version}";
|
|
hash = "sha256-XodG+dVW4iBgFx0Aq0+/pZyCLyqTBtW7e9r69y176Ro=";
|
|
};
|
|
|
|
patches = let
|
|
useCommit = {id, name, hash}:
|
|
fetchpatch {
|
|
inherit name hash;
|
|
url = "https://github.com/Stiffstream/restinio/commit/${id}.patch";
|
|
};
|
|
in [
|
|
(useCommit {
|
|
id = "57e6ae3f73a03a5120feb80a7bb5dca27179fa38";
|
|
name = "restinio-unvendor-catch2_part1.patch";
|
|
hash = "sha256-2Htt9WTP6nrh+1y7y2xleFj568IpnSEn9Qhb1ObLam8=";
|
|
})
|
|
(useCommit {
|
|
id = "0060e493b99f03c38dda519763f6d6701bc18112";
|
|
name = "restinio-unvendor-catch2_part2.patch";
|
|
hash = "sha256-Eg/VNxPwNtEYmalP5myn+QvqwU6wln9v0vxbRelRHA8=";
|
|
})
|
|
(useCommit {
|
|
id = "05bea25f82917602a49b72b8ea10eeb43984762f";
|
|
name = "restinio-unvendor-catch2_part3.patch";
|
|
hash = "sha256-fA+U/Y7FyrxDRiWSVXCy9dMF4gmfDLag7gBWoY74In0=";
|
|
})
|
|
];
|
|
|
|
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";
|
|
license = licenses.bsd3;
|
|
platforms = platforms.all;
|
|
maintainers = with maintainers; [ tobim ];
|
|
};
|
|
})
|