about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/sundials
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-01-15 10:30:44 +0000
committerAlyssa Ross <hi@alyssa.is>2021-01-15 10:30:44 +0000
commite0794be8a0d11e90461e5a9c85012a36b93ec976 (patch)
treeefd9cbc55ea3322867bf601c4d536758a3dd5fcc /nixpkgs/pkgs/development/libraries/sundials
parent3538874082ded7647b1ccec0343c7c1e882cfef3 (diff)
parent1a57d96edd156958b12782e8c8b6a374142a7248 (diff)
downloadnixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.gz
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.bz2
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.lz
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.xz
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.zst
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.zip
Merge commit '1a57d96edd156958b12782e8c8b6a374142a7248'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/sundials')
-rw-r--r--nixpkgs/pkgs/development/libraries/sundials/2.x.nix59
-rw-r--r--nixpkgs/pkgs/development/libraries/sundials/default.nix27
2 files changed, 17 insertions, 69 deletions
diff --git a/nixpkgs/pkgs/development/libraries/sundials/2.x.nix b/nixpkgs/pkgs/development/libraries/sundials/2.x.nix
deleted file mode 100644
index ae22f0be1797..000000000000
--- a/nixpkgs/pkgs/development/libraries/sundials/2.x.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ stdenv
-, cmake
-, fetchurl
-, python
-# GNU Octave needs KLU for ODE solvers
-, suitesparse
-, blas, lapack
-, gfortran
-, lapackSupport ? true }:
-
-assert (!blas.isILP64) && (!lapack.isILP64);
-
-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=${lapack}/lib/lapack${stdenv.hostPlatform.extensions.sharedLibrary};${blas}/lib/blas${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; [ idontgetoutmuch ];
-    license     = licenses.bsd3;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/sundials/default.nix b/nixpkgs/pkgs/development/libraries/sundials/default.nix
index e1b4d375282e..2e1fd527e9a7 100644
--- a/nixpkgs/pkgs/development/libraries/sundials/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sundials/default.nix
@@ -7,9 +7,8 @@
 , gfortran
 , suitesparse
 , lapackSupport ? true
-, kluSupport ? true }:
-
-assert (!blas.isILP64) && (!lapack.isILP64);
+, kluSupport ? true
+}:
 
 stdenv.mkDerivation rec {
   pname = "sundials";
@@ -17,11 +16,14 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     python
-  ] ++ stdenv.lib.optionals (lapackSupport) [
-    gfortran
-    blas
-    lapack
   ]
+    ++ stdenv.lib.optionals (lapackSupport)
+    # Check that the same index size is used for both libraries
+    (assert (blas.isILP64 == lapack.isILP64); [
+      gfortran
+      blas
+      lapack
+    ])
   # KLU support is based on Suitesparse.
   # It is tested upstream according to the section 1.1.4 of
   # [INSTALL_GUIDE.pdf](https://raw.githubusercontent.com/LLNL/sundials/master/INSTALL_GUIDE.pdf)
@@ -47,17 +49,22 @@ stdenv.mkDerivation rec {
   cmakeFlags = [
     "-DEXAMPLES_INSTALL_PATH=${placeholder "out"}/share/examples"
   ] ++ stdenv.lib.optionals (lapackSupport) [
-    "-DSUNDIALS_INDEX_TYPE=int32_t"
     "-DLAPACK_ENABLE=ON"
     "-DLAPACK_LIBRARIES=${lapack}/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}"
   ] ++ stdenv.lib.optionals (kluSupport) [
     "-DKLU_ENABLE=ON"
     "-DKLU_INCLUDE_DIR=${suitesparse.dev}/include"
     "-DKLU_LIBRARY_DIR=${suitesparse}/lib"
-  ];
+  ] ++ stdenv.lib.optionals (lapackSupport && !lapack.isILP64) [
+    # Use the correct index type according to lapack which is supposed to be
+    # the same index type compatible with blas, thanks to the assertion of
+    # buildInputs
+    "-DSUNDIALS_INDEX_TYPE=int32_t"
+  ]
+  ;
 
   doCheck = true;
-  checkPhase = "make test";
+  checkTarget = "test";
 
   meta = with stdenv.lib; {
     description = "Suite of nonlinear differential/algebraic equation solvers";