blob: 7062755cf0c5ea217a736f5c0373759881e1d2fa [file] [log] [blame]
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
PYTHON_COMPAT=( python{2_7,3_3,3_4} )
inherit distutils-r1 eutils scons-utils toolchain-funcs
MY_P="${P/_/}"
DESCRIPTION="Python library for creating 3D images"
HOMEPAGE="http://cgkit.sourceforge.net"
SRC_URI="$(python_gen_cond_dep mirror://sourceforge/${PN}/${PN}/${P}/${P}-py2k.tar.gz 'python2*')
$(python_gen_cond_dep mirror://sourceforge/${PN}/${PN}/${P}/${P}-py3k.tar.gz 'python3*')"
LICENSE="LGPL-2.1 MPL-1.1 GPL-2"
SLOT="0"
KEYWORDS="amd64 ppc x86"
IUSE="3ds"
RDEPEND=">=dev-libs/boost-1.48[python,${PYTHON_USEDEP}]
$(python_gen_cond_dep 'dev-python/pyprotocols[${PYTHON_USEDEP}]' 'python2*')
dev-python/pyopengl[${PYTHON_USEDEP}]
dev-python/pygame[${PYTHON_USEDEP}]
dev-python/pillow[${PYTHON_USEDEP}]
3ds? ( ~media-libs/lib3ds-1.3.0 )"
DEPEND="${RDEPEND}
dev-util/scons"
DISTUTILS_IN_SOURCE_BUILD=1
cgkit_unpack() {
local tarball
if [[ ${EPYTHON} == python3* ]]; then
tarball=${P}-py3k.tar.gz
else
tarball=${P}-py2k.tar.gz
fi
mkdir "${BUILD_DIR}" || die
tar -C "${BUILD_DIR}" -x --strip-components 1 -f "${DISTDIR}/${tarball}" || die
}
src_unpack() {
python_foreach_impl cgkit_unpack
mkdir "${S}" || die
}
python_prepare_all() {
return 0
}
python_prepare() {
if [[ ${EPYTHON} == python3* ]]; then
epatch "${FILESDIR}/${PN}-py3k-pillow.patch"
else
epatch "${FILESDIR}/${PN}-py2k-pillow.patch"
fi
[[ ${PATCHES} ]] && epatch "${PATCHES[@]}"
sed -e "s/fPIC/fPIC\",\"${CFLAGS// /\",\"}/" -i supportlib/SConstruct
cp config_template.cfg config.cfg
echo "BOOST_LIB = 'boost_python-${EPYTHON#python}'" >> config.cfg
echo "LIBS += ['GL', 'GLU', 'glut']" >> config.cfg
if use 3ds; then
echo "LIB3DS_AVAILABLE = True" >> config.cfg
fi
sed -e "s:INC_DIRS = \[\]:INC_DIRS = \['/usr/include'\]:" -i setup.py
# Remove invalid test
rm -f unittests/test_pointcloud.py || die
}
python_compile() {
pushd supportlib > /dev/null || die
escons
popd > /dev/null || die
distutils-r1_python_compile
}
python_test() {
pushd unittests > /dev/null || die
mkdir tmp || die
"${PYTHON}" all.py || die "Testing failed with ${EPYTHON}"
popd > /dev/null || die
}