kde-apps/kde-apps-meta: x86 stable (bug #637292)
[gentoo.git] / sci-libs / flann / flann-9999.ebuild
1 # Copyright 1999-2016 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=5
5
6 inherit cmake-utils cuda eutils git-r3 multilib toolchain-funcs
7
8 DESCRIPTION="Fast approximate nearest neighbor searches in high dimensional spaces"
9 HOMEPAGE="http://www.cs.ubc.ca/research/flann/"
10 SRC_URI="test? ( https://dev.gentoo.org/~bicatali/distfiles/${PN}-1.8.4-testdata.tar.xz )"
11 EGIT_REPO_URI="https://github.com/mariusmuja/flann.git"
12
13 LICENSE="BSD"
14 SLOT="0"
15 KEYWORDS=""
16 IUSE="cuda doc examples mpi openmp octave static-libs test"
17
18 RDEPEND="
19         cuda? ( >=dev-util/nvidia-cuda-toolkit-5.5 )
20         mpi? (
21                 sci-libs/hdf5[mpi]
22                 dev-libs/boost[mpi]
23         )
24         !mpi? ( !sci-libs/hdf5[mpi] )
25         octave? ( >=sci-mathematics/octave-3.6.4-r1 )"
26 DEPEND="${RDEPEND}
27         app-arch/unzip
28         doc? ( dev-tex/latex2html )
29         test? (
30                 dev-cpp/gtest
31                 cuda? ( sci-libs/hdf5 )
32         )
33 "
34
35 pkg_setup() {
36         if use openmp; then
37                 if [[ $(tc-getCC) == *gcc ]] && ! tc-has-openmp ; then
38                         ewarn "OpenMP is not available in your current selected gcc"
39                         die "need openmp capable gcc"
40                 fi
41         fi
42 }
43
44 src_unpack() {
45         default
46         git-r3_src_unpack
47 }
48
49 src_prepare() {
50         # bug #302621
51         use mpi && export CXX=mpicxx
52
53         # produce pure octave files
54         # octave gentoo installation for .m files respected
55         sed -i \
56                 -e 's/--mex//' \
57                 -e 's/\.mex/\.oct/' \
58                 -e '/FILES/s/${MEX_FILE}//' \
59                 -e 's:share/flann/octave:share/octave/site/m:' \
60                 -e "/CUSTOM_TARGET/a\INSTALL(FILES \${MEX_FILE} DESTINATION libexec/octave/site/oct/${CHOST})" \
61                 src/matlab/CMakeLists.txt || die
62         use cuda && cuda_src_prepare
63
64         cmake-utils_src_prepare
65 }
66
67 src_configure() {
68         # python bindings are split
69         local mycmakeargs=(
70                 -DBUILD_C_BINDINGS=ON
71                 -DBUILD_PYTHON_BINDINGS=OFF
72                 -DPYTHON_EXECUTABLE=
73                 -DDOCDIR=share/doc/${PF}
74                 $(cmake-utils_use_build cuda CUDA_LIB)
75                 $(cmake-utils_use_build examples)
76                 $(cmake-utils_use_build doc)
77                 $(cmake-utils_use_build test TESTS)
78                 $(cmake-utils_use_build octave MATLAB_BINDINGS)
79                 $(cmake-utils_use_use mpi)
80                 $(cmake-utils_use_use openmp)
81         )
82         use cuda && \
83                 mycmakeargs+=(
84                 -DCUDA_NVCC_FLAGS="${NVCCFLAGS},-arsch"
85                 )
86         cmake-utils_src_configure
87 }
88
89 src_test() {
90         ln -s "${WORKDIR}"/testdata/* test/ || die
91         # -j1 to avoid obversubscribing jobs
92         LD_LIBRARY_PATH="${BUILD_DIR}/lib" \
93                 cmake-utils_src_compile -j1 test
94 }
95
96 src_install() {
97         cmake-utils_src_install
98         dodoc README.md
99         if ! use static-libs; then
100                 find "${ED}" -name 'lib*.a' -exec rm -rf '{}' '+' || die
101         fi
102 }