diff options
Diffstat (limited to 'sci-libs/flann/flann-1.8.4-r1.ebuild')
-rw-r--r-- | sci-libs/flann/flann-1.8.4-r1.ebuild | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/sci-libs/flann/flann-1.8.4-r1.ebuild b/sci-libs/flann/flann-1.8.4-r1.ebuild new file mode 100644 index 000000000000..31ff4c5f1797 --- /dev/null +++ b/sci-libs/flann/flann-1.8.4-r1.ebuild @@ -0,0 +1,109 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit cmake-utils cuda eutils multilib toolchain-funcs + +DESCRIPTION="Library for performing 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? ( http://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 +} |