1{
2 lib,
3 fetchPypi,
4 buildPythonPackage,
5 gmp,
6 mpfr,
7 libmpc,
8 ppl,
9 cython,
10 cysignals,
11 gmpy2,
12 sphinx,
13
14 # Reverse dependency
15 sage,
16}:
17
18buildPythonPackage rec {
19 pname = "pplpy";
20 version = "0.8.10";
21 format = "setuptools";
22
23 src = fetchPypi {
24 inherit pname version;
25 hash = "sha256-1CohbIKRTc9NfAAN68mLsza4+D4Ca6XZUszNn4B07/0=";
26 };
27
28 buildInputs = [
29 gmp
30 mpfr
31 libmpc
32 ppl
33 ];
34
35 nativeBuildInputs = [
36 sphinx # docbuild, called by make
37 ];
38
39 propagatedBuildInputs = [
40 cython
41 cysignals
42 gmpy2
43 ];
44
45 outputs = [
46 "out"
47 "doc"
48 ];
49
50 postBuild = ''
51 # Find the build result in order to put it into PYTHONPATH. The doc
52 # build needs to import pplpy.
53 build_result="$PWD/$( find build/ -type d -name 'lib.*' | head -n1 )"
54
55 echo "Building documentation"
56 PYTHONPATH="$build_result:$PYTHONPATH" make -C docs html
57 '';
58
59 postInstall = ''
60 mkdir -p "$doc/share/doc"
61 mv docs/build/html "$doc/share/doc/pplpy"
62 '';
63
64 passthru.tests = {
65 inherit sage;
66 };
67
68 meta = with lib; {
69 description = "Python wrapper for ppl";
70 homepage = "https://gitlab.com/videlec/pplpy";
71 teams = [ teams.sage ];
72 license = licenses.gpl3;
73 };
74}