1{ stdenv, fetchurl
2, threadingSupport ? true # multi-threading
3, openglSupport ? false, freeglut ? null, mesa ? null # OpenGL (required for vwebp)
4, pngSupport ? true, libpng ? null # PNG image format
5, jpegSupport ? true, libjpeg ? null # JPEG image format
6, tiffSupport ? true, libtiff ? null # TIFF image format
7, gifSupport ? true, giflib ? null # GIF image format
8#, wicSupport ? true # Windows Imaging Component
9, alignedSupport ? false # Force aligned memory operations
10, swap16bitcspSupport ? false # Byte swap for 16bit color spaces
11, experimentalSupport ? false # Experimental code
12, libwebpmuxSupport ? true # Build libwebpmux
13, libwebpdemuxSupport ? true # Build libwebpdemux
14, libwebpdecoderSupport ? true # Build libwebpdecoder
15}:
16
17assert openglSupport -> ((freeglut != null) && (mesa != null));
18assert pngSupport -> (libpng != null);
19assert jpegSupport -> (libjpeg != null);
20assert tiffSupport -> (libtiff != null);
21assert gifSupport -> (giflib != null);
22
23let
24 mkFlag = optSet: flag: if optSet then "--enable-${flag}" else "--disable-${flag}";
25in
26
27with stdenv.lib;
28stdenv.mkDerivation rec {
29 name = "libwebp-${version}";
30 version = "0.4.3";
31
32 src = fetchurl {
33 url = "http://downloads.webmproject.org/releases/webp/${name}.tar.gz";
34 sha256 = "1i4hfczjm3b1qj1g4cc9hgb69l47f3nkgf6hk7nz4dm9zmc0vgpg";
35 };
36
37 configureFlags = [
38 (mkFlag threadingSupport "threading")
39 (mkFlag openglSupport "gl")
40 (mkFlag pngSupport "png")
41 (mkFlag jpegSupport "jpeg")
42 (mkFlag tiffSupport "tiff")
43 (mkFlag gifSupport "gif")
44 #(mkFlag (wicSupport && stdenv.isCygwin) "wic")
45 (mkFlag alignedSupport "aligned")
46 (mkFlag swap16bitcspSupport "swap-16bit-csp")
47 (mkFlag experimentalSupport "experimental")
48 (mkFlag libwebpmuxSupport "libwebpmux")
49 (mkFlag libwebpdemuxSupport "libwebpdemux")
50 (mkFlag libwebpdecoderSupport "libwebpdecoder")
51 ];
52
53 buildInputs = [ ]
54 ++ optionals openglSupport [ freeglut mesa ]
55 ++ optional pngSupport libpng
56 ++ optional jpegSupport libjpeg
57 ++ optional tiffSupport libtiff
58 ++ optional gifSupport giflib;
59
60 meta = {
61 description = "Tools and library for the WebP image format";
62 homepage = https://developers.google.com/speed/webp/;
63 license = licenses.bsd3;
64 platforms = platforms.all;
65 maintainers = with maintainers; [ codyopel ];
66 };
67}