aboutsummaryrefslogtreecommitdiff
path: root/pkgs/development/libraries/sundials
diff options
context:
space:
mode:
authorDoron Behar <doron.behar@gmail.com>2020-02-11 22:42:33 +0200
committerDoron Behar <doron.behar@gmail.com>2020-02-22 12:32:23 +0200
commit749afca8dcf424aad3dfd22ec5b904e94609accf (patch)
tree86ef9059e0a18fc256f7ad436219a8b697fcdb92 /pkgs/development/libraries/sundials
parentea79a830dcf9c0059656da7f52835d2663d5c436 (diff)
sundials: Add version 2.7.0 as sundials_2
Diffstat (limited to 'pkgs/development/libraries/sundials')
-rw-r--r--pkgs/development/libraries/sundials/2.x.nix61
1 files changed, 61 insertions, 0 deletions
diff --git a/pkgs/development/libraries/sundials/2.x.nix b/pkgs/development/libraries/sundials/2.x.nix
new file mode 100644
index 000000000000..12840b769403
--- /dev/null
+++ b/pkgs/development/libraries/sundials/2.x.nix
@@ -0,0 +1,61 @@
+{ stdenv
+, cmake
+, fetchurl
+, python
+# GNU Octave needs KLU for ODE solvers
+, suitesparse
+, liblapack
+, gfortran
+, lapackSupport ? true }:
+
+let liblapackShared = liblapack.override {
+ shared = true;
+};
+
+in stdenv.mkDerivation rec {
+ pname = "sundials";
+ version = "2.7.0";
+
+ buildInputs = [ python ] ++ stdenv.lib.optionals (lapackSupport) [
+ gfortran
+ suitesparse
+ ];
+ nativeBuildInputs = [ cmake ];
+
+ src = fetchurl {
+ url = "https://computation.llnl.gov/projects/${pname}/download/${pname}-${version}.tar.gz";
+ sha256 = "01513g0j7nr3rh7hqjld6mw0mcx5j9z9y87bwjc16w2x2z3wm7yk";
+ };
+
+ patches = [
+ (fetchurl {
+ # https://github.com/LLNL/sundials/pull/19
+ url = "https://github.com/LLNL/sundials/commit/1350421eab6c5ab479de5eccf6af2dcad1eddf30.patch";
+ sha256 = "0g67lixp9m85fqpb9rzz1hl1z8ibdg0ldwq5z6flj5zl8a7cw52l";
+ })
+ ];
+
+ cmakeFlags = [
+ "-DEXAMPLES_INSTALL_PATH=${placeholder "out"}/share/examples"
+ ] ++ stdenv.lib.optionals (lapackSupport) [
+ "-DSUNDIALS_INDEX_TYPE=int32_t"
+ # GNU Octave needs KLU for ODE solvers
+ "-DKLU_ENABLE=ON"
+ "-DKLU_INCLUDE_DIR=${suitesparse}/include"
+ "-DKLU_LIBRARY_DIR=${suitesparse}/lib"
+ "-DLAPACK_ENABLE=ON"
+ "-DLAPACK_LIBRARIES=${liblapackShared}/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary};${liblapackShared}/lib/libblas${stdenv.hostPlatform.extensions.sharedLibrary}"
+ ];
+
+ # flaky tests, and patch in https://github.com/LLNL/sundials/pull/21 doesn't apply cleanly for sundials_3
+ doCheck = false;
+ checkPhase = "make test";
+
+ meta = with stdenv.lib; {
+ description = "Suite of nonlinear differential/algebraic equation solvers";
+ homepage = https://computation.llnl.gov/projects/sundials;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ flokli idontgetoutmuch ];
+ license = licenses.bsd3;
+ };
+}