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