blob: 832d3896d46e35f14a018fb65aad42f074dc5bb9 [file] [log] [blame]
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE='tk?'
inherit distutils-r1 eutils
MYPN="OOSuite"
MYPID="f/f3"
DESCRIPTION="OpenOpt suite of Python modules for numerical optimization"
HOMEPAGE="http://openopt.org/"
SRC_URI="http://openopt.org/images/${MYPID}/${MYPN}.zip -> ${MYPN}-${PV}.zip"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
IUSE="examples minimal tk"
RDEPEND="
dev-python/numpy[${PYTHON_USEDEP}]
!minimal? (
dev-python/cvxopt[glpk,${PYTHON_USEDEP}]
dev-python/lp_solve[${PYTHON_USEDEP}]
dev-python/matplotlib[${PYTHON_USEDEP}]
dev-python/setproctitle[${PYTHON_USEDEP}]
sci-libs/nlopt[python]
sci-libs/scipy[${PYTHON_USEDEP}] )"
DEPEND="
app-arch/unzip
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/setuptools[${PYTHON_USEDEP}]"
S="${WORKDIR}/PythonPackages"
OO_DIRS="DerApproximator FuncDesigner OpenOpt SpaceFuncs"
python_prepare() {
# reorganize SpaceFuncs
pushd SpaceFuncs > /dev/null
mkdir SpaceFuncs
cp __version__.py SpaceFuncs || die
mv SpaceFuncs.py __init__.py kernel SpaceFuncs || die
popd > /dev/null
local d
for d in ${OO_DIRS}; do
pushd ${d} > /dev/null
find . -name "*COPYING*" -delete
find . -type d -name examples -or -name tests -or -name doc \
-exec rm -r '{}' +
distutils-r1_python_prepare
popd > /dev/null
done
}
src_prepare() {
distutils-r1_src_prepare
# move all examples and tests to ease installation in proper directory
mkdir "${WORKDIR}/examples"
local d e
for d in ${OO_DIRS}; do
mkdir "${WORKDIR}/examples/${d}" || die
for e in $(find ${d} -type d -name examples -or -name tests -or -name doc); do
mv ${e} "${WORKDIR}/examples/${d}/" || die
done
done
}
python_compile() {
local d
for d in ${OO_DIRS}; do
pushd ${d} > /dev/null
distutils-r1_python_compile
popd > /dev/null
done
}
python_test() {
local d t oldpath=${PYTHONPATH}
for d in ${OO_DIRS}; do
PYTHONPATH="${BUILD_DIR}/${d}/build/lib:${PYTHONPATH}"
done
export PYTHONPATH
cd "${WORKDIR}"/examples
# limit the tests, other need more dependencies
for t in \
DerApproximator/tests/t_check.py \
FuncDesigner/examples/sle1.py \
OpenOpt/examples/nlp_1.py \
SpaceFuncs/examples/triangle.py
do
"${PYTHON}" ${t} || die "test ${t} failed"
done
export PYTHONPATH=${oldpath}
}
python_install() {
local d
for d in ${OO_DIRS}; do
pushd ${d} > /dev/null
distutils-r1_python_install
popd > /dev/null
done
use examples && EXAMPLES="${WORKDIR}"/examples
}