git: 941a3254902c - main - cad/py-gmsh: New port: Automatic 3D finite element mesh generator (gmsh's own binding)

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

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

commit 941a3254902c7597e4465f6001d6bcecefb2d063
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-12-20 04:18:55 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-12-20 04:18:55 +0000

    cad/py-gmsh: New port: Automatic 3D finite element mesh generator (gmsh's own binding)
---
 cad/Makefile          |  1 +
 cad/py-gmsh/Makefile  | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 cad/py-gmsh/distinfo  |  3 +++
 cad/py-gmsh/pkg-descr |  7 +++++++
 cad/py-gmsh/pkg-plist | 18 ++++++++++++++++++
 5 files changed, 76 insertions(+)

diff --git a/cad/Makefile b/cad/Makefile
index c618a23996d1..c0a9a1865503 100644
--- a/cad/Makefile
+++ b/cad/Makefile
@@ -106,6 +106,7 @@
     SUBDIR += py-cq-editor
     SUBDIR += py-ezdxf
     SUBDIR += py-gdspy
+    SUBDIR += py-gmsh
     SUBDIR += py-lcapy
     SUBDIR += py-ocp
     SUBDIR += py-phidl
diff --git a/cad/py-gmsh/Makefile b/cad/py-gmsh/Makefile
new file mode 100644
index 000000000000..dbd5e32b003e
--- /dev/null
+++ b/cad/py-gmsh/Makefile
@@ -0,0 +1,47 @@
+PORTNAME=	gmsh
+DISTVERSION=	4.11.0
+CATEGORIES=	cad python
+MASTER_SITES=	https://gmsh.info/src/
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+DISTNAME=	${PORTNAME}-${DISTVERSION}-source
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Automatic 3D finite element mesh generator (gmsh's own binding)
+WWW=		https://gmsh.info/
+
+LICENSE=	AGPLv3+ APACHE20 GPLv3+ GPLv2+ LGPL21
+LICENSE_COMB=	multi
+
+BUILD_DEPENDS=	swig:devel/swig
+LIB_DEPENDS=	libcgns.so:science/cgnslib \
+		libfltk_images.so:x11-toolkits/fltk \
+		libgmp.so:math/gmp \
+		libhdf5.so:science/hdf5 \
+		libmedC.so:french/med \
+		libpng16.so:graphics/png \
+		libsz.so:science/libaec
+
+USES=		cmake gl gnome jpeg python:3.6+ tar:tgz xorg
+USE_GNOME=	cairo
+USE_GL=		gl glu
+USE_XORG=	ice sm x11 xext
+USE_LDCONFIG=	${PYTHON_SITELIBDIR}
+
+CMAKE_ON=	ENABLE_WRAP_PYTHON ENABLE_PRIVATE_API
+
+post-install: # remove all except for the python binding
+	@cd ${STAGEDIR}${PREFIX} && \
+		${RM} -r \
+			bin/* \
+			include/gmsh* \
+			lib/gmsh.jl \
+			share/doc/gmsh \
+			share/man/man1/gmsh.1
+	# move "private API" libs to the python folder
+	@cd ${STAGEDIR} && \
+		${MV} \
+			${STAGEDIR}${PREFIX}/lib/gmsh* \
+			${STAGEDIR}${PREFIX}/lib/lib* \
+			${STAGEDIR}${PYTHON_SITELIBDIR}
+
+.include <bsd.port.mk>
diff --git a/cad/py-gmsh/distinfo b/cad/py-gmsh/distinfo
new file mode 100644
index 000000000000..52e1224eccef
--- /dev/null
+++ b/cad/py-gmsh/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1671494027
+SHA256 (gmsh-4.11.0-source.tgz) = 3cf2f24455ee09252c99e64d4e6462956e68f0ff1f37baca0b78c809d6cc557a
+SIZE (gmsh-4.11.0-source.tgz) = 17982424
diff --git a/cad/py-gmsh/pkg-descr b/cad/py-gmsh/pkg-descr
new file mode 100644
index 000000000000..808126aa5753
--- /dev/null
+++ b/cad/py-gmsh/pkg-descr
@@ -0,0 +1,7 @@
+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.
diff --git a/cad/py-gmsh/pkg-plist b/cad/py-gmsh/pkg-plist
new file mode 100644
index 000000000000..81ee13fa7bc8
--- /dev/null
+++ b/cad/py-gmsh/pkg-plist
@@ -0,0 +1,18 @@
+%%PYTHON_SITELIBDIR%%/gmsh-4.11.0.dev1.dist-info/METADATA
+%%PYTHON_SITELIBDIR%%/gmsh.py
+%%PYTHON_SITELIBDIR%%/gmshpy/__init__.py
+%%PYTHON_SITELIBDIR%%/gmshpy/_gmshCommon.so
+%%PYTHON_SITELIBDIR%%/gmshpy/_gmshGeo.so
+%%PYTHON_SITELIBDIR%%/gmshpy/_gmshMesh.so
+%%PYTHON_SITELIBDIR%%/gmshpy/_gmshNumeric.so
+%%PYTHON_SITELIBDIR%%/gmshpy/_gmshPost.so
+%%PYTHON_SITELIBDIR%%/gmshpy/_gmshSolver.so
+%%PYTHON_SITELIBDIR%%/gmshpy/gmshCommon.py
+%%PYTHON_SITELIBDIR%%/gmshpy/gmshGeo.py
+%%PYTHON_SITELIBDIR%%/gmshpy/gmshMesh.py
+%%PYTHON_SITELIBDIR%%/gmshpy/gmshNumeric.py
+%%PYTHON_SITELIBDIR%%/gmshpy/gmshPost.py
+%%PYTHON_SITELIBDIR%%/gmshpy/gmshSolver.py
+%%PYTHON_SITELIBDIR%%/libgmsh.so
+%%PYTHON_SITELIBDIR%%/libgmsh.so.4.11
+%%PYTHON_SITELIBDIR%%/libgmsh.so.4.11.0