Commit c3d9d9a3 authored by Doron Behar's avatar Doron Behar
Browse files

qrupdate: 1.1.2 -> 1.1.5

Switch to a maintained fork.
parent 2e8194d4
Loading
Loading
Loading
Loading
+29 −33
Original line number Diff line number Diff line
{ stdenv
, lib
, fetchurl
, fetchFromGitHub
, gfortran
, blas
, cmake
, lapack
, which
}:

stdenv.mkDerivation rec {
  pname = "qrupdate";
  version = "1.1.2";
  src = fetchurl {
    url = "mirror://sourceforge/qrupdate/${pname}-${version}.tar.gz";
    sha256 = "024f601685phcm1pg8lhif3lpy5j9j0k6n0r46743g4fvh8wg8g2";
  version = "1.1.5";

  src = fetchFromGitHub {
    owner = "mpimd-csc";
    repo = "qrupdate-ng";
    rev = "v${version}";
    hash = "sha256-dHxLPrN00wwozagY2JyfZkD3sKUD2+BcnbjNgZepzFg=";
  };

  preBuild =
    # Check that blas and lapack are compatible
    assert (blas.isILP64 == lapack.isILP64);
  # We don't have structuredAttrs yet implemented, and we need to use space
  # seprated values in makeFlags, so only this works.
  ''
    makeFlagsArray+=(
      "LAPACK=-L${lapack}/lib -llapack"
      "BLAS=-L${blas}/lib -lblas"
      "PREFIX=${placeholder "out"}"
      "FFLAGS=${toString ([
  cmakeFlags = assert (blas.isILP64 == lapack.isILP64); [
    "-DCMAKE_Fortran_FLAGS=${toString ([
      "-std=legacy"
    ] ++ lib.optionals blas.isILP64 [
      # If another application intends to use qrupdate compiled with blas with
@@ -33,22 +28,23 @@ stdenv.mkDerivation rec {
      # https://savannah.gnu.org/bugs/?50339
      "-fdefault-integer-8"
    ])}"
    )
  '';
  ];

  doCheck = true;

  checkTarget = "test";

  buildFlags = [ "lib" "solib" ];

  installTargets = lib.optionals stdenv.isDarwin [ "install-staticlib" "install-shlib" ];

  nativeBuildInputs = [ which gfortran ];
  nativeBuildInputs = [
    cmake
    which
    gfortran
  ];
  buildInputs = [
    blas
    lapack
  ];

  meta = with lib; {
    description = "Library for fast updating of qr and cholesky decompositions";
    homepage = "https://sourceforge.net/projects/qrupdate/";
    homepage = "https://github.com/mpimd-csc/qrupdate-ng";
    license = licenses.gpl3Plus;
    maintainers = with maintainers; [ doronbehar ];
    platforms = platforms.unix;