diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/sundials/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/sundials/default.nix | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/nixpkgs/pkgs/development/libraries/sundials/default.nix b/nixpkgs/pkgs/development/libraries/sundials/default.nix index 46cf437d72ca..e1b4d375282e 100644 --- a/nixpkgs/pkgs/development/libraries/sundials/default.nix +++ b/nixpkgs/pkgs/development/libraries/sundials/default.nix @@ -5,20 +5,35 @@ , blas , lapack , gfortran -, lapackSupport ? true }: +, suitesparse +, lapackSupport ? true +, kluSupport ? true }: assert (!blas.isILP64) && (!lapack.isILP64); stdenv.mkDerivation rec { pname = "sundials"; - version = "5.1.0"; + version = "5.3.0"; + + buildInputs = [ + python + ] ++ stdenv.lib.optionals (lapackSupport) [ + 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) + ++ stdenv.lib.optionals (kluSupport) [ + suitesparse + ]; - buildInputs = [ python ] ++ stdenv.lib.optionals (lapackSupport) [ gfortran blas lapack ]; nativeBuildInputs = [ cmake ]; src = fetchurl { url = "https://computation.llnl.gov/projects/${pname}/download/${pname}-${version}.tar.gz"; - sha256 = "08cvzmbr2qc09ayq4f5j07lw97hl06q4dl26vh4kh822mm7x28pv"; + sha256 = "19xwi7pz35s2nqgldm6r0jl2k0bs36zhbpnmmzc56s1n3bhzgpw8"; }; patches = [ @@ -35,6 +50,10 @@ stdenv.mkDerivation rec { "-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" ]; doCheck = true; @@ -44,7 +63,7 @@ stdenv.mkDerivation rec { description = "Suite of nonlinear differential/algebraic equation solvers"; homepage = "https://computation.llnl.gov/projects/sundials"; platforms = platforms.all; - maintainers = with maintainers; [ flokli idontgetoutmuch ]; + maintainers = with maintainers; [ idontgetoutmuch ]; license = licenses.bsd3; }; } |