diff options
Diffstat (limited to 'pkgs/development/tools/ocaml/dune/3.nix')
-rw-r--r-- | pkgs/development/tools/ocaml/dune/3.nix | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/pkgs/development/tools/ocaml/dune/3.nix b/pkgs/development/tools/ocaml/dune/3.nix new file mode 100644 index 00000000000..59ea9c43512 --- /dev/null +++ b/pkgs/development/tools/ocaml/dune/3.nix @@ -0,0 +1,40 @@ +{ lib, stdenv, fetchurl, ocaml, findlib, darwin }: + +if lib.versionOlder ocaml.version "4.08" +then throw "dune 3 is not available for OCaml ${ocaml.version}" +else + +stdenv.mkDerivation rec { + pname = "dune"; + version = "3.0.2"; + + src = fetchurl { + url = "https://github.com/ocaml/dune/releases/download/${version}/fiber-${version}.tbz"; + sha256 = "sha256-o108qIeWMOX0VU/wWdc5bg/UDCT2CCcw/Xx3nFiDbes="; + }; + + nativeBuildInputs = [ ocaml findlib ]; + + buildInputs = lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.Foundation + ]; + + strictDeps = true; + + buildFlags = "release"; + + dontAddPrefix = true; + dontAddStaticConfigureFlags = true; + configurePlatforms = []; + + installFlags = [ "PREFIX=${placeholder "out"}" "LIBDIR=$(OCAMLFIND_DESTDIR)" ]; + + meta = { + homepage = "https://dune.build/"; + description = "A composable build system"; + changelog = "https://github.com/ocaml/dune/raw/${version}/CHANGES.md"; + maintainers = [ lib.maintainers.vbgl lib.maintainers.marsam ]; + license = lib.licenses.mit; + inherit (ocaml.meta) platforms; + }; +} |