1{ stdenv, fetchurl, pkgconfig, yasm
2, freetype, fribidi
3, encaSupport ? true, enca ? null # enca support
4, fontconfigSupport ? true, fontconfig ? null # fontconfig support
5, harfbuzzSupport ? true, harfbuzz ? null # harfbuzz support
6, rasterizerSupport ? false # Internal rasterizer
7, largeTilesSupport ? false # Use larger tiles in the rasterizer
8}:
9
10assert encaSupport -> enca != null;
11assert fontconfigSupport -> fontconfig != null;
12assert harfbuzzSupport -> harfbuzz != null;
13
14let
15 mkFlag = optSet: flag: if optSet then "--enable-${flag}" else "--disable-${flag}";
16in
17
18with stdenv.lib;
19stdenv.mkDerivation rec {
20 name = "libass-${version}";
21 version = "0.12.2";
22
23 src = fetchurl {
24 url = "https://github.com/libass/libass/releases/download/${version}/${name}.tar.xz";
25 sha256 = "1qzibgqmnnqk2r116lpk1br764g0v74f2zp12y5id0p1plaing37";
26 };
27
28 configureFlags = [
29 (mkFlag encaSupport "enca")
30 (mkFlag fontconfigSupport "fontconfig")
31 (mkFlag harfbuzzSupport "harfbuzz")
32 (mkFlag rasterizerSupport "rasterizer")
33 (mkFlag largeTilesSupport "large-tiles")
34 ];
35
36 nativeBuildInputs = [ pkgconfig yasm ];
37
38 buildInputs = [ freetype fribidi ]
39 ++ optional encaSupport enca
40 ++ optional fontconfigSupport fontconfig
41 ++ optional harfbuzzSupport harfbuzz;
42
43 meta = {
44 description = "Portable ASS/SSA subtitle renderer";
45 homepage = https://github.com/libass/libass;
46 license = licenses.isc;
47 platforms = platforms.unix;
48 maintainers = with maintainers; [ codyopel urkud ];
49 repositories.git = git://github.com/libass/libass.git;
50 };
51}