| # 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 |
| } |