diff options
Diffstat (limited to 'pkgs/development/ocaml-modules/cairo2/default.nix')
-rw-r--r-- | pkgs/development/ocaml-modules/cairo2/default.nix | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/pkgs/development/ocaml-modules/cairo2/default.nix b/pkgs/development/ocaml-modules/cairo2/default.nix new file mode 100644 index 000000000000..b37dd413f693 --- /dev/null +++ b/pkgs/development/ocaml-modules/cairo2/default.nix @@ -0,0 +1,53 @@ +{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, pkgconfig, cairo, lablgtk, gtk2, + enableGtkSupport ? true # Whether to compile with support for Gtk + # integration (library file cairo2_gtk). Depends + # on lablgtk and gtk2. +}: + +let + inherit (stdenv.lib) optionals; + version = "0.5"; +in + +stdenv.mkDerivation { + + name = "ocaml${ocaml.version}-cairo2-${version}"; + + src = fetchurl { + url = "https://github.com/Chris00/ocaml-cairo/releases/download/${version}/cairo2-${version}.tar.gz"; + sha256 = "1559df74rzh4v7c9hr6phymq1f5121s83q0xy3r83x4apj74dchj"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ ocaml findlib ocamlbuild cairo ] + ++ optionals enableGtkSupport [ gtk2 ]; + + # lablgtk2 is marked as a propagated build input since loading the + # cairo.lablgtk2 package from the toplevel tries to load lablgtk2 as + # well. + propagatedBuildInputs = optionals enableGtkSupport [ lablgtk ]; + + createFindlibDestdir = true; + + configurePhase = "ocaml setup.ml -configure --prefix $out" + + (if enableGtkSupport then " --enable-lablgtk2" + else " --disable-lablgtk2"); + + buildPhase = "ocaml setup.ml -build"; + + installPhase = "ocaml setup.ml -install"; + + meta = with stdenv.lib; { + homepage = "https://github.com/Chris00/ocaml-cairo"; + description = "Binding to Cairo, a 2D Vector Graphics Library"; + longDescription = '' + This is a binding to Cairo, a 2D graphics library with support for + multiple output devices. Currently supported output targets include + the X Window System, Quartz, Win32, image buffers, PostScript, PDF, + and SVG file output. + ''; + license = licenses.lgpl3; + platforms = ocaml.meta.platforms or []; + maintainers = [ maintainers.jirkamarsik ]; + }; +} |