# Contributor: Jeff Han <hanjinfei@foxmail.com>
# Maintainer: Jeff Han <hanjinfei@foxmail.com>
pkgname=Chipmunk2D
pkgver=Chipmunk-7.0.3
pkgrel=0
pkgdesc="A fast and lightweight 2D game physics library."
url="https://github.com/slembcke/Chipmunk2D"
archs=("armeabi-v7a" "arm64-v8a")
license=("MIT")
depends=()
makedepends=()
source="https://gitee.com/lycium_pkg_mirror/$pkgname/repository/archive/$pkgver.zip"
autounpack=true
downloadpackage=true
patchflag=true
builddir=$pkgname-${pkgver}
packagename=$builddir.zip
source envset.sh
# patch Chipmunk2D-Chipmunk-7.0.3/src/cpHastySpace.c
prepare() {
if $patchflag
then
cd $builddir
patch -p1 < `pwd`/../Chipmunk2D_oh_pkg.patch
# patch只需要打一次,关闭打patch
patchflag=false
cd $OLDPWD
fi
mkdir -p $builddir/$ARCH-build
}
build() {
cd $builddir
# 关闭 demo,demo 依赖OpenGL
PKG_CONFIG_LIBDIR="${pkgconfigpath}" ${OHOS_SDK}/native/build-tools/cmake/bin/cmake "$@" \
-DBUILD_DEMOS=OFF -DOHOS_ARCH=$ARCH -B$ARCH-build -S./ -L > $buildlog 2>&1
$MAKE VERBOSE=1 -C $ARCH-build >> $buildlog 2>&1
ret=$?
cd $OLDPWD
return $ret
}
package() {
cd "$builddir"
$MAKE VERBOSE=1 -C $ARCH-build install >> $buildlog 2>&1
cd $OLDPWD
}
check() {
echo "The test must be on an OpenHarmony device!"
# 由于demo需要依赖OpenGL导致编译不过,现使用Chipmunk2D官网文档中Hello Chipmunk Example源码作为测试用例,编译如下:
if [ $ARCH == "armeabi-v7a" ]
then
setarm32ENV
elif [ $ARCH == "arm64-v8a" ]
then
setarm64ENV
else
echo "${ARCH} not support"
return -1
fi
cd $builddir
$CC -I include/chipmunk -L $ARCH-build/src -lchipmunk -o $ARCH-build/Chipmunk2D_test Chipmunk2D_test.c
cd $OLDPWD
unset host
if [ $ARCH == "armeabi-v7a" ]
then
unsetarm32ENV
elif [ $ARCH == "arm64-v8a" ]
then
unsetarm64ENV
else
echo "${ARCH} not support"
return -1
fi
# real test CMD
# LD_LIBRARY_PATH=./src/ ./Chipmunk2D_test
}
# 清理环境
cleanbuild() {
rm -rf ${PWD}/$builddir #${PWD}/$packagename
}