nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 ocaml,
6 findlib,
7 ocamlbuild,
8 buildDunePackage,
9}:
10
11let
12 pname = "cppo";
13
14 meta = {
15 description = "C preprocessor for OCaml";
16 mainProgram = "cppo";
17 longDescription = ''
18 Cppo is an equivalent of the C preprocessor targeted at the OCaml language and its variants.
19 '';
20 homepage = "https://github.com/ocaml-community/${pname}";
21 maintainers = [ lib.maintainers.vbgl ];
22 license = lib.licenses.bsd3;
23 };
24
25in
26
27if lib.versionAtLeast ocaml.version "4.02" then
28
29 buildDunePackage rec {
30 inherit pname;
31 version = "1.8.0";
32
33 src = fetchFromGitHub {
34 owner = "ocaml-community";
35 repo = pname;
36 rev = "v${version}";
37 hash = "sha256-+HnAGM+GddYJK0RCvKrs+baZS+1o8Yq+/cVa3U3nFWg=";
38 };
39
40 doCheck = true;
41
42 inherit meta;
43 }
44
45else
46
47 let
48 version = "1.5.0";
49 in
50
51 stdenv.mkDerivation {
52 inherit pname version;
53
54 src = fetchFromGitHub {
55 owner = "mjambon";
56 repo = pname;
57 rev = "v${version}";
58 sha256 = "1xqldjz9risndnabvadw41fdbi5sa2hl4fnqls7j9xfbby1izbg8";
59 };
60
61 strictDeps = true;
62
63 nativeBuildInputs = [
64 ocaml
65 findlib
66 ocamlbuild
67 ];
68
69 inherit meta;
70
71 createFindlibDestdir = true;
72
73 makeFlags = [ "PREFIX=$(out)" ];
74
75 preBuild = ''
76 mkdir -p $out/bin
77 '';
78
79 }