Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 cmake, 6 threadingSupport ? true, # multi-threading 7 openglSupport ? false, 8 libglut, 9 libGL, 10 libGLU, # OpenGL (required for vwebp) 11 pngSupport ? true, 12 libpng, # PNG image format 13 jpegSupport ? true, 14 libjpeg, # JPEG image format 15 tiffSupport ? true, 16 libtiff, # TIFF image format 17 gifSupport ? true, 18 giflib, # GIF image format 19 swap16bitcspSupport ? false, # Byte swap for 16bit color spaces 20 libwebpmuxSupport ? true, # Build libwebpmux 21 22 # for passthru.tests 23 gd, 24 graphicsmagick, 25 haskellPackages, 26 imagemagick, 27 imlib2, 28 libjxl, 29 opencv, 30 python3, 31 vips, 32}: 33 34stdenv.mkDerivation rec { 35 pname = "libwebp"; 36 version = "1.6.0"; 37 38 src = fetchFromGitHub { 39 owner = "webmproject"; 40 repo = "libwebp"; 41 rev = "v${version}"; 42 hash = "sha256-7i4fGBTsTjAkBzCjVqXqX4n22j6dLgF/0mz4ajNA45U="; 43 }; 44 45 cmakeFlags = [ 46 (lib.cmakeBool "BUILD_SHARED_LIBS" true) 47 (lib.cmakeBool "WEBP_USE_THREAD" threadingSupport) 48 (lib.cmakeBool "WEBP_BUILD_VWEBP" openglSupport) 49 (lib.cmakeBool "WEBP_BUILD_IMG2WEBP" (pngSupport || jpegSupport || tiffSupport)) 50 (lib.cmakeBool "WEBP_BUILD_GIF2WEBP" gifSupport) 51 (lib.cmakeBool "WEBP_BUILD_ANIM_UTILS" false) # Not installed 52 (lib.cmakeBool "WEBP_BUILD_EXTRAS" false) # Not installed 53 (lib.cmakeBool "WEBP_ENABLE_SWAP_16BIT_CSP" swap16bitcspSupport) 54 (lib.cmakeBool "WEBP_BUILD_LIBWEBPMUX" libwebpmuxSupport) 55 ]; 56 57 nativeBuildInputs = [ cmake ]; 58 buildInputs = 59 [ ] 60 ++ lib.optionals openglSupport [ 61 libglut 62 libGL 63 libGLU 64 ] 65 ++ lib.optionals pngSupport [ libpng ] 66 ++ lib.optionals jpegSupport [ libjpeg ] 67 ++ lib.optionals tiffSupport [ libtiff ] 68 ++ lib.optionals gifSupport [ giflib ]; 69 70 passthru.tests = { 71 inherit 72 gd 73 graphicsmagick 74 imagemagick 75 imlib2 76 libjxl 77 opencv 78 vips 79 ; 80 inherit (python3.pkgs) pillow imread; 81 haskell-webp = haskellPackages.webp; 82 }; 83 84 meta = with lib; { 85 description = "Tools and library for the WebP image format"; 86 homepage = "https://developers.google.com/speed/webp/"; 87 license = licenses.bsd3; 88 platforms = platforms.all; 89 maintainers = with maintainers; [ ajs124 ]; 90 }; 91}