base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12
[NixPkgs.git] / pkgs / by-name / li / libwebp / package.nix
blobabd1e1bd9afe9199abdd868d5d81d22060e604f4
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
22   # for passthru.tests
23   gd,
24   graphicsmagick,
25   haskellPackages,
26   imagemagick,
27   imlib2,
28   libjxl,
29   opencv,
30   python3,
31   vips,
34 stdenv.mkDerivation rec {
35   pname = "libwebp";
36   version = "1.4.0";
38   src = fetchFromGitHub {
39     owner = "webmproject";
40     repo = "libwebp";
41     rev = "v${version}";
42     hash = "sha256-OR/VzKNn3mnwjf+G+RkEGAaaKrhVlAu1e2oTRwdsPj8=";
43   };
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   ];
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 ];
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   };
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   };