1{ lib, stdenv, fetchurl, pkg-config, yasm
2, freetype, fribidi, harfbuzz
3, fontconfigSupport ? true, fontconfig ? null # fontconfig support
4, rasterizerSupport ? false # Internal rasterizer
5, largeTilesSupport ? false # Use larger tiles in the rasterizer
6, libiconv
7}:
8
9assert fontconfigSupport -> fontconfig != null;
10
11with lib;
12stdenv.mkDerivation rec {
13 pname = "libass";
14 version = "0.16.0";
15
16 src = fetchurl {
17 url = "https://github.com/libass/libass/releases/download/${version}/${pname}-${version}.tar.xz";
18 sha256 = "sha256-Xb3p4iM5EZz47tWe6mxiOgdG71qQtonmigkBCQeOPAg=";
19 };
20
21 configureFlags = [
22 (enableFeature fontconfigSupport "fontconfig")
23 (enableFeature rasterizerSupport "rasterizer")
24 (enableFeature largeTilesSupport "large-tiles")
25 ];
26
27 nativeBuildInputs = [ pkg-config yasm ];
28
29 buildInputs = [ freetype fribidi harfbuzz ]
30 ++ optional fontconfigSupport fontconfig
31 ++ optional stdenv.isDarwin libiconv;
32
33 meta = {
34 description = "Portable ASS/SSA subtitle renderer";
35 homepage = "https://github.com/libass/libass";
36 license = licenses.isc;
37 platforms = platforms.unix;
38 maintainers = with maintainers; [ codyopel ];
39 };
40}