1{ lib
2, stdenv
3, buildPythonPackage
4, substituteAll
5, fetchPypi
6, cython
7, fontconfig
8, freetype-py
9, hsluv
10, kiwisolver
11, libGL
12, numpy
13, setuptools-scm
14, setuptools-scm-git-archive
15}:
16
17buildPythonPackage rec {
18 pname = "vispy";
19 version = "0.12.0";
20
21 src = fetchPypi {
22 inherit pname version;
23 sha256 = "sha256-CtSg/pAtOhhiuS6yE3ogzF0llceMQTF12ShXIi9GMD0=";
24 };
25
26 patches = [
27 (substituteAll {
28 src = ./library-paths.patch;
29 fontconfig = "${fontconfig.lib}/lib/libfontconfig${stdenv.hostPlatform.extensions.sharedLibrary}";
30 gl = "${libGL.out}/lib/libGL${stdenv.hostPlatform.extensions.sharedLibrary}";
31 })
32 ];
33
34 nativeBuildInputs = [
35 cython
36 setuptools-scm
37 setuptools-scm-git-archive
38 ];
39
40 buildInputs = [
41 libGL
42 ];
43
44 propagatedBuildInputs = [
45 fontconfig
46 freetype-py
47 hsluv
48 kiwisolver
49 numpy
50 ];
51
52 doCheck = false; # otherwise runs OSX code on linux.
53
54 pythonImportsCheck = [
55 "vispy"
56 "vispy.color"
57 "vispy.geometry"
58 "vispy.gloo"
59 "vispy.glsl"
60 "vispy.io"
61 "vispy.plot"
62 "vispy.scene"
63 "vispy.util"
64 "vispy.visuals"
65 ];
66
67 meta = with lib; {
68 homepage = "https://vispy.org/index.html";
69 description = "Interactive scientific visualization in Python";
70 license = licenses.bsd3;
71 maintainers = with maintainers; [ goertzenator ];
72 };
73}