reason: init at 1.13.3

This commit is contained in:
Volth 2017-04-08 11:34:41 +00:00
parent f1bc5a3a83
commit aa8d50ce0b
7 changed files with 125 additions and 8 deletions

View file

@ -0,0 +1,57 @@
{ stdenv, makeWrapper, buildOcaml, fetchFromGitHub,
ocaml, opam, topkg, menhir, merlin_extend, ppx_tools_versioned, utop }:
let
version = "1.13.3";
src = fetchFromGitHub {
owner = "facebook";
repo = "reason";
rev = version;
sha256 = "1b0dsnw69kkvix4iqlbcbfyr9j6zx2y2cbrp13f7y387hv6i7zkx";
};
meta = with stdenv.lib; {
homepage = https://facebook.github.io/reason/;
description = "Facebook's friendly syntax to OCaml";
license = licenses.bsd3;
maintainers = [ maintainers.volth ];
};
reason-parser = buildOcaml {
name = "reason-parser";
inherit version src meta;
sourceRoot = "reason-${version}-src/reason-parser";
minimumSupportedOcamlVersion = "4.02";
propagatedBuildInputs = [ menhir merlin_extend ppx_tools_versioned ];
buildInputs = [ opam topkg ];
createFindlibDestdir = true;
inherit (topkg) installPhase;
};
in
buildOcaml {
name = "reason";
inherit version src meta;
buildInputs = [ makeWrapper opam topkg reason-parser utop ];
buildFlags = [ "build" ]; # do not "make tests" before reason lib is installed
createFindlibDestdir = true;
postPatch = ''
substituteInPlace src/reasonbuild.ml --replace "refmt --print binary" "$out/bin/refmt --print binary"
'';
installPhase = ''
${topkg.installPhase}
wrapProgram $out/bin/reup \
--prefix PATH : "${opam}/bin"
wrapProgram $out/bin/rtop \
--prefix PATH : "${utop}/bin" \
--set OCAMLPATH $out/lib/ocaml/${ocaml.version}/site-lib:$OCAMLPATH
'';
}

View file

@ -0,0 +1,26 @@
{ stdenv, buildOcaml, fetchFromGitHub, cppo }:
buildOcaml rec {
name = "merlin_extend";
version = "0.3";
minimumSupportedOcamlVersion = "4.02";
src = fetchFromGitHub {
owner = "let-def";
repo = "merlin-extend";
sha256 = "1z6hybcb7ry0bkzjd0r2dlcgjnhhxdsr06x3h03sj7h5fihsc7vd";
rev = "v${version}";
};
buildInputs = [ cppo ];
createFindlibDestdir = true;
meta = with stdenv.lib; {
homepage = https://github.com/let-def/merlin-extend;
description = "SDK to extend Merlin";
license = licenses.mit;
maintainers = [ maintainers.volth ];
};
}

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-ocaml-migrate-parsetree-${version}";
version = "0.5";
version = "0.7";
src = fetchFromGitHub {
owner = "let-def";
repo = "ocaml-migrate-parsetree";
rev = "v${version}";
sha256 = "023lnd3kxa3d4zgsvv0z2lyzhg05zcgagy18vaalimbza57wq83h";
sha256 = "142svvixhz153argd3khk7sr38dhiy4w6sck4766f8b48p41pp3m";
};
buildInputs = [ ocaml findlib ocamlbuild jbuilder ];

View file

@ -0,0 +1,26 @@
{ stdenv, buildOcaml, fetchFromGitHub, ocaml-migrate-parsetree }:
buildOcaml rec {
name = "ppx_tools_versioned";
version = "5.0alpha";
minimumSupportedOcamlVersion = "4.02";
src = fetchFromGitHub {
owner = "let-def";
repo = "ppx_tools_versioned";
rev = version;
sha256 = "0sa3w0plpa0s202s9yjgz7dbk32xd2s6fymkjijrhj4lkvh08mba";
};
propagatedBuildInputs = [ ocaml-migrate-parsetree ];
createFindlibDestdir = true;
meta = with stdenv.lib; {
homepage = https://github.com/let-def/ppx_tools_versioned;
description = "Tools for authors of syntactic tools (such as ppx rewriters)";
license = licenses.gpl2;
maintainers = [ maintainers.volth ];
};
}

View file

@ -1,5 +1,5 @@
{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, camlp4, ocaml_react
, lambdaTerm, ocaml_lwt, makeWrapper, camomile, zed, cppo, ppx_tools
{ stdenv, fetchurl, bash, ocaml, findlib, ocamlbuild, camlp4, ocaml_react
, lambdaTerm, ocaml_lwt, camomile, zed, cppo, ppx_tools
}:
stdenv.mkDerivation rec {
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "16z02vp9n97iax4fqpbi7v86r75vbabxvnd1rirh8w2miixs1g4x";
};
buildInputs = [ ocaml findlib ocamlbuild makeWrapper cppo camlp4 ppx_tools ];
buildInputs = [ ocaml findlib ocamlbuild cppo camlp4 ppx_tools ];
propagatedBuildInputs = [ lambdaTerm ocaml_lwt ];
@ -35,9 +35,9 @@ stdenv.mkDerivation rec {
do
mv $prog .$prog-wrapped
cat > $prog <<EOF
#!/bin/sh
export CAML_LD_LIBRARY_PATH=${p ocaml_lwt}/lwt:${p lambdaTerm}/lambda-term:'\$CAML_LD_LIBRARY_PATH'
export OCAMLPATH=${p ocaml_lwt}:${p ocaml_react}:${p camomile}:${p zed}:${p lambdaTerm}:"$out"/lib/ocaml/${ocaml.version}/site-lib:'\$OCAMLPATH'
#!${bash}/bin/bash -e
export CAML_LD_LIBRARY_PATH="${p ocaml_lwt}/lwt:${p lambdaTerm}/lambda-term:\$CAML_LD_LIBRARY_PATH"
export OCAMLPATH="${p ocaml_lwt}:${p ocaml_react}:${p camomile}:${p zed}:${p lambdaTerm}:"$out"/lib/ocaml/${ocaml.version}/site-lib:\$OCAMLPATH"
${ocaml}/bin/ocamlrun $out/bin/.$prog-wrapped \$*
EOF
chmod +x $prog

View file

@ -6128,6 +6128,8 @@ with pkgs;
regina = callPackage ../development/interpreters/regina { };
inherit (ocamlPackages) reason;
renpy = callPackage ../development/interpreters/renpy {
ffmpeg = ffmpeg_2;
};

View file

@ -289,6 +289,8 @@ let
merlin = callPackage ../development/tools/ocaml/merlin { };
merlin_extend = callPackage ../development/ocaml-modules/merlin_extend { };
mezzo = callPackage ../development/compilers/mezzo { };
mlgmp = callPackage ../development/ocaml-modules/mlgmp { };
@ -499,6 +501,8 @@ let
then callPackage ../development/ocaml-modules/ppx_tools {}
else null;
ppx_tools_versioned = callPackage ../development/ocaml-modules/ppx_tools_versioned { };
pycaml = callPackage ../development/ocaml-modules/pycaml { };
qcheck = callPackage ../development/ocaml-modules/qcheck {
@ -509,6 +513,8 @@ let
re = callPackage ../development/ocaml-modules/re { };
reason = callPackage ../development/compilers/reason { };
rresult = callPackage ../development/ocaml-modules/rresult { };
safepass = callPackage ../development/ocaml-modules/safepass { };