git: 27ca116ba828 - main - science/polytope: New port: Library for generating Voronoi and Voronoi-like tessellations

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sat, 03 Dec 2022 09:48:42 UTC
The branch main has been updated by yuri:

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

commit 27ca116ba8283c5aebf6024b9db878a84fb2fe7a
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-12-03 09:17:57 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-12-03 09:47:44 +0000

    science/polytope: New port: Library for generating Voronoi and Voronoi-like tessellations
---
 science/Makefile                                |  1 +
 science/polytope/Makefile                       | 33 ++++++++++++++++++
 science/polytope/distinfo                       |  3 ++
 science/polytope/files/patch-CMakeLists.txt     | 11 ++++++
 science/polytope/files/patch-src_CMakeLists.txt | 22 ++++++++++++
 science/polytope/pkg-descr                      |  8 +++++
 science/polytope/pkg-plist                      | 45 +++++++++++++++++++++++++
 7 files changed, 123 insertions(+)

diff --git a/science/Makefile b/science/Makefile
index e9d5ac65faf8..2b60a49bfe35 100644
--- a/science/Makefile
+++ b/science/Makefile
@@ -265,6 +265,7 @@
     SUBDIR += phonopy
     SUBDIR += plumed
     SUBDIR += pnetcdf
+    SUBDIR += polytope
     SUBDIR += precice
     SUBDIR += psi4
     SUBDIR += pulseview
