openxray: 2188-november-2023-rc1 -> 2921-january-2025-rc1 (#375925)
[NixPkgs.git] / pkgs / by-name / li / libcaca / package.nix
blobf9abf2a3970bcc5f9ce74751cfab14ed81e01007
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   autoreconfHook,
6   imlib2,
7   xorg,
8   ncurses,
9   pkg-config,
10   zlib,
11   x11Support ? !stdenv.hostPlatform.isDarwin,
14 stdenv.mkDerivation rec {
15   pname = "libcaca";
16   version = "0.99.beta20";
18   src = fetchFromGitHub {
19     owner = "cacalabs";
20     repo = pname;
21     rev = "v${version}";
22     hash = "sha256-N0Lfi0d4kjxirEbIjdeearYWvStkKMyV6lgeyNKXcVw=";
23   };
25   nativeBuildInputs = [
26     autoreconfHook
27     pkg-config
28   ];
30   buildInputs =
31     [
32       ncurses
33       zlib
34       (imlib2.override { inherit x11Support; })
35     ]
36     ++ lib.optionals x11Support [
37       xorg.libX11
38       xorg.libXext
39     ];
41   outputs = [
42     "bin"
43     "dev"
44     "out"
45     "man"
46   ];
48   configureFlags =
49     [
50       (if x11Support then "--enable-x11" else "--disable-x11")
51     ]
52     ++ lib.optionals stdenv.hostPlatform.isDarwin [
53       # Suppresses a build failure building Cocoa support due to accessing private ivar `_running`,
54       # which no longer available.
55       (lib.enableFeature false "cocoa")
56     ];
58   env.NIX_CFLAGS_COMPILE = lib.optionalString (!x11Support) "-DX_DISPLAY_MISSING";
60   postInstall = ''
61     mkdir -p $dev/bin
62     mv $bin/bin/caca-config $dev/bin/caca-config
63   '';
65   meta = with lib; {
66     homepage = "http://caca.zoy.org/wiki/libcaca";
67     description = "Graphics library that outputs text instead of pixels";
68     longDescription = ''
69       libcaca is a graphics library that outputs text instead of pixels, so that
70       it can work on older video cards or text terminals. It is not unlike the
71       famous â€‹AAlib library, with the following improvements:
73       - Unicode support
74       - 2048 available colours (some devices can only handle 16)
75       - dithering of colour images
76       - advanced text canvas operations (blitting, rotations)
78       Libcaca works in a text terminal (and should thus work on all Unix systems
79       including Mac OS X) using the S-Lang or ncurses libraries. It also works
80       natively on DOS and Windows.
82       Libcaca was written by Sam Hocevar and Jean-Yves Lamoureux.
83     '';
84     license = licenses.wtfpl;
85     maintainers = with maintainers; [ AndersonTorres ];
86     platforms = platforms.unix;
87   };