1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 fontconfig,
7
8 # nativeBuildInputs
9 cmake,
10 doxygen,
11 graphviz,
12 scipy,
13
14 # buildInputs
15 boost,
16
17 # propagatedBuildInputs
18 eigen,
19 jrl-cmakemodules,
20 numpy,
21
22}:
23
24buildPythonPackage rec {
25 pname = "eigenpy";
26 version = "3.12.0";
27 pyproject = false; # Built with cmake
28
29 src = fetchFromGitHub {
30 owner = "stack-of-tasks";
31 repo = "eigenpy";
32 tag = "v${version}";
33 hash = "sha256-U4uL0knGJFpD14Gc32lgTZlw7QlXHMEqTnp0bmHJRU8=";
34 };
35
36 outputs = [
37 "dev"
38 "doc"
39 "out"
40 ];
41
42 cmakeFlags = [
43 "-DINSTALL_DOCUMENTATION=ON"
44 "-DBUILD_TESTING=ON"
45 "-DBUILD_TESTING_SCIPY=ON"
46 ];
47
48 strictDeps = true;
49
50 # Fontconfig error: No writable cache directories
51 preBuild = "export XDG_CACHE_HOME=$(mktemp -d)";
52
53 # Fontconfig error: Cannot load default config file: No such file: (null)
54 env.FONTCONFIG_FILE = "${fontconfig.out}/etc/fonts/fonts.conf";
55
56 nativeBuildInputs = [
57 cmake
58 doxygen
59 graphviz
60 scipy
61 ];
62
63 buildInputs = [ boost ];
64
65 propagatedBuildInputs = [
66 eigen
67 jrl-cmakemodules
68 numpy
69 ];
70
71 preInstallCheck = "make test";
72
73 pythonImportsCheck = [ "eigenpy" ];
74
75 meta = with lib; {
76 description = "Bindings between Numpy and Eigen using Boost.Python";
77 homepage = "https://github.com/stack-of-tasks/eigenpy";
78 changelog = "https://github.com/stack-of-tasks/eigenpy/releases/tag/${src.tag}";
79 license = licenses.bsd2;
80 maintainers = with maintainers; [
81 nim65s
82 wegank
83 ];
84 platforms = platforms.unix;
85 };
86}