diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/science/math/yacas/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/science/math/yacas/default.nix | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/science/math/yacas/default.nix b/nixpkgs/pkgs/applications/science/math/yacas/default.nix new file mode 100644 index 000000000000..7fa2fe1a6075 --- /dev/null +++ b/nixpkgs/pkgs/applications/science/math/yacas/default.nix @@ -0,0 +1,86 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, cmake +, perl +, enableGui ? false +, qtbase +, wrapQtAppsHook +, qtwebengine +, enableJupyter ? true +, boost +, jsoncpp +, openssl +, zmqpp +, enableJava ? false +, openjdk +, gtest +}: + +stdenv.mkDerivation rec { + pname = "yacas"; + version = "1.9.1"; + + src = fetchFromGitHub { + owner = "grzegorzmazur"; + repo = "yacas"; + rev = "v${version}"; + sha256 = "0dqgqvsb6ggr8jb3ngf0jwfkn6xwj2knhmvqyzx3amc74yd3ckqx"; + }; + + hardeningDisable = [ "format" ]; + + cmakeFlags = [ + "-DENABLE_CYACAS_GUI=${if enableGui then "ON" else "OFF"}" + "-DENABLE_CYACAS_KERNEL=${if enableJupyter then "ON" else "OFF"}" + "-DENABLE_JYACAS=${if enableJava then "ON" else "OFF"}" + "-DENABLE_CYACAS_UNIT_TESTS=ON" + ]; + patches = [ + # upstream issue: https://github.com/grzegorzmazur/yacas/issues/340 + # Upstream patch which doesn't apply on 1.9.1 is: + # https://github.com/grzegorzmazur/yacas/pull/342 + ./jsoncpp-fix-include.patch + # Fixes testing - https://github.com/grzegorzmazur/yacas/issues/339 + # PR: https://github.com/grzegorzmazur/yacas/pull/343 + (fetchpatch { + url = "https://github.com/grzegorzmazur/yacas/commit/8bc22d517ecfdde3ac94800dc8506f5405564d48.patch"; + sha256 = "sha256-aPO5T8iYNkGtF8j12YxNJyUPJJPKrXje1DmfCPt317A="; + }) + ]; + preCheck = '' + patchShebangs ../tests/test-yacas + ''; + nativeCheckInputs = [ + gtest + ]; + doCheck = true; + + nativeBuildInputs = [ + cmake + # Perl is only for the documentation + perl + ] ++ lib.optionals enableJava [ + openjdk + ]; + buildInputs = [ + ] ++ lib.optionals enableGui [ + qtbase + wrapQtAppsHook + qtwebengine + ] ++ lib.optionals enableJupyter [ + boost + jsoncpp + openssl + zmqpp + ]; + + meta = { + description = "Easy to use, general purpose Computer Algebra System${lib.optionalString enableGui ", built with GUI."}"; + homepage = "http://www.yacas.org/"; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ viric ]; + platforms = with lib.platforms; linux; + }; +} |