summaryrefslogtreecommitdiff
path: root/sci-libs/flann
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /sci-libs/flann
reinit the tree, so we can have metadata
Diffstat (limited to 'sci-libs/flann')
-rw-r--r--sci-libs/flann/Manifest15
-rw-r--r--sci-libs/flann/files/flann-1.8.4-CUDA_NVCC_FLAGS.patch16
-rw-r--r--sci-libs/flann/files/flann-1.8.4-cuda5.5.patch61
-rw-r--r--sci-libs/flann/files/flann-1.8.4-docdir.patch24
-rw-r--r--sci-libs/flann/files/flann-1.8.4-examples.patch35
-rw-r--r--sci-libs/flann/files/flann-1.8.4-multilib.patch15
-rw-r--r--sci-libs/flann/files/flann-1.8.4-options.patch41
-rw-r--r--sci-libs/flann/flann-1.8.4-r1.ebuild108
-rw-r--r--sci-libs/flann/flann-1.9.1.ebuild86
-rw-r--r--sci-libs/flann/flann-9999.ebuild102
-rw-r--r--sci-libs/flann/metadata.xml25
11 files changed, 528 insertions, 0 deletions
diff --git a/sci-libs/flann/Manifest b/sci-libs/flann/Manifest
new file mode 100644
index 000000000000..cbab70163276
--- /dev/null
+++ b/sci-libs/flann/Manifest
@@ -0,0 +1,15 @@
+AUX flann-1.8.4-CUDA_NVCC_FLAGS.patch 618 SHA256 62e8810e965e57c83b45ab1c2d2f316df7ad8dc898751df8d2fc5204ffc8cfda SHA512 8a6e385b0b36386288861bb795fda34cc636d73862c1321fc4482855dd5032179bf3ea0016bd7c51e8d6abf0da3b70f6d22058d8fd2da414db09b2e2bb662a7b WHIRLPOOL 382d0706a09a9438204dc6a0849631d858565a35d7d0521f3ea6e84bb6a965777fec1d96996391de605d83d8ce250d559d7030ccba344f8f82895075b203575f
+AUX flann-1.8.4-cuda5.5.patch 2227 SHA256 c205148fe5184334f37dfed4a0c4d5beac3db2b7dbd6fa30dd16f7487a12d3f0 SHA512 628367450c5d1a45dc69817ce58e90f87602d1593244a2663703ce02967e98a1fb323ec636700bd20b9278640d89b4453330d1e08e49ebdbfffce65ab5c7ba74 WHIRLPOOL 21d21b512f64ce085ac58744dbce05a29303271569433277816d98c776dd4f5dc6696d1b61bc82f850f66e0ec72c805ac321b56a51d9491699d52986b7d2854c
+AUX flann-1.8.4-docdir.patch 571 SHA256 9feb1fe865a8364babd3dc64f5f22b9de7e4a1aab02f602c05f64882e6d5f70f SHA512 ef2fc88ff254afebf75a75bebad5021ec5aa00077cf3ed3b31242a7e7c17ee872d3cff71064b6bd6ecaf7c284dba31032aa0d0f71ba6257e1ebd01513036978c WHIRLPOOL f68a4d95d59b88b0fcb3471a72e5e2464afd450bd598f117a055704b860f11bed5ce146c9766b596bb97d03ebef44fd9be1ce27978d994944b2a58ab6397166a
+AUX flann-1.8.4-examples.patch 1020 SHA256 5c664f93bad2b77ec2159dc856aeb1be8b8b1b18887434b69f5a760d0b1a0f87 SHA512 5baeb594d2b4a1a8456135c9f0bec72a3182dcacbdebd398b079f13982e5e7a1722500313699ea25b7085f1dca3cab4ea355992d9014135e011452168e65fc83 WHIRLPOOL e2c2136e47be52f4ec3b9b138c95afe896928a033b16ecc1c197d7efb73489acd08570eb3952dda083f49652c70399b7ec8121351143ee7ba2ad8a74beffb153
+AUX flann-1.8.4-multilib.patch 570 SHA256 320df5839e9904a25db9f94e6283576fcef426ee4167a45cc5b729656c8df505 SHA512 1f5a72920af200f23a318b3205cce498a6f193eb8f89b85fcc9b8ef45c49b4b98143cc9cc6996821e63cdb709eeac0f13b46c129471aa82a06ec22be1f4ec8f6 WHIRLPOOL 153dc2c739d7427fa4a114390b49727adb129a9604fa045a7e2c4581f7f994fca31be031dc346b0144e828388bf02a4c8b7c843a7eab5c71fd914d7307ed81a5
+AUX flann-1.8.4-options.patch 1485 SHA256 3d547a6e4c1658a37011aefc60d4215c5dd04bc5caf6f965a6717df4bad4f4af SHA512 2335ddf683d883f0b5247b4d7e688644231c2d6a914c0d271965b0024270e77a36ccded142ab666651833712cb64a427eb753f76757cf5eb765f130b170f4251 WHIRLPOOL b7285c92c904e07fe729fe46e0689067039914eb719a0997c71e994fe523f30f0a4aab3b0d7dfab638e82cd95871ee55693f89a7dff4786a5b6e158f9e52cc27
+DIST flann-1.8.4-src.zip 561057 SHA256 dfbb9321b0d687626a644c70872a2c540b16200e7f4c7bd72f91ae032f445c08 SHA512 47ac6be66e3ec7303d28febc5a4cea2f8d1b3d81c3b7081f27cf17936074e06e91e30123569b41269a2b97c9960274dc485a575d77c1a386e8f539a76a8d3a0a WHIRLPOOL f7722d8c0a8482809920927353421ebb578464fe6746a4dba20a6c7b6f941715529d5be33aebd1726db36eae3b5d4080c6ae86b0f807e6e384af32b87735b83b
+DIST flann-1.8.4-testdata.tar.xz 26744244 SHA256 4eaecf3a221ea6611e841fa2f459a17b6a5fdd633338bb5bc46c434e37667141 SHA512 f2bee5e2dfe2fbb42953df563f178b67639b62e26fc31be14e07c196ba3e84db21804e594af44991f7cf45ca5e10ff753093cf160abf33e90d19735a9a0b51cb WHIRLPOOL e49e5a594464955241ebc9bdfa908bac8b93b2fb465fc08ab73ec4d57194a8b71361ecb67985cdc641013fb8c3fb51ea2033769f41e558ab86e8f71e477b97da
+DIST flann-1.9.1.tar.gz 485391 SHA256 b23b5f4e71139faa3bcb39e6bbcc76967fbaf308c4ee9d4f5bfbeceaa76cc5d3 SHA512 0da78bb14111013318160dd3dee1f93eb6ed077b18439fd6496017b62a8a6070cc859cfb3e08dad4c614e48d9dc1da5f7c4a21726ee45896d360506da074a6f7 WHIRLPOOL 40c16b3b2d8ef458676c37a246ae1c0d45d14163a42a46172283cf20a377ee43971e7cacce9d575cc7ecfa0eab01377dbd5e592e3e7ae71e74334af18ebab836
+EBUILD flann-1.8.4-r1.ebuild 2691 SHA256 2551143fc193c442bc3951b2a28e551f8efcf09a44509ec7dd4635daef242676 SHA512 1fbac04c82251e1dd9ee912128b74822a7fd7dd890f9a3272a1c6a3e37c8156623a9fd4b73c369497b0462615e8117dc6e94359f791b12d428788e596e1a6bbd WHIRLPOOL 65fe588cfbf53b8244fada11b36ce5243f7837890e11a294ce28428ea3d5e0725648d32e2558eba9aa09176736ceb215d7db6fcbe8b6513b0d76f18294430e50
+EBUILD flann-1.9.1.ebuild 2164 SHA256 bc1339ffc50e45e5465f44ff506d34171806aacea33077bb26dd033cc24ec9b1 SHA512 9cc622e6c10568df623fd7de867dc32bd6bd78b1713c65a796f20ec58de1e4e7063955386315827a4e35bd87e11acaa75c50e29cfa06b61cef17055e14fb14eb WHIRLPOOL d44f0c1bca7a07e5426fbd4b7161ffc6b81bd8d5853856b715ec30525f86a0a0e7b302680d0ee9d2cc322e26c17245f216f4af8399760a4822d2e5097dba2c1c
+EBUILD flann-9999.ebuild 2449 SHA256 31f423cca0924bdb84254b81d3641108092964d23ccc16c1dd28e63cf4dee7ea SHA512 c5bd3475386f5cb7f5a0c7d71932694752a48f2f67a8052cf668424ff2fce69f0d2fbfa040b994e06942c17502bac1b3f0032f7387325d0d9c3578273c353f6b WHIRLPOOL 6f13817a23de84434591d35384d05ea4e6051f2cd7af25298979245fa3105506e42d20b31d6bfec0836294eff0e2611f6dc4dcd19859c474bf6d2758403a0272
+MISC ChangeLog 3375 SHA256 b0a1691a499a4d9752253190524cfbdaa1ef17d43152d4615a7de7f9f78aa711 SHA512 6ca6013017bc7f1d80a88b2b14b55aa66c89653c6f9ceec8a42f66b4a959729484fb5a40c072c7a2dfd78cd9c46063104d6704bd7241b0d597b38270be6701e1 WHIRLPOOL 285dd44b240e4b3fcea328bab90b80ba5db52d03e6c5cb3293940fe317fd39e35aecaab0df0b82eeb9ab123f17c30a97f6739459fe7017d86b320a399aa7fbe8
+MISC ChangeLog-2015 4122 SHA256 714363aa56cb30e781f169fe83c239f0631c33e3b6b945b02bcddfa37c70838a SHA512 0e698aa9b8353e267eb669079e02d7afdd66faa8897d43502927b93af058f2b823e7b2b9d995c89915831a75f4052437a0f257fce1e9f122d1291f7e72858d74 WHIRLPOOL 2bba80bbb4a3179ac8b28d050e0c71fc412fb7976e057b1a81b26687006040fa0e5e13a16022d56c497add6a13d2af27c24aa47ab77588bc26e0f47f3f5c876d
+MISC metadata.xml 971 SHA256 68be4e47e528f96159985f757fd71a6e217a4cc5654b9622ee1b7f89270bdffe SHA512 b8416b149e26ede6d3f207d7e48316a8b880436c40c4ed5610953ceda0fee4e5b97f1b99f778678514dd115c257fb419b365ed46fdd90a19d444bca8e3e0fe03 WHIRLPOOL 20e25a61dafe4a8a9a6ac1d1ee3ad997953ae9378643bc1840b726a9aa2b2171457a7e08681333ae5cf2a784befb4b12494665f5649d2a0b47cbdbe202b3925b
diff --git a/sci-libs/flann/files/flann-1.8.4-CUDA_NVCC_FLAGS.patch b/sci-libs/flann/files/flann-1.8.4-CUDA_NVCC_FLAGS.patch
new file mode 100644
index 000000000000..1a068af28351
--- /dev/null
+++ b/sci-libs/flann/files/flann-1.8.4-CUDA_NVCC_FLAGS.patch
@@ -0,0 +1,16 @@
+ src/cpp/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt
+index 8e72409..a4b35b1 100644
+--- a/src/cpp/CMakeLists.txt
++++ b/src/cpp/CMakeLists.txt
+@@ -15,7 +15,7 @@ endif()
+ set_property(TARGET flann_cpp_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC FLANN_USE_CUDA)
+
+ if (BUILD_CUDA_LIB)
+- SET(CUDA_NVCC_FLAGS -DFLANN_USE_CUDA)
++ SET(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS};-DFLANN_USE_CUDA")
+ if(CMAKE_COMPILER_IS_GNUCC)
+ set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS};-Xcompiler;-fPIC;-arch=sm_13" )
+ if (NVCC_COMPILER_BINDIR)
diff --git a/sci-libs/flann/files/flann-1.8.4-cuda5.5.patch b/sci-libs/flann/files/flann-1.8.4-cuda5.5.patch
new file mode 100644
index 000000000000..046b3252c36f
--- /dev/null
+++ b/sci-libs/flann/files/flann-1.8.4-cuda5.5.patch
@@ -0,0 +1,61 @@
+ src/cpp/flann/util/cuda/result_set.h | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/src/cpp/flann/util/cuda/result_set.h b/src/cpp/flann/util/cuda/result_set.h
+index 9ac8111..324ca1e 100644
+--- a/src/cpp/flann/util/cuda/result_set.h
++++ b/src/cpp/flann/util/cuda/result_set.h
+@@ -54,7 +54,7 @@ struct SingleResultSet
+ DistanceType bestDist;
+ const DistanceType epsError;
+
+- __device__
++ __device__ __host__
+ SingleResultSet( DistanceType eps ) : bestIndex(-1),bestDist(INFINITY), epsError(eps){ }
+
+ __device__
+@@ -129,7 +129,7 @@ struct KnnResultSet
+ const DistanceType epsError;
+
+
+- __device__
++ __device__ __host__
+ KnnResultSet(int knn, bool sortResults, DistanceType eps) : foundNeighbors(0),largestHeapDist(INFINITY),k(knn), sorted(sortResults), epsError(eps){ }
+
+ // __host__ __device__
+@@ -229,7 +229,7 @@ struct CountingRadiusResultSet
+ DistanceType radius_sq_;
+ int max_neighbors_;
+
+- __device__
++ __device__ __host__
+ CountingRadiusResultSet(DistanceType radius, int max_neighbors) : count_(0),radius_sq_(radius), max_neighbors_(max_neighbors){ }
+
+ __device__
+@@ -279,7 +279,7 @@ struct RadiusKnnResultSet
+ // int count_;
+
+
+- __device__
++ __device__ __host__
+ RadiusKnnResultSet(DistanceType radius, int knn, int* segment_starts, bool sortResults) : foundNeighbors(0),largestHeapDist(radius),k(knn), sorted(sortResults), radius_sq_(radius),segment_starts_(segment_starts) { }
+
+ // __host__ __device__
+@@ -381,7 +381,7 @@ struct KnnRadiusResultSet
+ const DistanceType radius_sq;
+
+
+- __device__
++ __device__ __host__
+ KnnRadiusResultSet(int knn, bool sortResults, DistanceType eps, DistanceType radius) : foundNeighbors(0),largestHeapDist(radius),k(knn), sorted(sortResults), epsError(eps),radius_sq(radius){ }
+
+ // __host__ __device__
+@@ -484,7 +484,7 @@ struct RadiusResultSet
+ int count_;
+ bool sorted_;
+
+- __device__
++ __device__ __host__
+ RadiusResultSet(DistanceType radius, int* segment_starts, bool sorted) : radius_sq_(radius), segment_starts_(segment_starts), count_(0), sorted_(sorted){ }
+
+ __device__
diff --git a/sci-libs/flann/files/flann-1.8.4-docdir.patch b/sci-libs/flann/files/flann-1.8.4-docdir.patch
new file mode 100644
index 000000000000..4b16684de14d
--- /dev/null
+++ b/sci-libs/flann/files/flann-1.8.4-docdir.patch
@@ -0,0 +1,24 @@
+ doc/CMakeLists.txt | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
+index 2d8eb24..aeac8ed 100644
+--- a/doc/CMakeLists.txt
++++ b/doc/CMakeLists.txt
+@@ -1,4 +1,8 @@
+ find_package(LATEX)
++
++if (NOT DOCDIR)
++ set(DOCDIR share/doc/flann)
++endif ()
+
+ if (EXISTS ${PDFLATEX_COMPILER} AND EXISTS ${BIBTEX_COMPILER})
+ include(${PROJECT_SOURCE_DIR}/cmake/UseLATEX.cmake)
+@@ -14,6 +18,6 @@ endif()
+
+ install(
+ FILES manual.pdf
+- DESTINATION share/doc/flann
++ DESTINATION ${DOCDIR}
+ OPTIONAL
+ )
diff --git a/sci-libs/flann/files/flann-1.8.4-examples.patch b/sci-libs/flann/files/flann-1.8.4-examples.patch
new file mode 100644
index 000000000000..b3346b35f73c
--- /dev/null
+++ b/sci-libs/flann/files/flann-1.8.4-examples.patch
@@ -0,0 +1,35 @@
+From 3922081fbd6710f4b72421069f6bf24dc37d35a8 Mon Sep 17 00:00:00 2001
+From: Casey Goodlett <casey.goodlett@kitware.com>
+Date: Thu, 8 Aug 2013 18:42:45 -0400
+Subject: [PATCH] Option to disable example building
+
+---
+ CMakeLists.txt | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5b19367..410a8f9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -53,6 +53,7 @@ option(BUILD_C_BINDINGS "Build C bindings" ON)
+ option(BUILD_PYTHON_BINDINGS "Build Python bindings" ON)
+ option(BUILD_MATLAB_BINDINGS "Build Matlab bindings" ON)
+ option(BUILD_CUDA_LIB "Build CUDA library" OFF)
++option(BUILD_EXAMPLES "Build examples" ON)
+ option(USE_OPENMP "Use OpenMP multi-threading" ON)
+ option(USE_MPI "Use MPI" OFF)
+
+@@ -154,7 +155,9 @@ endif()
+
+ add_subdirectory( cmake )
+ add_subdirectory( src )
+-add_subdirectory( examples )
++if (BUILD_EXAMPLES)
++ add_subdirectory( examples )
++endif(BUILD_EXAMPLES)
+ add_subdirectory( test )
+ add_subdirectory( doc )
+
+--
+1.8.5.1
+
diff --git a/sci-libs/flann/files/flann-1.8.4-multilib.patch b/sci-libs/flann/files/flann-1.8.4-multilib.patch
new file mode 100644
index 000000000000..17a9d65dd778
--- /dev/null
+++ b/sci-libs/flann/files/flann-1.8.4-multilib.patch
@@ -0,0 +1,15 @@
+ cmake/flann_utils.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/flann_utils.cmake b/cmake/flann_utils.cmake
+index 1a10939..afe4742 100644
+--- a/cmake/flann_utils.cmake
++++ b/cmake/flann_utils.cmake
+@@ -1,6 +1,6 @@
+ macro(GET_OS_INFO)
+ string(REGEX MATCH "Linux" OS_IS_LINUX ${CMAKE_SYSTEM_NAME})
+- set(FLANN_LIB_INSTALL_DIR "lib")
++ set(FLANN_LIB_INSTALL_DIR "lib${LIB_SUFFIX}")
+ set(FLANN_INCLUDE_INSTALL_DIR
+ "include/${PROJECT_NAME_LOWER}-${FLANN_MAJOR_VERSION}.${FLANN_MINOR_VERSION}")
+ endmacro(GET_OS_INFO)
diff --git a/sci-libs/flann/files/flann-1.8.4-options.patch b/sci-libs/flann/files/flann-1.8.4-options.patch
new file mode 100644
index 000000000000..dd212aca66a4
--- /dev/null
+++ b/sci-libs/flann/files/flann-1.8.4-options.patch
@@ -0,0 +1,41 @@
+ CMakeLists.txt | 13 +++++++++++--
+ 1 file changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 410a8f9..b6244a4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -54,6 +54,8 @@ option(BUILD_PYTHON_BINDINGS "Build Python bindings" ON)
+ option(BUILD_MATLAB_BINDINGS "Build Matlab bindings" ON)
+ option(BUILD_CUDA_LIB "Build CUDA library" OFF)
+ option(BUILD_EXAMPLES "Build examples" ON)
++option(BUILD_TESTS "Build tests" ON)
++option(BUILD_DOC "Build documentation" ON)
+ option(USE_OPENMP "Use OpenMP multi-threading" ON)
+ option(USE_MPI "Use MPI" OFF)
+
+@@ -158,8 +160,12 @@ add_subdirectory( src )
+ if (BUILD_EXAMPLES)
+ add_subdirectory( examples )
+ endif(BUILD_EXAMPLES)
+-add_subdirectory( test )
+-add_subdirectory( doc )
++if (BUILD_TESTS)
++ add_subdirectory( test )
++endif (BUILD_TESTS)
++if (BUILD_DOC)
++ add_subdirectory( doc )
++endif (BUILD_DOC)
+
+
+ # CPACK options
+@@ -202,6 +208,9 @@ include(CPack)
+ message(STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}")
+ message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
+ message(STATUS "Building C bindings: ${BUILD_C_BINDINGS}")
++message(STATUS "Building examples: ${BUILD_EXAMPLES}")
++message(STATUS "Building tests: ${BUILD_TESTS}")
++message(STATUS "Building documentation: ${BUILD_DOC}")
+ message(STATUS "Building python bindings: ${BUILD_PYTHON_BINDINGS}")
+ message(STATUS "Building matlab bindings: ${BUILD_MATLAB_BINDINGS}")
+ message(STATUS "Building CUDA library: ${BUILD_CUDA_LIB}")
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..00be826a33e5
--- /dev/null
+++ b/sci-libs/flann/flann-1.8.4-r1.ebuild
@@ -0,0 +1,108 @@
+# 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
+}
diff --git a/sci-libs/flann/flann-1.9.1.ebuild b/sci-libs/flann/flann-1.9.1.ebuild
new file mode 100644
index 000000000000..cc7583379a9b
--- /dev/null
+++ b/sci-libs/flann/flann-1.9.1.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-utils cuda flag-o-matic toolchain-funcs
+
+DESCRIPTION="Fast approximate nearest neighbor searches in high dimensional spaces"
+HOMEPAGE="http://www.cs.ubc.ca/research/flann/"
+SRC_URI="https://github.com/mariusmuja/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE="cuda doc examples mpi openmp octave static-libs"
+
+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 )"
+# TODO:
+# readd dependencies for test suite,
+# requires multiple ruby dependencies
+
+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-utils_src_prepare
+}
+
+src_configure() {
+ append-cxxflags -std=c++11
+
+ # python bindings are split
+ # off into dev-python/pyflann
+ local mycmakeargs=(
+ -DBUILD_C_BINDINGS=ON
+ -DBUILD_PYTHON_BINDINGS=OFF
+ -DPYTHON_EXECUTABLE=
+ -DDOCDIR=share/doc/${PF}
+ -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},-arsch"
+ )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+ if ! use static-libs; then
+ find "${D}" -name 'lib*.a' -delete || die
+ fi
+}
diff --git a/sci-libs/flann/flann-9999.ebuild b/sci-libs/flann/flann-9999.ebuild
new file mode 100644
index 000000000000..2f25498da1dc
--- /dev/null
+++ b/sci-libs/flann/flann-9999.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit cmake-utils cuda eutils git-r3 multilib toolchain-funcs
+
+DESCRIPTION="Fast approximate nearest neighbor searches in high dimensional spaces"
+HOMEPAGE="http://www.cs.ubc.ca/research/flann/"
+SRC_URI="test? ( https://dev.gentoo.org/~bicatali/distfiles/${PN}-1.8.4-testdata.tar.xz )"
+EGIT_REPO_URI="https://github.com/mariusmuja/flann.git"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS=""
+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 )
+ )
+"
+
+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_unpack() {
+ default
+ git-r3_src_unpack
+}
+
+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
+}
diff --git a/sci-libs/flann/metadata.xml b/sci-libs/flann/metadata.xml
new file mode 100644
index 000000000000..3238be55ea69
--- /dev/null
+++ b/sci-libs/flann/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <longdescription lang="en">
+ FLANN is a library for performing fast approximate nearest neighbor
+ searches in high dimensional spaces. It contains a collection of
+ algorithms we found to work best for nearest neighbor search and a
+ system for automatically choosing the best algorithm and optimum
+ parameters depending on the dataset.
+ FLANN is written in C++ and contains bindings for the following
+ languages: C, MATLAB and Python.
+ </longdescription>
+ <use>
+ <flag name="octave">Add bindings for
+ <pkg>sci-mathematics/octave</pkg></flag>
+ <flag name="cuda">Enable support for nVidia CUDA</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">mariusmuja/flann</remote-id>
+ </upstream>
+</pkgmetadata>