summaryrefslogtreecommitdiff
blob: 7062755cf0c5ea217a736f5c0373759881e1d2fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# 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
}