| # Maintainer: Alexey Pavlov <Alexpux@gmail.com> |
| |
| _realname=bullet |
| pkgbase=mingw-w64-${_realname} |
| pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug") |
| pkgver=2.87 |
| pkgrel=2 |
| pkgdesc="A 3D Collision Detection and Rigid Body Dynamics Library for games and animation (mingw-w64)" |
| arch=('any') |
| mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64') |
| url="https://www.bulletphysics.com/Bullet/" |
| license=('custom:zlib') |
| options=('!strip' 'staticlibs') |
| depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") |
| makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" |
| "${MINGW_PACKAGE_PREFIX}-gcc" |
| "${MINGW_PACKAGE_PREFIX}-freeglut" |
| "${MINGW_PACKAGE_PREFIX}-openvr" |
| "${MINGW_PACKAGE_PREFIX}-python3" |
| "${MINGW_PACKAGE_PREFIX}-python3-numpy") |
| source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/bulletphysics/bullet3/archive/${pkgver}.tar.gz" |
| mingw-fixes.patch |
| mingw-strlen-missing-include.patch |
| mingw-link-rearrange.patch |
| mingw-allow-shared-builds.patch |
| fix-runtime-install.patch |
| install-openvr-only-msvc.patch) |
| sha256sums=('438c151c48840fe3f902ec260d9496f8beb26dba4b17769a4a53212903935f95' |
| 'df3ece9dd216c3ab406f1d79849b96ee3b5eef727623f00d23d8c9d3aed06f09' |
| '5ff773be3814aaaf7776da5787a702188d7009fec2ca2434d6cf139f2b5a5177' |
| '6e23969747bd73e29ea6d6cdb7abebca5e61782ce42d163f0a7c65649cd16203' |
| '2e9cc177007635b4126c230790c989e33371263abecba0f3cae94dd052abb556' |
| '942fb30ef816428f009fbde7ef955d6f23fb5d69ccb267d043f3efff8f43290c' |
| 'bc089e5ffac4b0d902a0b2fea9db8645ab385ee62ba82a3d739b00c272ed45fb') |
| |
| prepare () { |
| cd ${srcdir}/bullet3-${pkgver} |
| patch -p1 -i ${srcdir}/mingw-fixes.patch |
| patch -p1 -i ${srcdir}/mingw-strlen-missing-include.patch |
| patch -p1 -i ${srcdir}/mingw-link-rearrange.patch |
| patch -p1 -i ${srcdir}/mingw-allow-shared-builds.patch |
| patch -p1 -i ${srcdir}/fix-runtime-install.patch |
| patch -p1 -i ${srcdir}/install-openvr-only-msvc.patch |
| } |
| |
| build() { |
| plain "No step" |
| } |
| |
| package_bullet() { |
| depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" |
| "${MINGW_PACKAGE_PREFIX}-freeglut" |
| "${MINGW_PACKAGE_PREFIX}-openvr") |
| install=${_realname}-${CARCH}.install |
| |
| [[ -d build-release ]] && rm -rf build-release |
| mkdir -p build-release && pushd build-release |
| MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ |
| ${MINGW_PREFIX}/bin/cmake \ |
| -G"MSYS Makefiles" \ |
| -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ |
| -DBUILD_SHARED_LIBS=ON \ |
| -DBUILD_EXTRAS=ON \ |
| -DINSTALL_LIBS=ON \ |
| -DUSE_GLUT=ON \ |
| -DCMAKE_CXX_FLAGS_RELEASE="-fpermissive" \ |
| -DINSTALL_EXTRA_LIBS=ON \ |
| -DBUILD_PYBULLET_NUMPY=ON \ |
| -DCMAKE_BUILD_TYPE=Release \ |
| ../bullet3-${pkgver} |
| |
| make |
| make DESTDIR=${pkgdir} install |
| |
| mkdir -p ${pkgdir}${MINGW_PREFIX}/share/bullet |
| for f in $(find examples -type f -iname *.dll -o -iname *.exe); do |
| cp ${f} ${pkgdir}${MINGW_PREFIX}/share/bullet/ |
| done |
| cp -rf ${srcdir}/bullet3-${pkgver}/data/* ${pkgdir}${MINGW_PREFIX}/share/bullet/ |
| for f in gtest gwen OpenGLWindow; do |
| cp lib/lib${f}.dll ${pkgdir}${MINGW_PREFIX}/share/bullet/ |
| done |
| } |
| |
| package_bullet-debug() { |
| depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}-${pkgrel}") |
| |
| [[ -d build-debug ]] && rm -rf build-debug |
| mkdir -p build-debug && pushd build-debug |
| MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ |
| ${MINGW_PREFIX}/bin/cmake \ |
| -G"MSYS Makefiles" \ |
| -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ |
| -DBUILD_SHARED_LIBS=ON \ |
| -DBUILD_EXTRAS=ON \ |
| -DINSTALL_LIBS=ON \ |
| -DUSE_GLUT=ON \ |
| -DCMAKE_CXX_FLAGS_RELEASE="-fpermissive" \ |
| -DINSTALL_EXTRA_LIBS=ON \ |
| -DBUILD_PYBULLET_NUMPY=ON \ |
| -DCMAKE_BUILD_TYPE=Debug \ |
| -DCMAKE_DEBUG_POSTFIX="_d" \ |
| ../bullet3-${pkgver} |
| |
| make |
| make DESTDIR=${pkgdir} install |
| |
| rm -rf ${pkgdir}${MINGW_PREFIX}/include |
| rm -rf ${pkgdir}${MINGW_PREFIX}/lib/cmake |
| rm -rf ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig |
| |
| } |
| |
| # template start; name=mingw-w64-splitpkg-wrappers; version=1.0; |
| # vim: set ft=bash : |
| |
| # generate wrappers |
| for _name in "${pkgname[@]}"; do |
| _short="package_${_name#${MINGW_PACKAGE_PREFIX}-}" |
| _func="$(declare -f "${_short}")" |
| eval "${_func/#${_short}/package_${_name}}" |
| done |
| # template end; |