diff options
Diffstat (limited to 'pkgs/applications/science/electronics/flopoco/default.nix')
-rw-r--r-- | pkgs/applications/science/electronics/flopoco/default.nix | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/pkgs/applications/science/electronics/flopoco/default.nix b/pkgs/applications/science/electronics/flopoco/default.nix new file mode 100644 index 0000000000000..7ce1087209e2c --- /dev/null +++ b/pkgs/applications/science/electronics/flopoco/default.nix @@ -0,0 +1,93 @@ +{ lib +, stdenv +, fetchFromGitLab +, fetchpatch +, cmake +, installShellFiles +, bison +, boost +, flex +, gmp +, libxml2 +, mpfi +, mpfr +, scalp +, sollya +, wcpg +}: + +stdenv.mkDerivation rec { + pname = "flopoco"; + version = "4.1.3"; + + src = fetchFromGitLab { + owner = pname; + repo = pname; + # flopoco-4.1.3 is not tagged on GitLab + rev = "67598298207c9f3261c35679c8a5966480c4343c"; + sha256 = "sha256-0jRjg4/qciqBcjsi6BTbKO4VJkcoEzpC98wFkUOIGbI="; + }; + + patches = [ + (fetchpatch { + name = "fix-clang-error-sin-cos.patch"; + url = "https://gitlab.com/flopoco/flopoco/-/commit/de3aa60ad19333952c176c2a2e51f12653ca736b.patch"; + postFetch = '' + substituteInPlace $out \ + --replace 'FixSinCosCORDIC.hpp' 'CordicSinCos.hpp' + ''; + sha256 = "sha256-BlamA/MZuuqqvGYto+jPeQPop6gwva0y394Odw8pdwg="; + }) + (fetchpatch { + name = "fix-clang-error-atan2.patch"; + url = "https://gitlab.com/flopoco/flopoco/-/commit/a3ffe2436c1b59ee0809b3772b74f2d43c6edb99.patch"; + sha256 = "sha256-dSYcufLHDL0p1V1ghmy6X6xse5f6mjUqckaVqLZnTaA="; + }) + ]; + + postPatch = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) '' + sed -i "s/-pg//g" {,src/Apps/TaMaDi/}CMakeLists.txt + ''; + + strictDeps = true; + + nativeBuildInputs = [ + bison + cmake + installShellFiles + ]; + + buildInputs = [ + boost + flex + gmp + libxml2 + mpfi + mpfr + scalp + sollya + wcpg + ]; + + postBuild = '' + ./flopoco BuildAutocomplete + ''; + + installPhase = '' + runHook preInstall + + install -Dm755 flopoco $out/bin/flopoco + cp bin* fp* ieee* longacc* $out/bin/ + installShellCompletion --bash flopoco_autocomplete + + runHook postInstall + ''; + + meta = with lib; { + description = "The FloPoCo arithmetic core generator"; + homepage = "https://flopoco.org/"; + license = licenses.unfree; + platforms = platforms.unix; + maintainers = with maintainers; [ wegank ]; + }; +} |