aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoron Behar <doron.behar@gmail.com>2020-09-23 00:41:47 +0300
committerDoron Behar <doron.behar@gmail.com>2020-12-05 12:26:02 +0200
commit16a01272ee2a9b6c0d3af0b356ee869912cfb63c (patch)
tree59ea3d302a74064506578a890997259b76583de0
parentaa27e2f238da19396e8a35406c6081bb0357db76 (diff)
sundials: assert that lapack and blas are compatible
Instead of asserting that lapack and blas are both not using 64 bit index size, only make sure they are index size compatible. Plus, do it when evaluating buildInputs, per: https://github.com/NixOS/nixpkgs/pull/94892#discussion_r471110250 Don't pass SUNDIALS_INDEX_TYPE=int32_t if blas && lapack are compiled with 64 bit index size. Bonus: Use checkTarget and not an overrided checkPhase, per: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/explicit-phases.md
-rw-r--r--pkgs/development/libraries/sundials/default.nix27
1 files changed, 17 insertions, 10 deletions
diff --git a/pkgs/development/libraries/sundials/default.nix b/pkgs/development/libraries/sundials/default.nix
index e1b4d375282e..2e1fd527e9a7 100644
--- a/pkgs/development/libraries/sundials/default.nix
+++ b/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";