git: fc70b79b196e - main - graphics/py-moderngl: New port: ModernGL: High performance rendering for Python 3

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Fri, 20 Jan 2023 21:06:50 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=fc70b79b196e18ed131c728f2f138fe2c04d1d46

commit fc70b79b196e18ed131c728f2f138fe2c04d1d46
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-01-20 16:09:03 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-01-20 21:06:47 +0000

    graphics/py-moderngl: New port: ModernGL: High performance rendering for Python 3
---
 graphics/Makefile              |  1 +
 graphics/py-moderngl/Makefile  | 28 ++++++++++++++++++++++++++++
 graphics/py-moderngl/distinfo  |  3 +++
 graphics/py-moderngl/pkg-descr |  7 +++++++
 4 files changed, 39 insertions(+)

diff --git a/graphics/Makefile b/graphics/Makefile
index d01e41b1d6c0..d12b8c96d1ef 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -887,6 +887,7 @@
     SUBDIR += py-mcomix
     SUBDIR += py-mgwr
     SUBDIR += py-ming
+    SUBDIR += py-moderngl
     SUBDIR += py-momepy
     SUBDIR += py-mpl-interactions
     SUBDIR += py-mpl-scatter-density
diff --git a/graphics/py-moderngl/Makefile b/graphics/py-moderngl/Makefile
new file mode 100644
index 000000000000..ea2b34133fdd
--- /dev/null
+++ b/graphics/py-moderngl/Makefile
@@ -0,0 +1,28 @@
+PORTNAME=	moderngl
+DISTVERSION=	5.7.4
+CATEGORIES=	graphics
+#MASTER_SITES=	PYPI # no tests
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	ModernGL: High performance rendering for Python 3
+WWW=		https://moderngl.readthedocs.io/en/latest/
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}glcontext>=2.3.6<3:graphics/py-glcontext@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	pep517 autoplist pytest # testsuite SEGVs, see https://github.com/moderngl/moderngl/issues/547
+
+USE_GITHUB=	yes
+
+TEST_ENV=	${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+TEST_WRKSRC=	${WRKSRC}/tests
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/moderngl/mgl${PYTHON_EXT_SUFFIX}.so
+
+.include <bsd.port.mk>
diff --git a/graphics/py-moderngl/distinfo b/graphics/py-moderngl/distinfo
new file mode 100644
index 000000000000..a9f64b518ad6
--- /dev/null
+++ b/graphics/py-moderngl/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1674242505
+SHA256 (moderngl-moderngl-5.7.4_GH0.tar.gz) = 1c3ded82f572d574a2116b55d6988fcd66776c809bdb09a42590ab678d612dca
+SIZE (moderngl-moderngl-5.7.4_GH0.tar.gz) = 2687476
diff --git a/graphics/py-moderngl/pkg-descr b/graphics/py-moderngl/pkg-descr
new file mode 100644
index 000000000000..814db167e6f4
--- /dev/null
+++ b/graphics/py-moderngl/pkg-descr
@@ -0,0 +1,7 @@
+ModernGL is a python wrapper over OpenGL 3.3+ core that simplifies the creation
+of simple graphics applications like scientific simulations, games or user
+interfaces. Usually, acquiring in-depth knowledge of OpenGL requires a steep
+learning curve. In contrast, ModernGL is easy to learn and use, moreover it is
+capable of rendering with high performance and quality, with less code written.
+The majority of the moderngl code base is also written in C++ for high
+performance.