btrbk: add mainProgram (#356350)
[NixPkgs.git] / pkgs / by-name / ll / llpp / package.nix
blobff5d34e8224a1a7729065692b621b3ab9a241826
1 { stdenv
2 , lib
3 , makeWrapper
4 , fetchFromGitHub
5 , ocaml
6 , pkg-config
7 , mupdf
8 , libX11
9 , jbig2dec
10 , openjpeg
11 , libjpeg
12 , lcms2
13 , harfbuzz
14 , libGLU
15 , libGL
16 , gumbo
17 , freetype
18 , zlib
19 , xclip
20 , inotify-tools
21 , procps
22 , darwin
25 assert lib.versionAtLeast (lib.getVersion ocaml) "4.07";
27 stdenv.mkDerivation rec {
28   pname = "llpp";
29   version = "42";
31   src = fetchFromGitHub {
32     owner = "criticic";
33     repo = pname;
34     rev = "v${version}";
35     hash = "sha256-B/jKvBtBwMOErUVmGFGXXIT8FzMl1DFidfDCHIH41TU=";
36   };
38   postPatch = ''
39     sed -i "2d;s/ver=.*/ver=${version}/" build.bash
40   '';
42   strictDeps = true;
44   nativeBuildInputs = [ makeWrapper ocaml pkg-config ];
45   buildInputs = [ mupdf libX11 freetype zlib gumbo jbig2dec openjpeg libjpeg lcms2 harfbuzz ]
46     ++ lib.optionals stdenv.hostPlatform.isLinux [ libGLU libGL ]
47     ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.apple_sdk.frameworks.OpenGL darwin.apple_sdk.frameworks.Cocoa ];
49   dontStrip = true;
51   buildPhase = ''
52     bash ./build.bash build
53   '';
55   installPhase = ''
56     install -d $out/bin
57     install build/llpp $out/bin
58     install misc/llpp.inotify $out/bin/llpp.inotify
59     install -Dm444 misc/llpp.desktop -t $out/share/applications
60   '' + lib.optionalString stdenv.hostPlatform.isLinux ''
61     wrapProgram $out/bin/llpp \
62         --prefix PATH ":" "${xclip}/bin"
64     wrapProgram $out/bin/llpp.inotify \
65         --prefix PATH ":" "$out/bin" \
66         --prefix PATH ":" "${inotify-tools}/bin" \
67         --prefix PATH ":" "${procps}/bin"
68   '';
70   meta = with lib; {
71     homepage = "https://github.com/criticic/llpp";
72     description = "MuPDF based PDF pager written in OCaml";
73     platforms = platforms.linux ++ platforms.darwin;
74     maintainers = with maintainers; [ pSub ];
75     license = [ licenses.publicDomain licenses.bsd3 ];
76   };