git: c0526b161a82 - main - devel/bullet: flavorize, use CMAKE_[ON|OFF] macros, build extras (+)

From: Dima Panov <fluffy_at_FreeBSD.org>
Date: Wed, 15 Dec 2021 16:40:03 UTC
The branch main has been updated by fluffy:

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

commit c0526b161a82515ee309428399c3563d6f029018
Author:     Dima Panov <fluffy@FreeBSD.org>
AuthorDate: 2021-12-15 16:36:51 +0000
Commit:     Dima Panov <fluffy@FreeBSD.org>
CommitDate: 2021-12-15 16:36:51 +0000

    devel/bullet: flavorize, use CMAKE_[ON|OFF] macros, build extras (+)
    
    games/openmw: bump PORTREVISION to force rebuild with flavorized bullet-double
    
    Requested by:   amdmi3
    Sponsored by:   Netzkommune GmbH
---
 devel/bullet/Makefile                | 46 +++++++++++++++--------------
 devel/bullet/files/patch-MANIFEST.in | 19 ------------
 devel/bullet/pkg-plist               | 56 ++++++++++++++++++++++++++++++++++--
 games/openmw/Makefile                |  3 +-
 4 files changed, 81 insertions(+), 43 deletions(-)

diff --git a/devel/bullet/Makefile b/devel/bullet/Makefile
index 41c96146bc0f..55341678d677 100644
--- a/devel/bullet/Makefile
+++ b/devel/bullet/Makefile
@@ -2,6 +2,7 @@
 
 PORTNAME=	bullet
 PORTVERSION=	3.21
+PORTREVISION=	1
 CATEGORIES=	devel
 
 MAINTAINER=	fluffy@FreeBSD.org
@@ -10,6 +11,14 @@ COMMENT=	3D collision detection and rigid body dynamics library
 LICENSE=	ZLIB
 LICENSE_FILE=	${WRKSRC}/LICENSE.txt
 
+FLAVORS=	single double
+FLAVOR?=	${FLAVORS:[1]}
+
+double_PKGNAMESUFFIX=	-double
+
+single_CONFLICTS_INSTALL=${PORTNAME}-double
+double_CONFLICTS_INSTALL=${PORTNAME}
+
 USES=		cmake compiler:c++11-lang gl xorg
 USE_GL=		gl glu glut
 USE_LDCONFIG=	yes
@@ -19,24 +28,22 @@ USE_GITHUB=	yes
 GH_ACCOUNT=	bulletphysics
 GH_PROJECT=	bullet3
 
-CMAKE_ARGS=	-DBUILD_SHARED_LIBS:BOOL=ON \
-		-DINSTALL_LIBS:BOOL=ON \
-		-DINSTALL_EXTRA_LIBS:BOOL=ON \
-		-DBUILD_EXTRAS:BOOL=OFF \
-		-DUSE_DOUBLE_PRECISION:BOOL=ON \
-		-DUSE_GRAPHICAL_BENCHMARK:BOOL=OFF \
-		-DENABLE_VHACD:BOOL=OFF \
-		-DBUILD_BULLET3:BOOL=ON \
-		-DBUILD_CPU_DEMOS:BOOL=OFF \
-		-DBUILD_BULLET2_DEMOS:BOOL=OFF \
-		-DBUILD_BULLET3_DEMOS:BOOL=OFF \
-		-DBUILD_PYBULLET:BOOL=OFF \
-		-DBUILD_OPENGL3_DEMOS:BOOL=OFF \
-		-DBUILD_BULLET_ROBOTICS_GUI_EXTRA:BOOL=OFF \
-		-DBUILD_UNIT_TESTS:BOOL=OFF \
-		-DBULLET2_MULTITHREADING:BOOL=ON \
-		-DBULLET2_USE_OPEN_MP_MULTITHREADING:BOOL=ON
-#		-DBULLET2_USE_TBB_MULTITHREADING:BOOL=ON
+CMAKE_ON=	BUILD_BULLET3 BUILD_SHARED_LIBS INSTALL_LIBS \
+		BUILD_EXTRAS INSTALL_EXTRA_LIBS \
+		BULLET2_MULTITHREADING BULLET2_USE_OPEN_MP_MULTITHREADING
+CMAKE_OFF=	BUILD_CPU_DEMOS BUILD_BULLET2_DEMOS BUILD_BULLET3_DEMOS \
+		BUILD_OPENGL3_DEMOS BUILD_PYBULLET BUILD_UNIT_TESTS \
+		BULLET2_USE_TBB_MULTITHREADING ENABLE_VHACD \
+		BUILD_BULLET_ROBOTICS_EXTRA BUILD_BULLET_ROBOTICS_GUI_EXTRA \
+		USE_GRAPHICAL_BENCHMARK
+# List available knobs for Extras
+#		BUILD_HACD_EXTRA BUILD_OBJ2SDF_EXTRA BUILD_BULLET_ROBOTICS_EXTRA \
+#		BUILD_SERIALIZE_EXTRA BUILD_INVERSE_DYNAMIC_EXTRA \
+#		BUILD_CONVEX_DECOMPOSITION_EXTRA BUILD_GIMPACTUTILS_EXTRA
+
+.if ${FLAVOR} == double
+CMAKE_ON+=	USE_DOUBLE_PRECISION
+.endif
 
 PORTDOCS=	*
 
