1{ lib
2, fetchFromGitHub
3, buildPythonPackage
4, cmake
5, eigen
6, nlopt
7, ipopt
8, boost
9, pagmo2
10, numpy
11, cloudpickle
12, ipyparallel
13, numba
14}:
15
16buildPythonPackage rec {
17 pname = "pygmo";
18 version = "2.8";
19
20 src = fetchFromGitHub {
21 owner = "esa";
22 repo = "pagmo2";
23 rev = "v${version}";
24 sha256 = "1xwxamcn3fkwr62jn6bkanrwy0cvsksf75hfwx4fvl56awnbz41z";
25 };
26
27 buildInputs = [ cmake eigen nlopt ipopt boost pagmo2 ];
28 propagatedBuildInputs = [ numpy cloudpickle ipyparallel numba ];
29
30 preBuild = ''
31 cp -v -r $src/* .
32 cmake -DCMAKE_INSTALL_PREFIX=$out -DPAGMO_BUILD_TESTS=no -DCMAKE_SYSTEM_NAME=Linux -DPagmo_DIR=${pagmo2} -DPAGMO_BUILD_PYGMO=yes -DPAGMO_BUILD_PAGMO=no -DPAGMO_WITH_EIGEN3=yes -DPAGMO_WITH_NLOPT=yes -DNLOPT_LIBRARY=${nlopt}/lib/libnlopt_cxx.so -DPAGMO_WITH_IPOPT=yes -DIPOPT=${ipopt}
33
34 make install
35 mv $out/lib/python*/site-packages/pygmo wheel
36 cd wheel
37 '';
38
39 # dont do tests
40 doCheck = false;
41
42 meta = {
43 description = "Parallel optimisation for Python";
44 homepage = https://esa.github.io/pagmo2/;
45 license = lib.licenses.gpl3Plus;
46 maintainers = with lib.maintainers; [ costrouc ];
47 };
48}