summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Seifert <soap@gentoo.org>2017-03-11 01:00:45 +0100
committerDavid Seifert <soap@gentoo.org>2017-03-11 01:11:06 +0100
commitc1ec4fe569091637ac5a64c52b031755f10f283f (patch)
tree2927ba233fa423167a97e22ea363dfd2c06110cf /dev-python
parentdev-python/numexpr: Add python3_6 to PYTHON_COMPAT (diff)
downloadgentoo-c1ec4fe569091637ac5a64c52b031755f10f283f.tar.gz
gentoo-c1ec4fe569091637ac5a64c52b031755f10f283f.tar.bz2
gentoo-c1ec4fe569091637ac5a64c52b031755f10f283f.zip
dev-python/cgkit: Add py3.5 support
* EAPI 6 * Call distutils-r1_python_prepare_all * Fix compiling in C++14 mode with GCC 6 Bug: https://bugs.gentoo.org/show_bug.cgi?id=611774 Package-Manager: Portage-2.3.4, Repoman-2.3.2
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/cgkit/cgkit-2.0.0-r1.ebuild85
-rw-r--r--dev-python/cgkit/files/cgkit-2.0.0-fix-build-system.patch40
-rw-r--r--dev-python/cgkit/files/cgkit-2.0.0-fix-c++14.patch33
3 files changed, 158 insertions, 0 deletions
diff --git a/dev-python/cgkit/cgkit-2.0.0-r1.ebuild b/dev-python/cgkit/cgkit-2.0.0-r1.ebuild
new file mode 100644
index 000000000000..0ce53541ecbb
--- /dev/null
+++ b/dev-python/cgkit/cgkit-2.0.0-r1.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+DISTUTILS_IN_SOURCE_BUILD=1
+
+inherit distutils-r1 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}"
+
+src_unpack() {
+ cgkit_unpack() {
+ local tarball
+ if python_is_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
+ }
+ python_foreach_impl cgkit_unpack
+ mkdir "${S}" || die
+}
+
+python_prepare() {
+ eapply \
+ "${FILESDIR}"/${PN}-2.0.0-fix-build-system.patch \
+ "${FILESDIR}"/${PN}-2.0.0-fix-c++14.patch
+ if python_is_python3; then
+ eapply "${FILESDIR}"/${PN}-py3k-pillow.patch
+ else
+ eapply "${FILESDIR}"/${PN}-py2k-pillow.patch
+ fi
+
+ cp config_template.cfg config.cfg || die
+ cat >> config.cfg <<- _EOF_ || die
+ BOOST_LIB = 'boost_python-${EPYTHON#python}'
+ LIBS += ['GL', 'GLU', 'glut']
+ LIB3DS_AVAILABLE = $(usex 3ds True False)
+ _EOF_
+
+ # Remove invalid test
+ rm -f unittests/test_pointcloud.py || die
+}
+
+python_configure_all() {
+ tc-export AR CXX
+}
+
+python_compile() {
+ pushd supportlib >/dev/null || die
+ CXXFLAGS="${CXXFLAGS} -fPIC" escons
+ popd >/dev/null || die
+ distutils-r1_python_compile
+}
+
+python_test() {
+ pushd unittests >/dev/null || die
+ mkdir tmp || die
+ "${EPYTHON}" all.py || die "Testing failed with ${EPYTHON}"
+ popd >/dev/null || die
+}
diff --git a/dev-python/cgkit/files/cgkit-2.0.0-fix-build-system.patch b/dev-python/cgkit/files/cgkit-2.0.0-fix-build-system.patch
new file mode 100644
index 000000000000..2b62071380c1
--- /dev/null
+++ b/dev-python/cgkit/files/cgkit-2.0.0-fix-build-system.patch
@@ -0,0 +1,40 @@
+Make scons respect user variables
+
+--- a/setup.py
++++ b/setup.py
+@@ -214,7 +214,7 @@
+
+ # The following variables are used to customize the compile process
+
+-INC_DIRS = []
++INC_DIRS = ['/usr/include']
+ LIB_DIRS = []
+ LIBS = []
+ CC_ARGS = []
+--- a/supportlib/SConstruct
++++ b/supportlib/SConstruct
+@@ -30,19 +30,11 @@
+ # Add the local 'include' directory...
+ env.Append(CPPPATH = ["include"])
+
+-# Do platform specific stuff...
+-if sys.platform=="win32":
+- env.Append(CCFLAGS = ["/GX", "/GR", "/MD", "/W3"])
+- env.Append(CPPDEFINES = ["WIN32", "_LIB"])
+-elif sys.platform=="darwin":
+- env.Append(CCFLAGS = ["-arch", "x86_64"])
+- env.Append(CCFLAGS = ["-arch", "i386"])
+-# env.Append(CCFLAGS = ["-arch", "ppc"])
+- env.Append(CPPPATH = ["/opt/local/include"])
+- env.Append(CCFLAGS = ["-fPIC"])
+-else:
+- env.Append(CPPPATH = ["/opt/local/include"])
+- env.Append(CCFLAGS = ["-fPIC"])
++env.Append(CPPPATH = ['/usr/include'])
++env['AR'] = os.environ.get('AR', 'ar')
++env['CXX'] = os.environ.get('CXX', 'g++')
++env['CXXFLAGS'] = os.environ.get('CXXFLAGS', '-fPIC')
++env['CPPFLAGS'] = os.environ.get('CPPFLAGS', '')
+
+ # Setup the help message
+ Help(vars.GenerateHelpText(env))
diff --git a/dev-python/cgkit/files/cgkit-2.0.0-fix-c++14.patch b/dev-python/cgkit/files/cgkit-2.0.0-fix-c++14.patch
new file mode 100644
index 000000000000..70f794664e81
--- /dev/null
+++ b/dev-python/cgkit/files/cgkit-2.0.0-fix-c++14.patch
@@ -0,0 +1,33 @@
+Fix building in C++14 mode
+
+--- a/wrappers/py_geoms1.cpp
++++ b/wrappers/py_geoms1.cpp
+@@ -142,7 +142,7 @@
+ string name = it->first;
+ const PrimVarInfo& info = it->second;
+ it++;
+- return make_tuple(name, info.storage, info.type, info.multiplicity);
++ return boost::python::make_tuple(name, info.storage, info.type, info.multiplicity);
+ }
+ }
+
+@@ -163,7 +163,7 @@
+ }
+ else
+ {
+- return make_tuple(name, info->storage, info->type, info->multiplicity);
++ return boost::python::make_tuple(name, info->storage, info->type, info->multiplicity);
+ }
+ }
+
+--- a/wrappers/py_slot.h
++++ b/wrappers/py_slot.h
+@@ -40,7 +40,7 @@
+ // .def("onValueChanged", &Slot<double>::onValueChanged, &SlotWrapper<double>::base_onValueChanged)
+
+ // This macro can be used to create a new Python array slot type
+-#define ARRAYSLOT(sname,stype) class_<_ArraySlotIterator<stype> >("_"sname"_Iterator", init<ArraySlot<stype>&>()) \
++#define ARRAYSLOT(sname,stype) class_<_ArraySlotIterator<stype> >("_" sname "_Iterator", init<ArraySlot<stype>&>()) \
+ .def("__iter__", &_ArraySlotIterator<stype>::__iter__) \
+ .def("next", &_ArraySlotIterator<stype>::next) \
+ ; \