54 lines
1.8 KiB
Nix
54 lines
1.8 KiB
Nix
{ 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 ];
|
|
};
|
|
}
|