depot/third_party/nixpkgs/pkgs/development/ocaml-modules/eio/default.nix
Default email c7cb07f092 Project import generated by Copybara.
GitOrigin-RevId: 1536926ef5621b09bba54035ae2bb6d806d72ac8
2024-02-29 21:09:43 +01:00

72 lines
1.4 KiB
Nix

{ lib
, ocaml
, version ? if lib.versionAtLeast ocaml.version "5.1" then "0.15" else "0.12"
, buildDunePackage
, bigstringaf
, cstruct
, domain-local-await
, dune-configurator
, fetchurl
, fmt
, hmap
, lwt-dllist
, mtime
, optint
, psq
, alcotest
, crowbar
, mdx
}:
let
param = {
"0.12" = {
minimalOCamlVersion = "5.0";
hash = "sha256-2EhHzoX/t4ZBSWrSS+PGq1zCxohc7a1q4lfsrFnZJqA=";
};
"0.15" = {
minimalOCamlVersion = "5.1";
hash = "sha256-gH7O8zfdqEmwXT29F6ko5vXGNudusV4iE2Z8kRJ3GKc=";
};
}."${version}";
in
buildDunePackage rec {
pname = "eio";
inherit version;
inherit (param) minimalOCamlVersion;
src = fetchurl {
url = "https://github.com/ocaml-multicore/${pname}/releases/download/v${version}/${pname}-${version}.tbz";
inherit (param) hash;
};
propagatedBuildInputs = [
bigstringaf
cstruct
domain-local-await
fmt
hmap
lwt-dllist
mtime
optint
psq
];
checkInputs = [
alcotest
crowbar
mdx
];
nativeCheckInputs = [
mdx.bin
];
meta = {
homepage = "https://github.com/ocaml-multicore/ocaml-${pname}";
changelog = "https://github.com/ocaml-multicore/ocaml-${pname}/raw/v${version}/CHANGES.md";
description = "Effects-Based Parallel IO for OCaml";
license = with lib.licenses; [ isc ];
maintainers = with lib.maintainers; [ toastal ];
};
}