1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 setuptools,
8
9 # dependencies
10 moderngl,
11 numpy,
12 pillow,
13 pyglet,
14 pyglm,
15
16 # optional-dependencies
17 trimesh,
18 scipy,
19 glfw,
20 pygame,
21 pysdl2,
22 pyside2,
23 pyqt5,
24 reportlab,
25 av,
26
27 mesa,
28}:
29
30buildPythonPackage rec {
31 pname = "moderngl-window";
32 version = "3.1.1";
33 pyproject = true;
34
35 src = fetchFromGitHub {
36 owner = "moderngl";
37 repo = "moderngl_window";
38 tag = version;
39 hash = "sha256-pElSwzNbZlZT8imK1UsLy2TyvS8TEM7hsVqLxEK1tbg=";
40 };
41
42 build-system = [
43 setuptools
44 ];
45
46 dependencies = [
47 moderngl
48 numpy
49 pillow
50 pyglet
51 pyglm
52 ];
53
54 optional-dependencies = {
55 trimesh = [
56 trimesh
57 scipy
58 ];
59 glfw = [ glfw ];
60 pygame = [ pygame ];
61 PySDL2 = [ pysdl2 ];
62 PySide2 = [ pyside2 ];
63 pyqt5 = [ pyqt5 ];
64 pdf = [ reportlab ];
65 av = [ av ];
66 };
67
68 # Tests need a display to run.
69 doCheck = false;
70
71 pythonImportsCheck = [ "moderngl_window" ];
72
73 meta = {
74 description = "Cross platform helper library for ModernGL making window creation and resource loading simple";
75 homepage = "https://github.com/moderngl/moderngl-window";
76 changelog = "https://github.com/moderngl/moderngl-window/blob/${version}/CHANGELOG.md";
77 license = lib.licenses.mit;
78 maintainers = with lib.maintainers; [ c0deaddict ];
79 inherit (mesa.meta) platforms;
80 };
81}