Commit dc622dce authored by Alexander Kiselyov's avatar Alexander Kiselyov Committed by Emery Hemingway
Browse files

petsc: removed default unfree dependencies

parent 771c5644
Loading
Loading
Loading
Loading
+36 −43
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
  hdf5,
  metis,
  parmetis,
  withParmetis ? false,
  pkg-config,
  p4est,
  zlib, # propagated by p4est but required by petsc
@@ -36,7 +37,6 @@ stdenv.mkDerivation rec {
  };

  inherit mpiSupport;
  withp4est = petsc-withp4est;

  strictDeps = true;
  nativeBuildInputs = [
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
  buildInputs = [
    blas
    lapack
  ] ++ lib.optional hdf5-support hdf5 ++ lib.optional withp4est p4est;
  ] ++ lib.optional hdf5-support hdf5 ++ lib.optional petsc-withp4est p4est ++ lib.optionals withParmetis [ metis parmetis ];

  prePatch = lib.optionalString stdenv.isDarwin ''
    substituteInPlace config/install.py \
@@ -60,49 +60,42 @@ stdenv.mkDerivation rec {
  # These messages contaminate test output, which makes the quicktest suite to fail. The patch adds filtering for these messages.
  patches = [ ./filter_mpi_warnings.patch ];

  preConfigure = ''
    patchShebangs ./lib/petsc/bin
    configureFlagsArray=(
      $configureFlagsArray
      ${
        if !mpiSupport then
          ''
            "--with-mpi=0"
          ''
        else
          ''
  configureFlags = [
    "--with-blas=1"
    "--with-lapack=1"
    "--with-scalar-type=${petsc-scalar-type}"
    "--with-precision=${petsc-precision}"
    "--with-mpi=${if mpiSupport then "1" else "0"}"
  ] ++ lib.optionals mpiSupport [
    "--CC=mpicc"
    "--with-cxx=mpicxx"
    "--with-fc=mpif90"
            "--with-mpi=1"
  ] ++ lib.optionals (mpiSupport && withParmetis) [
    "--with-metis=1"
    "--with-metis-dir=${metis}"
    "--with-parmetis=1"
    "--with-parmetis-dir=${parmetis}"
          ''
      }
      ${lib.optionalString withp4est ''
  ] ++ lib.optionals petsc-optimized [
    "--with-debugging=0"
    "COPTFLAGS=-O3"
    "FOPTFLAGS=-O3"
    "CXXOPTFLAGS=-O3"
    "CXXFLAGS=-O3"
  ];
  preConfigure = ''
    patchShebangs ./lib/petsc/bin
  '' + lib.optionalString petsc-withp4est ''
    configureFlagsArray+=(
      "--with-p4est=1"
      "--with-zlib-include=${zlib.dev}/include"
      "--with-zlib-lib=-L${zlib}/lib -lz"
      ''}
      ${lib.optionalString hdf5-support ''
    )
  '' + lib.optionalString hdf5-support ''
    configureFlagsArray+=(
      "--with-hdf5=1"
      "--with-hdf5-fortran-bindings=1"
        "--with-hdf5-lib=-L${hdf5}/lib -lhdf5"
      "--with-hdf5-include=${hdf5.dev}/include"
      ''}
      "--with-blas=1"
      "--with-lapack=1"
      "--with-scalar-type=${petsc-scalar-type}"
      "--with-precision=${petsc-precision}"
      ${lib.optionalString petsc-optimized ''
        "--with-debugging=0"
        COPTFLAGS='-O3'
        FOPTFLAGS='-O3'
        CXXOPTFLAGS='-O3'
        CXXFLAGS='-O3'
      ''}
      "--with-hdf5-lib=-L${hdf5}/lib -lhdf5"
    )
  '';