Merge pull request #199331 from markuskowa/fix-arpack

arpack: fix ILP64 checks and MPI support
This commit is contained in:
markuskowa 2022-11-05 12:37:35 +01:00 committed by GitHub
commit e2cf8ac376
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 24 additions and 2 deletions

View File

@ -8,6 +8,7 @@
}:
assert (!blas.isILP64) && (!lapack.isILP64);
assert (blas.isILP64 == arpack.isILP64);
stdenv.mkDerivation rec {
pname = "octopus";

View File

@ -1,5 +1,9 @@
{ lib, stdenv, fetchurl, gfortran, arpack, spooles, blas, lapack }:
assert (blas.isILP64 == lapack.isILP64 &&
blas.isILP64 == arpack.isILP64 &&
!blas.isILP64);
stdenv.mkDerivation rec {
pname = "calculix";
version = "2.19";

View File

@ -21,6 +21,10 @@
, xmlto
}:
assert (blas.isILP64 == lapack.isILP64 &&
blas.isILP64 == arpack.isILP64 &&
!blas.isILP64);
stdenv.mkDerivation rec {
pname = "igraph";
version = "0.9.10";

View File

@ -1,5 +1,13 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake
, gfortran, blas, lapack, eigen }:
, gfortran, blas, lapack, eigen
, useMpi ? false
, mpi
, openssh
}:
# MPI version can only be built with LP64 interface.
# See https://github.com/opencollab/arpack-ng#readme
assert useMpi -> !blas.isILP64;
stdenv.mkDerivation rec {
pname = "arpack";
@ -27,13 +35,16 @@ stdenv.mkDerivation rec {
blas
lapack
eigen
];
] ++ lib.optional useMpi mpi;
checkInputs = lib.optional useMpi openssh;
doCheck = true;
cmakeFlags = [
"-DBUILD_SHARED_LIBS=ON"
"-DINTERFACE64=${if blas.isILP64 then "1" else "0"}"
"-DMPI=${if useMpi then "ON" else "OFF"}"
];
preCheck = ''
@ -45,6 +56,8 @@ stdenv.mkDerivation rec {
install_name_tool -change libblas.dylib ${blas}/lib/libblas.dylib $out/lib/libarpack.dylib
'';
passthru = { inherit (blas) isILP64; };
meta = {
homepage = "https://github.com/opencollab/arpack-ng";
description = ''