diff --git a/pkgs/development/ocaml-modules/containers/default.nix b/pkgs/development/ocaml-modules/containers/default.nix new file mode 100644 index 00000000000..5c2447614ad --- /dev/null +++ b/pkgs/development/ocaml-modules/containers/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchFromGitHub, ocaml, findlib, cppo, gen, sequence, qtest, ounit }: + +let version = "0.15"; in + +stdenv.mkDerivation { + name = "ocaml-containers-${version}"; + + src = fetchFromGitHub { + owner = "c-cube"; + repo = "ocaml-containers"; + rev = "${version}"; + sha256 = "13mdl8jp4ymg1wip7lqmh4224x4jnji3frm1ik55vvm3ac8caqng"; + }; + + buildInputs = [ ocaml findlib cppo gen sequence qtest ounit ]; + + configureFlags = [ + "--enable-unix" + "--enable-thread" + "--enable-bigarray" + "--enable-advanced" + "--enable-tests" + "--disable-bench" + ]; + + doCheck = true; + checkTarget = "test"; + + createFindlibDestdir = true; + + meta = { + homepage = https://github.com/c-cube/ocaml-containers; + description = "A modular standard library focused on data structures"; + longDescription = '' + Containers is a standard library (BSD license) focused on data structures, + combinators and iterators, without dependencies on unix. Every module is + independent and is prefixed with 'CC' in the global namespace. Some modules + extend the stdlib (e.g. CCList provides safe map/fold_right/append, and + additional functions on lists). + + It also features optional libraries for dealing with strings, and + helpers for unix and threads. + ''; + license = stdenv.lib.licenses.bsd2; + platforms = ocaml.meta.platforms; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c58df29cad0..a761d7bfaea 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4637,6 +4637,8 @@ let config-file = callPackage ../development/ocaml-modules/config-file { }; + containers = callPackage ../development/ocaml-modules/containers { }; + cpdf = callPackage ../development/ocaml-modules/cpdf { }; cppo = callPackage ../development/tools/ocaml/cppo { };