diff options
Diffstat (limited to 'pkgs/development/libraries/libwebp/default.nix')
-rw-r--r-- | pkgs/development/libraries/libwebp/default.nix | 67 |
1 files changed, 54 insertions, 13 deletions
diff --git a/pkgs/development/libraries/libwebp/default.nix b/pkgs/development/libraries/libwebp/default.nix index 6800541d923..6da1b00ee81 100644 --- a/pkgs/development/libraries/libwebp/default.nix +++ b/pkgs/development/libraries/libwebp/default.nix @@ -1,26 +1,67 @@ -{ stdenv, fetchurl, libpng, libjpeg, giflib, libtiff }: +{ stdenv, fetchurl +, threadingSupport ? true # multi-threading +, openglSupport ? false, freeglut ? null, mesa ? null # OpenGL (required for vwebp) +, pngSupport ? true, libpng ? null # PNG image format +, jpegSupport ? true, libjpeg ? null # JPEG image format +, tiffSupport ? true, libtiff ? null # TIFF image format +, gifSupport ? true, giflib ? null # GIF image format +#, wicSupport ? true # Windows Imaging Component +, alignedSupport ? false # Force aligned memory operations +, swap16bitcspSupport ? false # Byte swap for 16bit color spaces +, experimentalSupport ? false # Experimental code +, libwebpmuxSupport ? true # Build libwebpmux +, libwebpdemuxSupport ? true # Build libwebpdemux +, libwebpdecoderSupport ? true # Build libwebpdecoder +}: +assert openglSupport -> ((freeglut != null) && (mesa != null)); +assert pngSupport -> (libpng != null); +assert jpegSupport -> (libjpeg != null); +assert tiffSupport -> (libtiff != null); +assert gifSupport -> (giflib != null); + +let + mkFlag = optSet: flag: if optSet then "--enable-${flag}" else "--disable-${flag}"; +in + +with stdenv.lib; stdenv.mkDerivation rec { - name = "libwebp-0.4.0"; + name = "libwebp-${version}"; + version = "0.4.3"; src = fetchurl { - url = "http://webp.googlecode.com/files/${name}.tar.gz"; - sha256 = "0sadjkx8m6sf064r5gngjvz4b5246q3j27dlaml5b1k3x5vkb49i"; + url = "http://downloads.webmproject.org/releases/webp/${name}.tar.gz"; + sha256 = "1i4hfczjm3b1qj1g4cc9hgb69l47f3nkgf6hk7nz4dm9zmc0vgpg"; }; - buildInputs = [ libpng libjpeg giflib libtiff ]; - configureFlags = [ - "--enable-libwebpmux" - "--enable-libwebpdemux" - "--enable-libwebpdecoder" + (mkFlag threadingSupport "threading") + (mkFlag openglSupport "gl") + (mkFlag pngSupport "png") + (mkFlag jpegSupport "jpeg") + (mkFlag tiffSupport "tiff") + (mkFlag gifSupport "gif") + #(mkFlag (wicSupport && stdenv.isCygwin) "wic") + (mkFlag alignedSupport "aligned") + (mkFlag swap16bitcspSupport "swap-16bit-csp") + (mkFlag experimentalSupport "experimental") + (mkFlag libwebpmuxSupport "libwebpmux") + (mkFlag libwebpdemuxSupport "libwebpdemux") + (mkFlag libwebpdecoderSupport "libwebpdecoder") ]; + buildInputs = [ ] + ++ optionals openglSupport [ freeglut mesa ] + ++ optional pngSupport libpng + ++ optional jpegSupport libjpeg + ++ optional tiffSupport libtiff + ++ optional gifSupport giflib; + meta = { - homepage = http://code.google.com/p/webp/; description = "Tools and library for the WebP image format"; - - /* It has its own licence, google-related, but that looks like BSD */ - license = "free"; + homepage = https://developers.google.com/speed/webp/; + license = licenses.bsd3; + platforms = platforms.all; + maintainers = with maintainers; [ codyopel ]; }; } |