aboutsummaryrefslogtreecommitdiff
path: root/pkgs/development/ocaml-modules/vg
diff options
context:
space:
mode:
authorJirka Marsik <jiri.marsik89@gmail.com>2014-10-29 21:15:50 +0100
committerJirka Marsik <jiri.marsik89@gmail.com>2014-10-29 21:15:50 +0100
commitd9f0e1688301910d333528b84d46a6adae2f05a6 (patch)
treeb43fdd26fe9c18707bff884b778ad5ab722c7606 /pkgs/development/ocaml-modules/vg
parent0832152742242d846fab63772adbe88cd5b28f92 (diff)
Added ocaml-vg-0.8.1
Diffstat (limited to 'pkgs/development/ocaml-modules/vg')
-rw-r--r--pkgs/development/ocaml-modules/vg/default.nix62
1 files changed, 62 insertions, 0 deletions
diff --git a/pkgs/development/ocaml-modules/vg/default.nix b/pkgs/development/ocaml-modules/vg/default.nix
new file mode 100644
index 000000000000..bfff4c68cef9
--- /dev/null
+++ b/pkgs/development/ocaml-modules/vg/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchurl, ocaml, findlib, opam, gg, uutf, otfm, js_of_ocaml,
+ pdfBackend ? true, # depends on uutf and otfm
+ htmlcBackend ? true # depends on js_of_ocaml
+}:
+
+let
+ inherit (stdenv.lib) getVersion optionals versionAtLeast;
+
+ pname = "vg";
+ version = "0.8.1";
+ webpage = "http://erratique.ch/software/${pname}";
+in
+
+assert versionAtLeast (getVersion ocaml) "4.01.0";
+
+stdenv.mkDerivation rec {
+
+ name = "ocaml-${pname}-${version}";
+
+ src = fetchurl {
+ url = "${webpage}/releases/${pname}-${version}.tbz";
+ sha256 = "1cdcvsr5z8845ndilnrz7p4n6yn4gv2p91z2mgi4vrailcmn5vzd";
+ };
+
+ buildInputs = [ ocaml findlib opam ];
+
+ propagatedBuildInputs = [ gg ]
+ ++ optionals pdfBackend [ uutf otfm ]
+ ++ optionals htmlcBackend [ js_of_ocaml ];
+
+ createFindlibDestdir = true;
+
+ unpackCmd = "tar xjf $src";
+
+ buildPhase = "ocaml pkg/build.ml native=true native-dynlink=true"
+ + (if pdfBackend then " uutf=true otfm=true"
+ else " uutf=false otfm=false")
+ + (if htmlcBackend then " jsoo=true"
+ else " jsoo=false");
+
+ installPhase = ''
+ opam-installer --script --prefix=$out ${pname}.install | sh
+ ln -s $out/lib/${pname} $out/lib/ocaml/${getVersion ocaml}/site-lib/${pname}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Declarative 2D vector graphics for OCaml";
+ longDescription = ''
+ Vg is an OCaml module for declarative 2D vector graphics. In Vg, images
+ are values that denote functions mapping points of the cartesian plane
+ to colors. The module provides combinators to define and compose these
+ values.
+
+ Renderers for PDF, SVG and the HTML canvas are distributed with the
+ module. An API allows to implement new renderers.
+ '';
+ homepage = "${webpage}";
+ platforms = ocaml.meta.platforms;
+ license = licenses.bsd3;
+ maintainers = [ maintainers.jirkamarsik ];
+ };
+}