1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- # Copyright 2022 Gentoo Authors
- # Distributed under the terms of the GNU General Public License v2
- EAPI=8
- inherit cmake cuda flag-o-matic toolchain-funcs
- DESCRIPTION="Fast approximate nearest neighbor searches in high dimensional spaces"
- HOMEPAGE="https://github.com/flann-lib/flann"
- SRC_URI="https://github.com/flann-lib/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
- LICENSE="BSD"
- SLOT="0"
- KEYWORDS="amd64 ~arm arm64 ~ppc x86 ~amd64-linux ~x86-linux"
- IUSE="cuda doc examples mpi octave openmp static-libs"
- BDEPEND="
- app-arch/unzip
- doc? ( dev-tex/latex2html )
- "
- DEPEND="
- app-arch/lz4:=
- cuda? ( >=dev-util/nvidia-cuda-toolkit-5.5 )
- mpi? (
- dev-libs/boost:=[mpi]
- sci-libs/hdf5[mpi]
- )
- !mpi? ( !sci-libs/hdf5[mpi] )
- octave? ( >=sci-mathematics/octave-3.6.4-r1 )
- "
- RDEPEND="${DEPEND}"
- # TODO:
- # readd dependencies for test suite,
- # requires multiple ruby dependencies
- PATCHES=(
- "${FILESDIR}"/${P}-cmake-3.11{,-1}.patch # bug 678030
- "${FILESDIR}"/${P}-cuda-9.patch
- "${FILESDIR}"/${P}-system-lz4.patch # bug 681898
- )
- pkg_pretend() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
- }
- pkg_setup() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
- }
- 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_src_prepare
- }
- src_configure() {
- append-cxxflags -std=c++14
- # python bindings are split off into dev-python/pyflann
- local mycmakeargs=(
- -DBUILD_C_BINDINGS=ON
- -DBUILD_PYTHON_BINDINGS=OFF
- -DPYTHON_EXECUTABLE=
- -DBUILD_CUDA_LIB=$(usex cuda)
- -DBUILD_EXAMPLES=$(usex examples)
- -DBUILD_DOC=$(usex doc)
- -DBUILD_TESTS=OFF
- -DBUILD_MATLAB_BINDINGS=$(usex octave)
- -DUSE_MPI=$(usex mpi)
- -DUSE_OPENMP=$(usex openmp)
- )
- use cuda && mycmakeargs+=(
- -DCUDA_NVCC_FLAGS="${NVCCFLAGS} --linker-options \"-arsch\""
- )
- use doc && mycmakeargs+=( -DDOCDIR=share/doc/${PF} )
- cmake_src_configure
- }
- src_install() {
- cmake_src_install
- use !static-libs && ( find "${D}" -name '*.a' -delete || die )
- }
|