git: 67fa97ee8653 - main - math/manifold: new port, Geometry library for topological robustness

From: Thierry Thomas <thierry_at_FreeBSD.org>
Date: Tue, 29 Apr 2025 17:54:40 UTC
The branch main has been updated by thierry:

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

commit 67fa97ee86537de2777ae6b26b2dfe4b3d7d6dbf
Author:     Thierry Thomas <thierry@FreeBSD.org>
AuthorDate: 2025-04-29 17:34:50 +0000
Commit:     Thierry Thomas <thierry@FreeBSD.org>
CommitDate: 2025-04-29 17:54:36 +0000

    math/manifold: new port, Geometry library for topological robustness
---
 math/Makefile           |  1 +
 math/manifold/Makefile  | 40 ++++++++++++++++++++++++++++++++++++++++
 math/manifold/distinfo  |  3 +++
 math/manifold/pkg-descr |  6 ++++++
 math/manifold/pkg-plist | 17 +++++++++++++++++
 5 files changed, 67 insertions(+)

diff --git a/math/Makefile b/math/Makefile
index 9a06b9741f75..ae6a1efdb269 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -491,6 +491,7 @@
     SUBDIR += ltl2ba
     SUBDIR += m4ri
     SUBDIR += m4rie
+    SUBDIR += manifold
     SUBDIR += mate-calc
     SUBDIR += math77
     SUBDIR += mathex
diff --git a/math/manifold/Makefile b/math/manifold/Makefile
new file mode 100644
index 000000000000..b0a58d18e12e
--- /dev/null
+++ b/math/manifold/Makefile
@@ -0,0 +1,40 @@
+PORTNAME=	manifold
+DISTVERSIONPREFIX=v
+DISTVERSION=	3.0.1
+CATEGORIES=	math cad
+
+MAINTAINER=	thierry@FreeBSD.org
+COMMENT=	Geometry library for topological robustness
+WWW=		https://github.com/elalish/manifold
+
+LICENSE=	APACHE20
+
+BUILD_DEPENDS=	glm>0:math/glm	\
+		googletest>0:devel/googletest
+LIB_DEPENDS=	libtbb.so:devel/onetbb	\
+		libClipper2.so:cad/Clipper2	\
+		libassimp.so:multimedia/assimp
+
+USES=		cmake compiler:c++17-lang pathfix
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	elalish
+
+CMAKE_ARGS=	-DMANIFOLD_FLAGS="${CFLAGS}"	\
+		-DMANIFOLD_PAR:STRING="NONE"
+CMAKE_ON=	BUILD_SHARED_LIBS	\
+		MANIFOLD_EXPORT		\
+		MANIFOLD_TEST
+CMAKE_OFF=	MANIFOLD_DOWNLOADS		\
+		MANIFOLD_JSBIND			\
+		MANIFOLD_CBIND			\
+		MANIFOLD_PYBIND			\
+		MANIFOLD_FUZZ			\
+		TRACY_ENABLE
+
+USE_LDCONFIG=	yes
+
+do-test:
+	(cd ${BUILD_WRKSRC}/test && ./manifold_test)
+
+.include <bsd.port.mk>
diff --git a/math/manifold/distinfo b/math/manifold/distinfo
new file mode 100644
index 000000000000..a4cd858e490e
--- /dev/null
+++ b/math/manifold/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1745870160
+SHA256 (elalish-manifold-v3.0.1_GH0.tar.gz) = 5e84fdaab7933a00fb4279a9bbe2885e94db3adfc45a2ef56ae35abfe5e6ea43
+SIZE (elalish-manifold-v3.0.1_GH0.tar.gz) = 29248289
diff --git a/math/manifold/pkg-descr b/math/manifold/pkg-descr
new file mode 100644
index 000000000000..d6f869216234
--- /dev/null
+++ b/math/manifold/pkg-descr
@@ -0,0 +1,6 @@
+Manifold is a geometry library dedicated to creating and operating on manifold
+triangle meshes. A manifold mesh is a mesh that represents a solid object, and
+so is very important in manufacturing, CAD, structural analysis, etc.
+
+Further information can be found urther information can be found:
+see https://github.com/elalish/manifold/wiki/Manifold-Library .
diff --git a/math/manifold/pkg-plist b/math/manifold/pkg-plist
new file mode 100644
index 000000000000..9849cdeaa722
--- /dev/null
+++ b/math/manifold/pkg-plist
@@ -0,0 +1,17 @@
+include/manifold/common.h
+include/manifold/cross_section.h
+include/manifold/linalg.h
+include/manifold/manifold.h
+include/manifold/meshIO.h
+include/manifold/optional_assert.h
+include/manifold/polygon.h
+include/manifold/vec_view.h
+include/manifold/version.h
+lib/cmake/manifold/manifoldConfig.cmake
+lib/cmake/manifold/manifoldConfigVersion.cmake
+lib/cmake/manifold/manifoldTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/manifold/manifoldTargets.cmake
+lib/libmanifold.so
+lib/libmanifold.so.3
+lib/libmanifold.so.3.0.1
+libdata/pkgconfig/manifold.pc