chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / ki / kissfft / package.nix
blob03d0e7d04584a7e2fba45576469ecc6f40dee3f3
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   cmake,
6   ninja,
7   pkg-config,
8   fftw,
9   fftwFloat,
10   python3,
11   datatype ? "double",
12   libpng,
13   enableStatic ? stdenv.hostPlatform.isStatic,
14   enableOpenmp ? false,
15   llvmPackages,
18 stdenv.mkDerivation (finalAttrs: {
19   pname = "kissfft-${datatype}${lib.optionalString enableOpenmp "-openmp"}";
20   version = "131.1.0";
22   outputs = [
23     "bin"
24     "dev"
25     "out"
26   ];
28   src = fetchFromGitHub {
29     owner = "mborgerding";
30     repo = "kissfft";
31     rev = finalAttrs.version;
32     hash = "sha256-ukikTVnmKomKXTo6zc+PhpZzEkzXN2imFwZOYlfR3Pk=";
33   };
35   patches = [
36     # Fix FFTW dependency check
37     # https://github.com/mborgerding/kissfft/pull/95
38     ./fix-fftw-dependency-check.patch
39   ];
41   nativeBuildInputs = [
42     cmake
43     ninja
44     pkg-config
45   ];
47   buildInputs =
48     lib.optionals (datatype != "simd") [ libpng ]
49     # TODO: This may mismatch the LLVM version in the stdenv, see #79818.
50     ++ lib.optional (enableOpenmp && stdenv.cc.isClang) llvmPackages.openmp;
52   nativeCheckInputs = [ (python3.withPackages (ps: [ ps.numpy ])) ];
54   checkInputs = [ (if datatype == "float" then fftwFloat else fftw) ];
56   cmakeFlags = [
57     (lib.cmakeFeature "KISSFFT_DATATYPE" datatype)
58     (lib.cmakeBool "KISSFFT_STATIC" enableStatic)
59     # `test/testkiss.py` expects this…
60     (lib.cmakeFeature "KISSFFT_OPENMP" (if enableOpenmp then "ON" else "OFF"))
61   ];
63   # Required for `test/testcpp.c`.
64   env = {
65     NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin "-D__MATH_LONG_DOUBLE_CONSTANTS=1";
66   };
68   doCheck = true;
70   # https://bugs.llvm.org/show_bug.cgi?id=45034
71   postPatch =
72     lib.optionalString
73       (stdenv.hostPlatform.isLinux && stdenv.cc.isClang && lib.versionOlder stdenv.cc.version "10")
74       ''
75         substituteInPlace CMakeLists.txt \
76           --replace "-ffast-math" ""
77       '';
79   meta = {
80     description = "Mixed-radix Fast Fourier Transform based up on the KISS principle";
81     homepage = "https://github.com/mborgerding/kissfft";
82     license = lib.licenses.bsd3;
83     maintainers = [ ];
84     platforms = lib.platforms.all;
85   };