2014-06-08 11:14:08 +01:00
|
|
|
{ stdenv, fetchurl, ocaml, findlib, which, ocsigen_server, ocsigen_deriving,
|
|
|
|
js_of_ocaml, ocaml_react, ocaml_lwt, calendar, cryptokit, tyxml,
|
2015-05-15 15:35:42 +01:00
|
|
|
ipaddr, ocamlnet, ocaml_ssl, ocaml_pcre, ocaml_optcomp,
|
2014-10-19 17:47:18 +01:00
|
|
|
reactivedata, opam}:
|
2014-06-08 11:14:08 +01:00
|
|
|
|
2015-10-14 23:29:33 +01:00
|
|
|
assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4";
|
|
|
|
|
2014-10-19 17:47:18 +01:00
|
|
|
stdenv.mkDerivation rec
|
2014-06-08 11:14:08 +01:00
|
|
|
{
|
2014-10-19 17:47:18 +01:00
|
|
|
pname = "eliom";
|
2016-01-01 16:38:50 +00:00
|
|
|
version = "4.2.0";
|
2014-10-19 17:47:18 +01:00
|
|
|
name = "${pname}-${version}";
|
2014-06-08 11:14:08 +01:00
|
|
|
|
|
|
|
src = fetchurl {
|
2016-01-01 16:38:50 +00:00
|
|
|
url = https://github.com/ocsigen/eliom/archive/4.2.tar.gz;
|
|
|
|
sha256 = "0gbqzgn6xgpq6irz2sfr92qj3hjcwl45wy0inc4ps5r15nvq1l9h";
|
2014-06-08 11:14:08 +01:00
|
|
|
};
|
|
|
|
|
2015-06-11 23:04:24 +01:00
|
|
|
patches = [ ./camlp4.patch ];
|
|
|
|
|
2014-06-08 11:14:08 +01:00
|
|
|
buildInputs = [ocaml which ocsigen_server findlib ocsigen_deriving
|
2014-10-19 17:48:04 +01:00
|
|
|
js_of_ocaml ocaml_optcomp opam];
|
|
|
|
|
2015-05-15 15:35:42 +01:00
|
|
|
propagatedBuildInputs = [ ocaml_lwt reactivedata tyxml ipaddr
|
2014-10-19 17:48:04 +01:00
|
|
|
calendar cryptokit ocamlnet ocaml_react ocaml_ssl
|
|
|
|
ocaml_pcre ];
|
2014-06-08 11:14:08 +01:00
|
|
|
|
2014-10-19 17:47:18 +01:00
|
|
|
installPhase =
|
|
|
|
let ocamlVersion = (builtins.parseDrvName (ocaml.name)).version;
|
|
|
|
in
|
|
|
|
''opam-installer --script --prefix=$out ${pname}.install > install.sh
|
|
|
|
sh install.sh
|
|
|
|
ln -s $out/lib/${pname} $out/lib/ocaml/${ocamlVersion}/site-lib/
|
|
|
|
'';
|
2014-06-08 11:14:08 +01:00
|
|
|
|
|
|
|
createFindlibDestdir = true;
|
2014-09-22 10:00:51 +01:00
|
|
|
|
|
|
|
meta = {
|
|
|
|
homepage = http://ocsigen.org/eliom/;
|
|
|
|
description = "Ocaml Framework for programming Web sites and client/server Web applications";
|
|
|
|
|
|
|
|
longDescription =''Eliom is a framework for programming Web sites
|
|
|
|
and client/server Web applications. It introduces new concepts to
|
|
|
|
simplify programming common behaviours and uses advanced static
|
|
|
|
typing features of OCaml to check many properties of the Web site
|
|
|
|
at compile time. If you want to write a Web application, Eliom
|
|
|
|
makes possible to write the whole application as a single program
|
|
|
|
(client and server parts). A syntax extension is used to
|
|
|
|
distinguish both parts and the client side is compiled to JS using
|
|
|
|
Ocsigen Js_of_ocaml.'';
|
|
|
|
|
|
|
|
license = stdenv.lib.licenses.lgpl21;
|
|
|
|
|
|
|
|
platforms = ocaml.meta.platforms;
|
|
|
|
|
|
|
|
maintainers = [ stdenv.lib.maintainers.gal_bolle ];
|
|
|
|
};
|
2014-06-08 11:14:08 +01:00
|
|
|
}
|