1{ stdenv
2, lib
3, fetchFromGitHub
4, cmake
5, lapack
6, which
7, gfortran
8, blas
9}:
10
11stdenv.mkDerivation (finalAttrs: {
12 pname = "qrupdate";
13 version = "1.1.5";
14
15 src = fetchFromGitHub {
16 owner = "mpimd-csc";
17 repo = "qrupdate-ng";
18 rev = "v${finalAttrs.version}";
19 hash = "sha256-dHxLPrN00wwozagY2JyfZkD3sKUD2+BcnbjNgZepzFg=";
20 };
21
22 cmakeFlags = assert (blas.isILP64 == lapack.isILP64); [
23 "-DCMAKE_Fortran_FLAGS=${toString ([
24 "-std=legacy"
25 ] ++ lib.optionals blas.isILP64 [
26 # If another application intends to use qrupdate compiled with blas with
27 # 64 bit support, it should add this to it's FFLAGS as well. See (e.g):
28 # https://savannah.gnu.org/bugs/?50339
29 "-fdefault-integer-8"
30 ])}"
31 ];
32
33 doCheck = true;
34
35 nativeBuildInputs = [
36 cmake
37 which
38 gfortran
39 ];
40 buildInputs = [
41 blas
42 lapack
43 ];
44
45 meta = with lib; {
46 description = "Library for fast updating of qr and cholesky decompositions";
47 homepage = "https://github.com/mpimd-csc/qrupdate-ng";
48 license = licenses.gpl3Plus;
49 maintainers = with maintainers; [ doronbehar ];
50 platforms = platforms.unix;
51 };
52})