Merge pull request #270016 from a-n-n-a-l-e-e/cvxopt-LP64-darwin

python311Packages.cvxopt: use LP64 blas on darwin; fix build
This commit is contained in:
Emily Trau 2023-12-01 18:49:25 +11:00 committed by GitHub
commit c27bf65a6f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,9 +4,8 @@
, fetchPypi
, isPyPy
, python
, openblas
, blas
, lapack # build segfaults with 64-bit blas
, lapack
, suitesparse
, unittestCheckHook
, glpk ? null
@ -30,38 +29,29 @@ buildPythonPackage rec {
hash = "sha256-NGH6QsGyJAuk2h2YXKc1A5FBV/xMd0FzJ+1tfYWs2+Y=";
};
buildInputs = (if stdenv.isDarwin then [ openblas ] else [ blas lapack ]);
doCheck = !stdenv.isDarwin;
buildInputs = [ blas lapack ];
# similar to Gsl, glpk, fftw there is also a dsdp interface
# but dsdp is not yet packaged in nixpkgs
preConfigure = (if stdenv.isDarwin then
''
export CVXOPT_BLAS_LIB=openblas
export CVXOPT_LAPACK_LIB=openblas
''
else
''
export CVXOPT_BLAS_LIB=blas
export CVXOPT_LAPACK_LIB=lapack
'') +
''
export CVXOPT_BUILD_DSDP=0
export CVXOPT_SUITESPARSE_LIB_DIR=${lib.getLib suitesparse}/lib
export CVXOPT_SUITESPARSE_INC_DIR=${lib.getDev suitesparse}/include
'' + lib.optionalString withGsl ''
export CVXOPT_BUILD_GSL=1
export CVXOPT_GSL_LIB_DIR=${lib.getLib gsl}/lib
export CVXOPT_GSL_INC_DIR=${lib.getDev gsl}/include
'' + lib.optionalString withGlpk ''
export CVXOPT_BUILD_GLPK=1
export CVXOPT_GLPK_LIB_DIR=${lib.getLib glpk}/lib
export CVXOPT_GLPK_INC_DIR=${lib.getDev glpk}/include
'' + lib.optionalString withFftw ''
export CVXOPT_BUILD_FFTW=1
export CVXOPT_FFTW_LIB_DIR=${lib.getLib fftw}/lib
export CVXOPT_FFTW_INC_DIR=${lib.getDev fftw}/include
'';
env = {
CVXOPT_BLAS_LIB = "blas";
CVXOPT_LAPACK_LIB = "lapack";
CVXOPT_BUILD_DSDP = "0";
CVXOPT_SUITESPARSE_LIB_DIR = "${lib.getLib suitesparse}/lib";
CVXOPT_SUITESPARSE_INC_DIR = "${lib.getDev suitesparse}/include";
} // lib.optionalAttrs withGsl {
CVXOPT_BUILD_GSL = "1";
CVXOPT_GSL_LIB_DIR= "${lib.getLib gsl}/lib";
CVXOPT_GSL_INC_DIR= "${lib.getDev gsl}/include";
} // lib.optionalAttrs withGlpk {
CVXOPT_BUILD_GLPK = "1";
CVXOPT_GLPK_LIB_DIR = "${lib.getLib glpk}/lib";
CVXOPT_GLPK_INC_DIR = "${lib.getDev glpk}/include";
} // lib.optionalAttrs withFftw {
CVXOPT_BUILD_FFTW = "1";
CVXOPT_FFTW_LIB_DIR = "${lib.getLib fftw}/lib";
CVXOPT_FFTW_INC_DIR = "${lib.getDev fftw}/include";
};
nativeCheckInputs = [ unittestCheckHook ];