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