buildDunePackage: new support function; use it to refactor some OCaml derivations
This commit is contained in:
@@ -1,23 +1,17 @@
|
||||
{ stdenv, fetchzip, ocaml, findlib, dune, yojson }:
|
||||
{ stdenv, fetchzip, buildDunePackage, yojson }:
|
||||
|
||||
assert stdenv.lib.versionAtLeast ocaml.version "4.02";
|
||||
|
||||
let
|
||||
buildDunePackage rec {
|
||||
pname = "merlin";
|
||||
version = "3.2.2";
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
|
||||
name = "merlin-${version}";
|
||||
minimumOCamlVersion = "4.02";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/ocaml/merlin/archive/v${version}.tar.gz";
|
||||
sha256 = "15ssgmwdxylbwhld9p1cq8x6kadxyhll5bfyf11dddj6cldna3hb";
|
||||
};
|
||||
|
||||
buildInputs = [ ocaml findlib dune yojson ];
|
||||
|
||||
inherit (dune) installPhase;
|
||||
buildInputs = [ yojson ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "An editor-independent tool to ease the development of programs in OCaml";
|
||||
|
||||
@@ -1,33 +1,25 @@
|
||||
{ stdenv, fetchzip, ncurses
|
||||
, ocamlPackages
|
||||
, dune
|
||||
}:
|
||||
{ stdenv, fetchzip, ncurses, ocamlPackages }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
with ocamlPackages; buildDunePackage rec {
|
||||
pname = "ocaml-top";
|
||||
version = "1.1.5";
|
||||
name = "ocaml-top-${version}";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/OCamlPro/ocaml-top/archive/${version}.tar.gz";
|
||||
sha256 = "1d4i6aanrafgrgk4mh154k6lkwk0b6mh66rykz33awlf5pfqd8yv";
|
||||
};
|
||||
|
||||
buildInputs = [ ncurses dune ]
|
||||
++ (with ocamlPackages; [ ocaml ocp-build findlib lablgtk ocp-index ]);
|
||||
buildInputs = [ ncurses ocp-build lablgtk ocp-index ];
|
||||
|
||||
configurePhase = ''
|
||||
export TERM=xterm
|
||||
ocp-build -init
|
||||
'';
|
||||
|
||||
buildPhase = "jbuilder build";
|
||||
|
||||
inherit (dune) installPhase;
|
||||
|
||||
meta = {
|
||||
homepage = https://www.typerex.org/ocaml-top.html;
|
||||
license = stdenv.lib.licenses.gpl3;
|
||||
description = "A simple cross-platform OCaml code editor built for top-level evaluation";
|
||||
platforms = ocamlPackages.ocaml.meta.platforms or [];
|
||||
maintainers = with stdenv.lib.maintainers; [ vbgl ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
{ stdenv, fetchFromGitHub, ocamlPackages, dune }:
|
||||
{ stdenv, fetchFromGitHub, ocamlPackages }:
|
||||
|
||||
with ocamlPackages;
|
||||
|
||||
if !stdenv.lib.versionAtLeast ocaml.version "4.05"
|
||||
then throw "ocamlformat is not available for OCaml ${ocaml.version}"
|
||||
else
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.8";
|
||||
with ocamlPackages; buildDunePackage rec {
|
||||
pname = "ocamlformat";
|
||||
name = "${pname}-${version}";
|
||||
version = "0.8";
|
||||
|
||||
minimumOCamlVersion = "4.05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ocaml-ppx";
|
||||
@@ -19,9 +14,6 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
ocaml
|
||||
dune
|
||||
findlib
|
||||
base
|
||||
cmdliner
|
||||
fpath
|
||||
@@ -34,17 +26,10 @@ stdenv.mkDerivation rec {
|
||||
tools/gen_version.sh src/Version.ml version
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
dune build -p ocamlformat
|
||||
'';
|
||||
|
||||
inherit (dune) installPhase;
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/ocaml-ppx/ocamlformat";
|
||||
inherit (src.meta) homepage;
|
||||
description = "Auto-formatter for OCaml code";
|
||||
maintainers = [ stdenv.lib.maintainers.Zimmi48 ];
|
||||
license = stdenv.lib.licenses.mit;
|
||||
inherit (ocamlPackages.ocaml.meta) platforms;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user