@@ -45,9 +52,6 @@ OPTIONS_DEFINE=	DOCS
 PLIST_SUB=	LIB_VERSION=3.20
 
 post-patch:
-	@${REINPLACE_CMD} \
-	-e '/pybullet/d' \
-	${WRKSRC}/MANIFEST.in
 	@${RM} -r ${WRKSRC}/examples/pybullet
 
 post-install-DOCS-on:
diff --git a/devel/bullet/files/patch-MANIFEST.in b/devel/bullet/files/patch-MANIFEST.in
deleted file mode 100644
index 4e326445dfa2..000000000000
--- a/devel/bullet/files/patch-MANIFEST.in
+++ /dev/null
@@ -1,19 +0,0 @@
---- MANIFEST.in.orig	2021-11-24 21:59:22 UTC
-+++ MANIFEST.in
-@@ -1,16 +1,11 @@
- include MANIFEST.in *.txt
--recursive-include examples *.h
--recursive-include examples *.hpp
- recursive-include Extras *.h
- recursive-include Extras *.hpp
- recursive-include Extras *.inl
- recursive-include src *.h
- recursive-include src *.hpp
- recursive-include src *.cpp
--recursive-include examples/pybullet/gym *.*
- include examples/ThirdPartyLibs/enet/unix.c
- include examples/OpenGLWindow/*.*
- recursive-include examples/SharedMemory/plugins *.*
- recursive-include examples/ThirdPartyLibs/glad *.*
--include examples/ThirdPartyLibs/enet/win32.c
--recursive-include examples/ThirdPartyLibs/Eigen *
diff --git a/devel/bullet/pkg-plist b/devel/bullet/pkg-plist
index 615c1d48a89f..acff5c0548d4 100644
--- a/devel/bullet/pkg-plist
+++ b/devel/bullet/pkg-plist
@@ -344,6 +344,13 @@ include/bullet/BulletDynamics/Vehicle/btVehicleRaycaster.h
 include/bullet/BulletDynamics/Vehicle/btWheelInfo.h
 include/bullet/BulletDynamics/btBulletDynamicsCommon.h
 include/bullet/BulletInverseDynamics/btBulletCollisionCommon.h
+include/bullet/BulletFileLoader/autogenerated/bullet.h
+include/bullet/BulletFileLoader/bChunk.h
+include/bullet/BulletFileLoader/bCommon.h
+include/bullet/BulletFileLoader/bDNA.h
+include/bullet/BulletFileLoader/bDefines.h
+include/bullet/BulletFileLoader/bFile.h
+include/bullet/BulletFileLoader/btBulletFile.h
 include/bullet/BulletSoftBody/DeformableBodyInplaceSolverIslandCallback.h
 include/bullet/BulletSoftBody/btCGProjection.h
 include/bullet/BulletSoftBody/btConjugateGradient.h
@@ -378,6 +385,37 @@ include/bullet/BulletSoftBody/btSoftRigidDynamicsWorld.h
 include/bullet/BulletSoftBody/btSoftSoftCollisionAlgorithm.h
 include/bullet/BulletSoftBody/btSparseSDF.h
 include/bullet/BulletSoftBody/poly34.h
+include/bullet/BulletWorldImporter/btBulletWorldImporter.h
+include/bullet/BulletWorldImporter/btMultiBodyWorldImporter.h
+include/bullet/BulletWorldImporter/btWorldImporter.h
+include/bullet/BulletXmlWorldImporter/btBulletXmlWorldImporter.h
+include/bullet/BulletXmlWorldImporter/string_split.h
+include/bullet/ConvexDecomposition/ConvexBuilder.h
+include/bullet/ConvexDecomposition/ConvexDecomposition.h
+include/bullet/ConvexDecomposition/bestfit.h
+include/bullet/ConvexDecomposition/bestfitobb.h
+include/bullet/ConvexDecomposition/cd_hull.h
+include/bullet/ConvexDecomposition/cd_vector.h
+include/bullet/ConvexDecomposition/cd_wavefront.h
+include/bullet/ConvexDecomposition/concavity.h
+include/bullet/ConvexDecomposition/fitsphere.h
+include/bullet/ConvexDecomposition/float_math.h
+include/bullet/ConvexDecomposition/meshvolume.h
+include/bullet/ConvexDecomposition/planetri.h
+include/bullet/ConvexDecomposition/raytri.h
+include/bullet/ConvexDecomposition/splitplane.h
+include/bullet/ConvexDecomposition/vlookup.h
+include/bullet/GIMPACTUtils/btGImpactConvexDecompositionShape.h
+include/bullet/HACD/hacdCircularList.h
+include/bullet/HACD/hacdCircularList.inl
+include/bullet/HACD/hacdGraph.h
+include/bullet/HACD/hacdHACD.h
+include/bullet/HACD/hacdICHull.h
+include/bullet/HACD/hacdManifoldMesh.h
+include/bullet/HACD/hacdVector.h
+include/bullet/HACD/hacdVector.inl
+include/bullet/HACD/hacdVersion.h
+include/bullet/InverseDynamics/BulletInverseDynamicsUtilsCommon.h
 include/bullet/LinearMath/TaskScheduler/btThreadSupportInterface.h
 include/bullet/LinearMath/btAabbUtil2.h
 include/bullet/LinearMath/btAlignedAllocator.h
@@ -418,6 +456,8 @@ lib/cmake/bullet/BulletConfig.cmake
 lib/cmake/bullet/UseBullet.cmake
 lib/libBullet2FileLoader.so
 lib/libBullet2FileLoader.so.%%LIB_VERSION%%
+lib/libBulletFileLoader.so
+lib/libBulletFileLoader.so.%%LIB_VERSION%%
 lib/libBullet3Collision.so
 lib/libBullet3Collision.so.%%LIB_VERSION%%
 lib/libBullet3Common.so
@@ -434,9 +474,21 @@ lib/libBulletDynamics.so
 lib/libBulletDynamics.so.%%LIB_VERSION%%
 lib/libBulletInverseDynamics.so
 lib/libBulletInverseDynamics.so.%%LIB_VERSION%%
-lib/libBulletSoftBody.so
-lib/libBulletSoftBody.so.%%LIB_VERSION%%
+lib/libBulletInverseDynamicsUtils.so
+lib/libBulletInverseDynamicsUtils.so.%%LIB_VERSION%%
 lib/libLinearMath.so
 lib/libLinearMath.so.%%LIB_VERSION%%
+lib/libBulletSoftBody.so
+lib/libBulletSoftBody.so.%%LIB_VERSION%%
+lib/libBulletWorldImporter.so
+lib/libBulletWorldImporter.so.%%LIB_VERSION%%
+lib/libBulletXmlWorldImporter.so
+lib/libBulletXmlWorldImporter.so.%%LIB_VERSION%%
+lib/libConvexDecomposition.so
+lib/libConvexDecomposition.so.%%LIB_VERSION%%
+lib/libGIMPACTUtils.so
+lib/libGIMPACTUtils.so.%%LIB_VERSION%%
+lib/libHACD.so
+lib/libHACD.so.%%LIB_VERSION%%
 libdata/pkgconfig/bullet.pc
 @dir include/bullet/BulletInverseDynamics/details
diff --git a/games/openmw/Makefile b/games/openmw/Makefile
index 0d4809c98d90..6a84fcef33c6 100644
--- a/games/openmw/Makefile
+++ b/games/openmw/Makefile
@@ -1,4 +1,5 @@
 PORTNAME=	openmw
+PORTREVISION=	1
 DISTVERSIONPREFIX=	openmw-
 DISTVERSION=	0.47.0
 CATEGORIES=	games
@@ -12,7 +13,7 @@ LICENSE_FILE=	${WRKSRC}/LICENSE
 LIB_DEPENDS=	libavcodec.so:multimedia/ffmpeg \
 		libboost_thread.so:devel/boost-libs \
 		libMyGUIEngine.so:x11-toolkits/mygui \
-		libBulletCollision.so:devel/bullet \
+		libBulletCollision.so:devel/bullet@double \
 		libosg.so:graphics/osg \
 		libRecast.so:graphics/recastnavigation \
 		libunshield.so:archivers/unshield \