19d077a157
Introduce a `pagmo2WithPython` which overrides the pagmo2 expression and enables the pygmo build. Then hand it over to `buildPythonPackage` by making it the src to produce a usable package.
54 lines
1015 B
Nix
54 lines
1015 B
Nix
{ lib
|
|
, fetchFromGitHub
|
|
, buildPythonPackage
|
|
, eigen
|
|
, nlopt
|
|
, ipopt
|
|
, boost
|
|
, pagmo2
|
|
, numpy
|
|
, cloudpickle
|
|
, ipyparallel
|
|
, numba
|
|
, python
|
|
}:
|
|
|
|
let
|
|
propagatedBuildInputs = [ numpy cloudpickle ipyparallel numba ];
|
|
|
|
pagmo2WithPython = pagmo2.overrideAttrs (oldAttrs: {
|
|
cmakeFlags = oldAttrs.cmakeFlags ++ [
|
|
"-DPAGMO_BUILD_PYGMO=yes"
|
|
"-DPAGMO_BUILD_PAGMO=no"
|
|
"-DPagmo_DIR=${pagmo2}"
|
|
];
|
|
buildInputs = [ eigen nlopt ipopt boost pagmo2 ] ++ propagatedBuildInputs;
|
|
postInstall = ''
|
|
mv wheel $out
|
|
'';
|
|
});
|
|
|
|
in buildPythonPackage rec {
|
|
pname = "pygmo";
|
|
version = pagmo2WithPython.version;
|
|
|
|
inherit propagatedBuildInputs;
|
|
|
|
src = pagmo2WithPython;
|
|
|
|
preBuild = ''
|
|
mv ${python.sitePackages}/pygmo wheel
|
|
cd wheel
|
|
'';
|
|
|
|
# dont do tests
|
|
doCheck = false;
|
|
|
|
meta = with lib; {
|
|
description = "Parallel optimisation for Python";
|
|
homepage = https://esa.github.io/pagmo2/;
|
|
license = licenses.gpl3Plus;
|
|
maintainers = [ maintainers.costrouc ];
|
|
};
|
|
}
|