summaryrefslogtreecommitdiff
path: root/pkgs/development/tools/ocaml/ocp-index/default.nix
blob: 721111f676fb1f3a819c224d5f96dcde6f1d1ff0 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{ stdenv, fetchFromGitHub, ocaml, findlib, ocpBuild, ocpIndent, opam, cmdliner, ncurses, re, lambdaTerm, libev }:

let inherit (stdenv.lib) getVersion versionAtLeast optional; in

assert versionAtLeast (getVersion ocaml) "4";
assert versionAtLeast (getVersion ocpBuild) "1.99.6-beta";
assert versionAtLeast (getVersion ocpIndent) "1.4.2";

let
  version = "1.1.4";
  srcs = {
    "4.03.0" = {
      rev = "${version}-4.03";
      sha256 = "0c6s5radwyvxf9hrq2y9lirk72z686k9yzd0vgzy98yrrp1w56mv";
    };
    "4.02.3" = {
      rev = "${version}-4.02";
      sha256 = "057ss3lz754b2pznkb3zda5h65kjgqnvabvfqwqcz4qqxxki2yc8";
    };
    "4.01.0" = {
      rev = "${version}";
      sha256 = "106bnc8jhmjnychcl8k3gl9n6b50bc66qc5hqf1wkbkk9kz4vc9d";
    };
  };

  src = fetchFromGitHub ({
    owner = "OCamlPro";
    repo = "ocp-index";
  } // srcs."${ocaml.version}");
in

stdenv.mkDerivation {

  name = "ocp-index-${version}";

  inherit src;

  buildInputs = [ ocaml findlib ocpBuild opam cmdliner ncurses re libev ]
  ++ optional (versionAtLeast (getVersion lambdaTerm) "1.7") lambdaTerm;
  propagatedBuildInputs = [ ocpIndent ];

  createFindlibDestdir = true;

  preBuild = "export TERM=xterm";
  postInstall = "mv $out/lib/{ocp-index,ocaml/${getVersion ocaml}/site-lib/}";

  meta = {
    homepage = http://typerex.ocamlpro.com/ocp-index.html;
    description = "A simple and light-weight documentation extractor for OCaml";
    license = stdenv.lib.licenses.lgpl3;
    platforms = ocaml.meta.platforms or [];
    maintainers = with stdenv.lib.maintainers; [ vbgl ];
  };
}