about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/sundials/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/sundials/default.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/sundials/default.nix27
1 files changed, 17 insertions, 10 deletions
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";