summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sci-physics/bullet/Manifest1
-rw-r--r--sci-physics/bullet/bullet-2.89.ebuild90
-rw-r--r--sci-physics/bullet/files/bullet-2.89-no-dangling-pointer.patch26
-rw-r--r--sci-physics/bullet/metadata.xml1
4 files changed, 118 insertions, 0 deletions
diff --git a/sci-physics/bullet/Manifest b/sci-physics/bullet/Manifest
index e83d7e958cb3..56f16cbaf73f 100644
--- a/sci-physics/bullet/Manifest
+++ b/sci-physics/bullet/Manifest
@@ -1 +1,2 @@
DIST bullet-2.86.tar.gz 25806558 BLAKE2B a8576d8dacd67b9789d32d7b1acc6c4025df3c15427c60d66f98b1906eee8b2b94e5b0108b9a8c00ca6261510ccaf57ba5c02c72fee8f528d4f723b304166731 SHA512 af8a6b282ab606437d7975a59cd8a9c2bf273c83b0e79f0c4c1de6fa51695ba6d5f3c853dce2fdba9cb55e7572214e15089e54db51afc465ca26f502cbd5a4f9
+DIST bullet-2.89.tar.gz 135742506 BLAKE2B 3725533bb50f3cf4783e21c57a5e3596f280d9aa3caa5b7a44925d4785206cc86514ff89c2cc1e33f8a14af7c8a5165190bb0515a6931fc4c7ec2e2b9aef3dd8 SHA512 3c4ba6a3b3623ef44dd4a23e0bc2e90dec1f2b7af463edcb886e110feac1dfb4a91945f0ed640052cac228318539e275976d37238102fb10a0f78aef065a730b
diff --git a/sci-physics/bullet/bullet-2.89.ebuild b/sci-physics/bullet/bullet-2.89.ebuild
new file mode 100644
index 000000000000..24626f66775a
--- /dev/null
+++ b/sci-physics/bullet/bullet-2.89.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake toolchain-funcs
+
+DESCRIPTION="Continuous Collision Detection and Physics Library"
+HOMEPAGE="http://www.bulletphysics.com/"
+SRC_URI="https://github.com/bulletphysics/bullet3/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="ZLIB"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+bullet3 doc double-precision examples extras openmp tbb test threads"
+
+REQUIRED_USE="
+ openmp? ( threads )
+ tbb? ( threads )
+"
+
+RDEPEND="
+ virtual/opengl
+ media-libs/freeglut
+ tbb? ( dev-cpp/tbb )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="doc? ( app-doc/doxygen[dot] )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.85-soversion.patch
+ "${FILESDIR}"/${PN}-2.89-no-dangling-pointer.patch
+)
+
+DOCS=( AUTHORS.txt LICENSE.txt README.md )
+
+# Building / linking of third Party library BussIK does not work out of the box
+RESTRICT="test"
+
+S="${WORKDIR}/${PN}3-${PV}"
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ # allow to generate docs
+ sed -i -e 's/GENERATE_HTMLHELP.*//g' Doxyfile || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_CPU_DEMOS=OFF
+ -DBUILD_OPENGL3_DEMOS=OFF
+ -DBUILD_BULLET2_DEMOS=OFF
+ -DUSE_GRAPHICAL_BENCHMARK=OFF
+ -DINSTALL_LIBS=ON
+ -DINSTALL_EXTRA_LIBS=ON
+ -DBUILD_BULLET3=$(usex bullet3)
+ -DBUILD_EXTRAS=$(usex extras)
+ -DUSE_DOUBLE_PRECISION=$(usex double-precision)
+ -DBUILD_UNIT_TESTS=$(usex test)
+ -DBULLET2_MULTITHREADING=$(usex threads)
+ -DBULLET2_USE_OPEN_MP_MULTITHREADING=$(usex openmp)
+ -DBULLET2_USE_TBB_MULTITHREADING=$(usex tbb)
+ )
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+
+ if use doc; then
+ doxygen || die
+ HTML_DOCS+=( html/. )
+ DOCS+=( docs/*.pdf )
+ fi
+
+ if use examples; then
+ # throws QA warnings
+ rm examples/ThirdPartyLibs/openvr/*/linux64/libopenvr_api.so || die
+ DOCS+=( examples )
+ fi
+}
diff --git a/sci-physics/bullet/files/bullet-2.89-no-dangling-pointer.patch b/sci-physics/bullet/files/bullet-2.89-no-dangling-pointer.patch
new file mode 100644
index 000000000000..8eee0016ae28
--- /dev/null
+++ b/sci-physics/bullet/files/bullet-2.89-no-dangling-pointer.patch
@@ -0,0 +1,26 @@
+From 1c64add35ed4918222ceb4fe93b7bef0e2b4e41c Mon Sep 17 00:00:00 2001
+From: stolk <b.stolk@gmail.com>
+Date: Wed, 1 Apr 2020 10:59:16 -0700
+Subject: [PATCH] Do not return a dangling pointer!
+
+Signed-off-by: Ross Charles Campbell <rossbridger.cc@gmail.com>
+---
+ Extras/ConvexDecomposition/cd_wavefront.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Extras/ConvexDecomposition/cd_wavefront.cpp b/Extras/ConvexDecomposition/cd_wavefront.cpp
+index b33080964..53b5784df 100644
+--- a/Extras/ConvexDecomposition/cd_wavefront.cpp
++++ b/Extras/ConvexDecomposition/cd_wavefront.cpp
+@@ -437,7 +437,7 @@ const char **InPlaceParser::GetArglist(char *line, int &count) // convert sourc
+ {
+ const char **ret = 0;
+
+- const char *argv[MAXARGS];
++ static const char *argv[MAXARGS];
+ int argc = 0;
+
+ char *foo = line;
+--
+2.28.0
+
diff --git a/sci-physics/bullet/metadata.xml b/sci-physics/bullet/metadata.xml
index 3304e14d402a..8dc1b6e634b1 100644
--- a/sci-physics/bullet/metadata.xml
+++ b/sci-physics/bullet/metadata.xml
@@ -22,6 +22,7 @@
<flag name="bullet3">Build Bullet 3</flag>
<flag name="double-precision">Build libraries in double precision</flag>
<flag name="extras">Build additional libraries</flag>
+ <flag restrict="&gt;=sci-physics/bullet-2.89" name="tbb">Enable multithreading with the Intel Threads Building Block dev-cpp/tbb</flag>
</use>
<upstream>
<remote-id type="google-code">bullet</remote-id>