+++ /dev/null
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit cmake-utils cuda eutils multilib toolchain-funcs
-
-DESCRIPTION="Fast approximate nearest neighbor searches in high dimensional spaces"
-HOMEPAGE="http://www.cs.ubc.ca/research/flann/"
-SRC_URI="
- http://people.cs.ubc.ca/~mariusm/uploads/FLANN/${P}-src.zip
- test? ( https://dev.gentoo.org/~bicatali/distfiles/${P}-testdata.tar.xz )"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~ppc ~x86 ~amd64-linux ~x86-linux"
-IUSE="cuda doc examples mpi openmp octave static-libs test"
-
-RDEPEND="
- cuda? ( >=dev-util/nvidia-cuda-toolkit-5.5 )
- mpi? (
- sci-libs/hdf5[mpi]
- dev-libs/boost[mpi]
- )
- !mpi? ( !sci-libs/hdf5[mpi] )
- octave? ( >=sci-mathematics/octave-3.6.4-r1 )"
-DEPEND="${RDEPEND}
- app-arch/unzip
- doc? ( dev-tex/latex2html )
- test? (
- dev-cpp/gtest
- cuda? ( sci-libs/hdf5 )
- )
-"
-
-PATCHES=(
- "${FILESDIR}"/${P}-examples.patch
- "${FILESDIR}"/${P}-options.patch
- "${FILESDIR}"/${P}-CUDA_NVCC_FLAGS.patch
- "${FILESDIR}"/${P}-cuda5.5.patch
- "${FILESDIR}"/${P}-multilib.patch
- "${FILESDIR}"/${P}-docdir.patch
-)
-
-S="${WORKDIR}"/${P}-src
-
-pkg_setup() {
- if use openmp; then
- if [[ $(tc-getCC) == *gcc ]] && ! tc-has-openmp ; then
- ewarn "OpenMP is not available in your current selected gcc"
- die "need openmp capable gcc"
- fi
- fi
-}
-
-src_prepare() {
- # bug #302621
- use mpi && export CXX=mpicxx
- # produce pure octave files
- # octave gentoo installation for .m files respected
- sed -i \
- -e 's/--mex//' \
- -e 's/\.mex/\.oct/' \
- -e '/FILES/s/${MEX_FILE}//' \
- -e 's:share/flann/octave:share/octave/site/m:' \
- -e "/CUSTOM_TARGET/a\INSTALL(FILES \${MEX_FILE} DESTINATION libexec/octave/site/oct/${CHOST})" \
- src/matlab/CMakeLists.txt || die
- use cuda && cuda_src_prepare
-
- cmake-utils_src_prepare
-}
-
-src_configure() {
- # python bindings are split
- local mycmakeargs=(
- -DBUILD_C_BINDINGS=ON
- -DBUILD_PYTHON_BINDINGS=OFF
- -DPYTHON_EXECUTABLE=
- -DDOCDIR=share/doc/${PF}
- $(cmake-utils_use_build cuda CUDA_LIB)
- $(cmake-utils_use_build examples)
- $(cmake-utils_use_build doc)
- $(cmake-utils_use_build test TESTS)
- $(cmake-utils_use_build octave MATLAB_BINDINGS)
- $(cmake-utils_use_use mpi)
- $(cmake-utils_use_use openmp)
- )
- use cuda && \
- mycmakeargs+=(
- -DCUDA_NVCC_FLAGS="${NVCCFLAGS},-arsch"
- )
- cmake-utils_src_configure
-}
-
-src_test() {
- ln -s "${WORKDIR}"/testdata/* test/ || die
- # -j1 to avoid obversubscribing jobs
- LD_LIBRARY_PATH="${BUILD_DIR}/lib" \
- cmake-utils_src_compile -j1 test
-}
-
-src_install() {
- cmake-utils_src_install
- dodoc README.md
- if ! use static-libs; then
- find "${ED}" -name 'lib*.a' -exec rm -rf '{}' '+' || die
- fi
-}