diff --git a/science/polytope/Makefile b/science/polytope/Makefile
new file mode 100644
index 000000000000..f8f70b3177ca
--- /dev/null
+++ b/science/polytope/Makefile
@@ -0,0 +1,33 @@
+PORTNAME=	polytope
+DISTVERSION=	0.6.2-2
+DISTVERSIONSUFFIX=	-g764fd19
+CATEGORIES=	science
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Library for generating Voronoi and Voronoi-like tessellations
+WWW=		https://github.com/pbtoast/polytope
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${LOCALBASE}/include/boost/geometry.hpp:devel/boost-libs
+LIB_DEPENDS=	libsz.so:science/libaec
+
+USES=		cmake:testing
+USE_LDCONFIG=	yes
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	pbtoast
+
+CMAKE_ON=	BUILD_SHARED_LIBS
+CMAKE_OFF=	TESTING
+CMAKE_TESTING_ON=	TESTING # 1 test is known to fail, see https://github.com/pbtoast/polytope/issues/18
+
+OPTIONS_DEFINE=		SILO
+OPTIONS_DEFAULT=	SILO
+
+SILO_DESC=		Use SILO reader/writer
+SILO_CMAKE_BOOL=	USE_SILO
+SILO_LIB_DEPENDS=	libsiloh5.so:science/silo
+
+.include <bsd.port.mk>
diff --git a/science/polytope/distinfo b/science/polytope/distinfo
new file mode 100644
index 000000000000..90a3e187be3a
--- /dev/null
+++ b/science/polytope/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1670054925
+SHA256 (pbtoast-polytope-0.6.2-2-g764fd19_GH0.tar.gz) = e28a965271e3c1c4cd09c015d7f1d4410b3092a64b994c41d27b9c577bebdc8c
+SIZE (pbtoast-polytope-0.6.2-2-g764fd19_GH0.tar.gz) = 6858333
diff --git a/science/polytope/files/patch-CMakeLists.txt b/science/polytope/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..9e78993b664c
--- /dev/null
+++ b/science/polytope/files/patch-CMakeLists.txt
@@ -0,0 +1,11 @@
+--- CMakeLists.txt.orig	2022-12-03 08:13:57 UTC
++++ CMakeLists.txt
+@@ -10,7 +10,7 @@ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modul
+ project(Polytope)
+ 
+ # We require at least C++11
+-set(CMAKE_CXX_STANDARD 11)
++set(CMAKE_CXX_STANDARD 14)
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
+ set(CMAKE_CXX_EXTENSIONS OFF)
+ 
diff --git a/science/polytope/files/patch-src_CMakeLists.txt b/science/polytope/files/patch-src_CMakeLists.txt
new file mode 100644
index 000000000000..731eabaac985
--- /dev/null
+++ b/science/polytope/files/patch-src_CMakeLists.txt
@@ -0,0 +1,22 @@
+- uses std::integer_sequence C++14 feature
+
+--- src/CMakeLists.txt.orig	2022-12-03 08:18:04 UTC
++++ src/CMakeLists.txt
+@@ -17,7 +17,7 @@ endif()
+ # TriangleTessellator and triangle source
+ if (HAVE_TRIANGLE)
+   list(APPEND TESSELLATOR_SOURCES TriangleTessellator.cc)
+-  add_library(triangle STATIC  predicates.cc triangle.c)
++  add_library(triangle predicates.cc triangle.c)
+   #set(TRIANGLE_LIB triangle PARENT_SCOPE)
+   set(TRIANGLE_LIB triangle)
+   set_target_properties(triangle PROPERTIES
+@@ -49,7 +49,7 @@ endif()
+ file(GLOB HEADERS *.hh)
+ list(APPEND HEADERS "${PROJECT_BINARY_DIR}/polytope.hh")
+ 
+-add_library(polytope STATIC
++add_library(polytope
+             ${TESSELLATOR_SOURCES} ${IO_SOURCES} ErrorHandler.cc
+       	    polytope_internal_abort.cc)
+ 
diff --git a/science/polytope/pkg-descr b/science/polytope/pkg-descr
new file mode 100644
index 000000000000..fbeefbde9e46
--- /dev/null
+++ b/science/polytope/pkg-descr
@@ -0,0 +1,8 @@
+Polytope is a C++ library for generating polygonal and polyhedral meshes.
+It makes use of various 2D and 3D tessellation techniques, but provides
+a single representation for these tessellations, and a simple interface
+for generating them.
+
+Polytope has a simple C interface for use with other languages. It also
+includes bindings for Python. These bindings allow you to easily incorporate
+Polytope into your own mesh generation tools.
diff --git a/science/polytope/pkg-plist b/science/polytope/pkg-plist
new file mode 100644
index 000000000000..1a3ad063500d
--- /dev/null
+++ b/science/polytope/pkg-plist
@@ -0,0 +1,45 @@
+include/polytope/BoostOrphanage.hh
+include/polytope/BoostTessellator.hh
+include/polytope/BoostTessellatorTraits.hh
+include/polytope/Clipper2d.hh
+include/polytope/DimensionTraits.hh
+include/polytope/ErrorHandler.hh
+include/polytope/IntPointMap.hh
+include/polytope/KeyTraits.hh
+include/polytope/MeshEditor.hh
+include/polytope/OrphanageBase.hh
+include/polytope/PLC.hh
+include/polytope/PLC_Boost_2d.hh
+include/polytope/PLC_CSG_2d.hh
+include/polytope/PLC_CSG_3d.hh
+include/polytope/Point.hh
+include/polytope/QuantTessellation.hh
+include/polytope/QuantizedCoordinates.hh
+include/polytope/QuantizedTessellation2d.hh
+include/polytope/QuantizedTessellation3d.hh
+include/polytope/ReducedPLC.hh
+include/polytope/SiloReader.hh
+include/polytope/SiloWriter.hh
+include/polytope/Tessellation.hh
+include/polytope/Tessellator.hh
+include/polytope/TessellatorInline.hh
+include/polytope/TetgenTessellator.hh
+include/polytope/TriangleTessellator.hh
+include/polytope/VoroPP_2d.hh
+include/polytope/VoroPP_3d.hh
+include/polytope/clipQuantizedTessellation.hh
+include/polytope/convexHull_2d.hh
+include/polytope/convexHull_3d.hh
+include/polytope/findBoundaryElements.hh
+include/polytope/makeBoxPLC.hh
+include/polytope/polytope.hh
+include/polytope/polytope_geometric_utilities.hh
+include/polytope/polytope_internal.hh
+include/polytope/polytope_parallel_utilities.hh
+include/polytope/polytope_serialize.hh
+include/polytope/polytope_tessellator_utilities.hh
+include/polytope/polytope_write_OOGL.hh
+include/polytope/removeElements.hh
+include/polytope/simplifyPLCfacets.hh
+include/polytope/snapToBoundary.hh
+lib/libpolytope.so