# Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI=5 MY_P=${P}-src-with-docu MY_V=${PV//\./-} PYTHON_COMPAT=( python{2_5,2_6,2_7} ) PYTHON_REQ_USE="threads,xml" inherit cmake-utils python-r1 DESCRIPTION="C++ computer vision library with emphasize on customizable algorithms and data structures" HOMEPAGE="http://hci.iwr.uni-heidelberg.de/vigra/" SRC_URI="https://github.com/ukoethe/vigra/releases/download/Version-${MY_V}/${MY_P}.tar.gz" LICENSE="MIT" SLOT="0" KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86" IUSE="doc +fftw +hdf5 +jpeg mpi openexr +png +python test +tiff valgrind" # Pull in dev-lang/python:2.7 for vigra-config which is always installed RDEPEND="${RDEPEND} dev-lang/python:2.7 hdf5? ( >=sci-libs/hdf5-1.8.0[!mpi?] ) >=dev-libs/boost-1.52.0-r6:=[python?,${PYTHON_USEDEP}] fftw? ( sci-libs/fftw:3.0 ) jpeg? ( virtual/jpeg ) openexr? ( media-libs/openexr:= ) png? ( media-libs/libpng:0= ) python? ( ${PYTHON_DEPS} dev-python/numpy[${PYTHON_USEDEP}] ) tiff? ( media-libs/tiff:0= ) " DEPEND="${RDEPEND} ${DEPEND} doc? ( app-doc/doxygen python? ( >=dev-python/sphinx-1.1.3-r5[${PYTHON_USEDEP}] ) ) test? ( >=dev-python/nose-1.1.2-r1[${PYTHON_USEDEP}] ) valgrind? ( dev-util/valgrind ) " REQUIRED_USE=" doc? ( hdf5 fftw ) python? ( hdf5 ${PYTHON_REQUIRED_USE} ) test? ( hdf5 python fftw ) " PATCHES=( "${FILESDIR}/${PV}-automagicness.patch" "${FILESDIR}/${PV}-cmake-scripts.patch" "${FILESDIR}/${PV}-mpi-fixes.patch" ) DOCS=( README.md ) pkg_setup() { use python && python_setup } src_prepare() { einfo "Removing shipped doc, Win32 dependencies and VCS files" rm -rf doc rm vigra-dependencies-win32-vs8.zip rm .git* .hg* .travis.yml cmake-utils_src_prepare # Don't use python_fix_shebang because we can't put this behind USE="python" sed -i -e '/env/s:python:python2:' config/vigra-config.in || die } src_configure() { vigra_configure() { local libdir=$(get_libdir) declare -a mycmakeargs; mycmakeargs[ 0]="-DDOCDIR:PATH=${BUILD_DIR}/doc" mycmakeargs[ 1]="-DLIBDIR_SUFFIX=${libdir/lib}" mycmakeargs[ 2]="-DDOCINSTALL:STRING=share/doc/${PF}" mycmakeargs[ 3]="$(cmake-utils_use_enable doc DOC)" mycmakeargs[ 4]="$(cmake-utils_use_with fftw FFTW3)" mycmakeargs[ 5]="$(cmake-utils_use_with hdf5 HDF5)" mycmakeargs[ 6]="$(cmake-utils_use_with jpeg JPEG)" mycmakeargs[ 7]="$(cmake-utils_use_with mpi MPI)" mycmakeargs[ 8]="$(cmake-utils_use_with png PNG)" mycmakeargs[ 9]="$(cmake-utils_use_with openexr OPENEXR)" mycmakeargs[10]="$(cmake-utils_use_with python VIGRANUMPY)" mycmakeargs[11]="$(cmake-utils_use_with tiff TIFF)" mycmakeargs[12]="$(cmake-utils_use_build test TESTING)" mycmakeargs[13]="-DAUTOEXEC_TESTS:BOOL=OFF" mycmakeargs[14]="$(cmake-utils_use test CREATE_CTEST_TARGETS)" mycmakeargs[15]="$(cmake-utils_use test AUTOBUILD_TESTS)" mycmakeargs[16]="$(cmake-utils_use_with valgrind VALGRIND)" cmake-utils_src_configure } if use python; then python_foreach_impl vigra_configure else _check_build_dir init # required for ddocdir vigra_configure fi } src_compile() { local VIGRA_BUILD_DIR vigra_compile() { cmake-utils_src_compile VIGRA_BUILD_DIR="${BUILD_DIR}" } if use python; then python_foreach_impl vigra_compile else vigra_compile fi if use doc; then einfo "Generating Documentation" # use build dir from last compile command BUILD_DIR="${VIGRA_BUILD_DIR}" cmake-utils_src_make doc fi } src_install() { if use python; then python_foreach_impl cmake-utils_src_install else cmake-utils_src_install fi use python && python_optimize } src_test() { # perhaps disable tests (see #390447) vigra_test() { PYTHONPATH="${BUILD_DIR}/vigranumpy/vigra" cmake-utils_src_test } if use python; then python_foreach_impl vigra_test else vigra_test fi }