summary refs log tree commit diff
path: root/pkgs/development/ocaml-modules/eliom/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/ocaml-modules/eliom/default.nix')
-rw-r--r--pkgs/development/ocaml-modules/eliom/default.nix54
1 files changed, 54 insertions, 0 deletions
diff --git a/pkgs/development/ocaml-modules/eliom/default.nix b/pkgs/development/ocaml-modules/eliom/default.nix
new file mode 100644
index 00000000000..9700a1d8cc5
--- /dev/null
+++ b/pkgs/development/ocaml-modules/eliom/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, ocaml, findlib, which, ocsigen_server, ocsigen_deriving,
+  js_of_ocaml, ocaml_react, ocaml_lwt, calendar, cryptokit, tyxml,
+  ocaml_ipaddr, ocamlnet, ocaml_ssl, ocaml_pcre, ocaml_optcomp,
+  reactivedata, opam}:
+
+stdenv.mkDerivation rec
+{
+  pname = "eliom";
+  version = "4.1.0";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = https://github.com/ocsigen/eliom/archive/4.1.0.tar.gz;
+    sha256 = "10v7mrq3zsbxdlg8k8xif777mbvcdpabvnd1g7p2yqivr7f1qm24";
+  };
+
+  buildInputs = [ocaml which ocsigen_server findlib ocsigen_deriving
+                 js_of_ocaml ocaml_optcomp opam];
+
+  propagatedBuildInputs = [ ocaml_lwt reactivedata tyxml ocaml_ipaddr
+                            calendar cryptokit ocamlnet ocaml_react ocaml_ssl
+                            ocaml_pcre ];
+
+  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/
+  '';
+
+  createFindlibDestdir = true;
+
+  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 ];
+  };
+}