diff options
author | Henri Menke <henri@henrimenke.de> | 2024-01-09 16:58:38 +0100 |
---|---|---|
committer | Henri Menke <henri@henrimenke.de> | 2024-01-18 10:21:01 +0100 |
commit | 08a19db87f7f01950e1a171a20618d6625e9a97d (patch) | |
tree | f3fb2af40db2c00c5debaf66ae745ea8f437759e | |
parent | 1e0e75ae75b0aed7709ba1e768e52a33281fba66 (diff) |
pfft: init at 1.0.8-alpha
-rw-r--r-- | pkgs/by-name/pf/pfft/package.nix | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/pkgs/by-name/pf/pfft/package.nix b/pkgs/by-name/pf/pfft/package.nix new file mode 100644 index 0000000000000..7e91b7d288966 --- /dev/null +++ b/pkgs/by-name/pf/pfft/package.nix @@ -0,0 +1,52 @@ +{ autoreconfHook +, fetchFromGitHub +, fftwMpi +, lib +, llvmPackages +, mpi +, precision ? "double" +, stdenv +}: + +assert lib.elem precision [ "single" "double" "long-double" ]; + +let + fftw' = fftwMpi.override { inherit precision; }; +in +stdenv.mkDerivation (finalAttrs: { + pname = "pfft-${precision}"; + version = "1.0.8-alpha"; + + src = fetchFromGitHub { + owner = "mpip"; + repo = "pfft"; + rev = "v${finalAttrs.version}"; + hash = "sha256-T5nPlkPKjYYRCuT1tSzXNJTPs/o6zwJMv9lPCWOwabw="; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ autoreconfHook ]; + + preConfigure = '' + export FCFLAGS="-I${lib.getDev fftw'}/include" + ''; + + configureFlags = [ + "--enable-portable-binary" + ] ++ lib.optional (precision != "double") "--enable-${precision}"; + + buildInputs = lib.optional stdenv.cc.isClang llvmPackages.openmp; + + propagatedBuildInputs = [ fftw' mpi ]; + + doCheck = true; + + meta = { + description = "Parallel fast Fourier transforms"; + homepage = "https://www-user.tu-chemnitz.de/~potts/workgroup/pippig/software.php.en#pfft"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ hmenke ]; + platforms = lib.platforms.linux; + }; +}) |