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) && (!lapack.isILP64);
assert (blas.isILP64 == arpack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "octopus"; pname = "octopus";

View File

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

View File

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

View File

@ -1,5 +1,13 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake { 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 { stdenv.mkDerivation rec {
pname = "arpack"; pname = "arpack";
@ -27,13 +35,16 @@ stdenv.mkDerivation rec {
blas blas
lapack lapack
eigen eigen
]; ] ++ lib.optional useMpi mpi;
checkInputs = lib.optional useMpi openssh;
doCheck = true; doCheck = true;
cmakeFlags = [ cmakeFlags = [
"-DBUILD_SHARED_LIBS=ON" "-DBUILD_SHARED_LIBS=ON"
"-DINTERFACE64=${if blas.isILP64 then "1" else "0"}" "-DINTERFACE64=${if blas.isILP64 then "1" else "0"}"
"-DMPI=${if useMpi then "ON" else "OFF"}"
]; ];
preCheck = '' preCheck = ''
@ -45,6 +56,8 @@ stdenv.mkDerivation rec {
install_name_tool -change libblas.dylib ${blas}/lib/libblas.dylib $out/lib/libarpack.dylib install_name_tool -change libblas.dylib ${blas}/lib/libblas.dylib $out/lib/libarpack.dylib
''; '';
passthru = { inherit (blas) isILP64; };
meta = { meta = {
homepage = "https://github.com/opencollab/arpack-ng"; homepage = "https://github.com/opencollab/arpack-ng";
description = '' description = ''