git: 33e01a0d9392 - main - cad/py-pygmsh: New port: Python frontend for Gmsh (on top of Gmsh's own binding)

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Tue, 20 Dec 2022 08:13:28 UTC
The branch main has been updated by yuri:

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

commit 33e01a0d93923258aae9c17ddee068c2190ea1fe
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-12-20 08:12:31 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-12-20 08:13:24 +0000

    cad/py-pygmsh: New port: Python frontend for Gmsh (on top of Gmsh's own binding)
---
 cad/Makefile            |  1 +
 cad/py-pygmsh/Makefile  | 31 +++++++++++++++++++++++++++++++
 cad/py-pygmsh/distinfo  |  3 +++
 cad/py-pygmsh/pkg-descr | 11 +++++++++++
 4 files changed, 46 insertions(+)

diff --git a/cad/Makefile b/cad/Makefile
index c0a9a1865503..9254083d4b54 100644
--- a/cad/Makefile
+++ b/cad/Makefile
@@ -111,6 +111,7 @@
     SUBDIR += py-ocp
     SUBDIR += py-phidl
     SUBDIR += py-pyfda
+    SUBDIR += py-pygmsh
     SUBDIR += py-pymtl
     SUBDIR += python-gdsii
     SUBDIR += qcad
diff --git a/cad/py-pygmsh/Makefile b/cad/py-pygmsh/Makefile
new file mode 100644
index 000000000000..06da8a63cb7c
--- /dev/null
+++ b/cad/py-pygmsh/Makefile
@@ -0,0 +1,31 @@
+PORTNAME=	pygmsh
+DISTVERSION=	7.1.17
+CATEGORIES=	cad python
+MASTER_SITES=	CHEESESHOP
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Python frontend for Gmsh (on top of Gmsh's own binding)
+WWW=		https://github.com/meshpro/pygmsh
+
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/LICENSE.txt
+
+PY_DEPENDS=	${PYTHON_PKGNAMEPREFIX}gmsh>0:cad/py-gmsh@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}meshio>=4.3.2:science/py-meshio@${PY_FLAVOR} \
+		${PYNUMPY}
+BUILD_DEPENDS=	${PY_DEPENDS}
+RUN_DEPENDS=	${PY_DEPENDS}
+
+USES=		python:3.7+
+USE_PYTHON=	distutils autoplist pytest # 1 error and many warnings in tests, see https://github.com/meshpro/pygmsh/issues/564
+
+NO_ARCH=	yes
+
+pre-configure:
+	@( \
+		${ECHO} "from setuptools import setup" && \
+		${ECHO} "setup()" \
+	) > ${WRKSRC}/setup.py
+
+.include <bsd.port.mk>
diff --git a/cad/py-pygmsh/distinfo b/cad/py-pygmsh/distinfo
new file mode 100644
index 000000000000..f32761cac6ce
--- /dev/null
+++ b/cad/py-pygmsh/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1671510101
+SHA256 (pygmsh-7.1.17.tar.gz) = 563724abff4f8517598d3354b9c795feddbe0675786145bfeaf20cbee6691c1d
+SIZE (pygmsh-7.1.17.tar.gz) = 61707
diff --git a/cad/py-pygmsh/pkg-descr b/cad/py-pygmsh/pkg-descr
new file mode 100644
index 000000000000..47fa2458a083
--- /dev/null
+++ b/cad/py-pygmsh/pkg-descr
@@ -0,0 +1,11 @@
+Gmsh is a free 3D finite element grid generator with a build-in CAD engine and
+post-processor. Its design goal is to provide a fast, light and user-friendly
+meshing tool with parametric input and advanced visualization capabilities. Gmsh
+is built around four modules: geometry, mesh, solver and post-processing. The
+specification of any input to these modules is done either interactively using
+the graphical user interface or in ASCII text files using Gmsh's own scripting
+language.
+
+pygmsh combines the power of Gmsh with the versatility of Python. It provides
+useful abstractions from Gmsh's own Python interface (cad/py-gmsh) so you can
+create complex geometries more easily.