python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / development / libraries / libjpeg-turbo / default.nix
blobab08435721fddb6f649e3056a93c68d62c870627
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cmake
5 , nasm
6 , openjdk
7 , enableJava ? false # whether to build the java wrapper
8 , enableJpeg7 ? false # whether to build libjpeg with v7 compatibility
9 , enableJpeg8 ? false # whether to build libjpeg with v8 compatibility
10 , enableStatic ? stdenv.hostPlatform.isStatic
11 , enableShared ? !stdenv.hostPlatform.isStatic
13 # for passthru.tests
14 , dvgrab
15 , epeg
16 , freeimage
17 , gd
18 , graphicsmagick
19 , imagemagick
20 , imlib2
21 , jhead
22 , libjxl
23 , mjpegtools
24 , opencv
25 , python3
26 , vips
29 assert !(enableJpeg7 && enableJpeg8);  # pick only one or none, not both
31 stdenv.mkDerivation rec {
33   pname = "libjpeg-turbo";
34   version = "2.1.4";
36   src = fetchFromGitHub {
37     owner = "libjpeg-turbo";
38     repo = "libjpeg-turbo";
39     rev = version;
40     sha256 = "sha256-1NRoVIL3zXX1D6iOf2FCrwBEcDW7TYFbdIbCTjY1m8Q=";
41   };
43   # This is needed by freeimage
44   patches = [ ./0001-Compile-transupp.c-as-part-of-the-library.patch ]
45     ++ lib.optional (stdenv.hostPlatform.libc or null == "msvcrt")
46     ./mingw-boolean.patch;
48   outputs = [ "bin" "dev" "dev_private" "out" "man" "doc" ];
50   postFixup = ''
51     moveToOutput include/transupp.h $dev_private
52   '';
54   nativeBuildInputs = [
55     cmake
56     nasm
57   ] ++ lib.optionals enableJava [
58     openjdk
59   ];
61   cmakeFlags = [
62     "-DENABLE_STATIC=${if enableStatic then "1" else "0"}"
63     "-DENABLE_SHARED=${if enableShared then "1" else "0"}"
64   ] ++ lib.optionals enableJava [
65     "-DWITH_JAVA=1"
66   ] ++ lib.optionals enableJpeg7 [
67     "-DWITH_JPEG7=1"
68   ] ++ lib.optionals enableJpeg8 [
69     "-DWITH_JPEG8=1"
70   ] ++ lib.optionals stdenv.hostPlatform.isRiscV [
71     # https://github.com/libjpeg-turbo/libjpeg-turbo/issues/428
72     # https://github.com/libjpeg-turbo/libjpeg-turbo/commit/88bf1d16786c74f76f2e4f6ec2873d092f577c75
73     "-DFLOATTEST=fp-contract"
74   ];
76   doInstallCheck = true;
77   installCheckTarget = "test";
79   passthru.tests = {
80     inherit
81       dvgrab
82       epeg
83       freeimage
84       gd
85       graphicsmagick
86       imagemagick
87       imlib2
88       jhead
89       libjxl
90       mjpegtools
91       opencv
92       vips;
93     inherit (python3.pkgs) pillow imread pyturbojpeg;
94   };
96   meta = with lib; {
97     homepage = "https://libjpeg-turbo.org/";
98     description = "A faster (using SIMD) libjpeg implementation";
99     license = licenses.ijg; # and some parts under other BSD-style licenses
100     maintainers = with maintainers; [ vcunat colemickens kamadorueda ];
101     platforms = platforms.all;
102   };