summaryrefslogtreecommitdiff
path: root/sci-libs/flann
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-07 11:42:03 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-07 11:42:03 +0100
commitf70601e0934acd62f6c5d06c5ede4cc607179514 (patch)
tree0b337390375de04b950fc4b45edc0f895a4701a4 /sci-libs/flann
parentb2be182d49eea46686b5cf2680d457df61e89dc4 (diff)
gentoo resync : 07.07.2018
Diffstat (limited to 'sci-libs/flann')
-rw-r--r--sci-libs/flann/Manifest4
-rw-r--r--sci-libs/flann/files/flann-1.9.1-cmake-3.11.patch80
-rw-r--r--sci-libs/flann/flann-1.9.1-r1.ebuild90
-rw-r--r--sci-libs/flann/flann-9999.ebuild4
4 files changed, 177 insertions, 1 deletions
diff --git a/sci-libs/flann/Manifest b/sci-libs/flann/Manifest
index dda7e23477f2..4c58fa58fcbf 100644
--- a/sci-libs/flann/Manifest
+++ b/sci-libs/flann/Manifest
@@ -1,4 +1,6 @@
+AUX flann-1.9.1-cmake-3.11.patch 2998 BLAKE2B 85c6b6feb800ab1a21af86a4001b0056fda416a6b61147f614670968cca13fa2b63d06673a11a2ef72b6f0d0876539ccb68134f4817975d4b796b66a716e606d SHA512 5cdffa2da3538965c0d20fb091a13124cdc301669b622ca35a131680db8abb58cf8e02f1366604a19a5cd10dd67f14861caa1c12da3154d82d576cb8052a4b87
DIST flann-1.9.1.tar.gz 485391 BLAKE2B bf1e1e7feb33e939e1d0586db593bea3fdf66726fbadec63df9ed9c7bdb678babb11001769f0d041a7a569186b3d700db8b96af5eb9740615f6dfd880460f68b SHA512 0da78bb14111013318160dd3dee1f93eb6ed077b18439fd6496017b62a8a6070cc859cfb3e08dad4c614e48d9dc1da5f7c4a21726ee45896d360506da074a6f7
+EBUILD flann-1.9.1-r1.ebuild 2242 BLAKE2B c36832b645ca46e3aa622882cca34b644d8b667def8b900f1e5eea83fa0d55677f65c14c4a17134f080b4b7fe863023a71a7aeac72385bc25a9c2a4048fb33bb SHA512 08de8ba5d423999f8403104be8efbd678e6c4981790a314e717944d6f5ca714cf97219efa445894145acc47d896ce11a49867e19c654b6c403db3b55700b5ab0
EBUILD flann-1.9.1.ebuild 2184 BLAKE2B b30802c31a247f9665be199ed77ffe5dbaf9d5f5d7650b2a8c8cf472af63cebdd1bc7b7a258136d23b43f96c015069c8905fe9300a34a51e4b8dcbba8a331a2b SHA512 eba3ebb2798f06e6785c008077a664136ab4e58fda5d647e411e03778036895d43884838176f0a761b2dd392f09abdb4e5dd91f4ff5ea3b27eb1048d620bf930
-EBUILD flann-9999.ebuild 2121 BLAKE2B 336e31bc0e5ece6c63ca3c82e3b61605fbfa46e76ab111574b3d05303add959c31b2339c60768d7ab32f56e534b7cb08f08c1a29fb15279bf2d048a02d00df06 SHA512 6e3978c5c92f2723eed4615cc292aedd3be146a9afe0fc47cd1922a12fb9fb58d81d2f284f2946d96c5f4c2d235f06c0dc5929b37258ea83bf412d36a0ac1e2e
+EBUILD flann-9999.ebuild 2178 BLAKE2B de6de98ab61428b3f19b8b229b5ad947a3e73478f21c45900b0752bcf6e382317d59020618d876e8a3908f2ae9ae770ef204959fff5f3f8bdd0d67825fb62256 SHA512 0ff48c8f14166bf2a4a77ec562618156b7ec7a40282ea0f61d233ff79a9fb3bb84195ac0465dd7b9dde7fc25889dae11a3f0088a0db3a51de00cb9627343d6bd
MISC metadata.xml 971 BLAKE2B 5cffd393d18c3719d8b61069dbc84f4ce4e16e6746637b1203dcba3719fb672d8db082afa93add6be9ebc4203df85391d20eb824a7a9ea3550b37295186538ff SHA512 b8416b149e26ede6d3f207d7e48316a8b880436c40c4ed5610953ceda0fee4e5b97f1b99f778678514dd115c257fb419b365ed46fdd90a19d444bca8e3e0fe03
diff --git a/sci-libs/flann/files/flann-1.9.1-cmake-3.11.patch b/sci-libs/flann/files/flann-1.9.1-cmake-3.11.patch
new file mode 100644
index 000000000000..b37bedcf6d50
--- /dev/null
+++ b/sci-libs/flann/files/flann-1.9.1-cmake-3.11.patch
@@ -0,0 +1,80 @@
+From fa5ec96a94646492a3f908e12905b3e48a8e800b Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Wed, 18 Apr 2018 20:24:13 +0200
+Subject: [PATCH] src/cpp: fix cmake >= 3.11 build
+
+CMake < 3.11 doesn't support add_library() without any source file
+(i.e add_library(foo SHARED)). But flann CMake use a trick that use
+an empty string "" as source list (i.e add_library(foo SHARED "")).
+This look like a bug in CMake < 3.11.
+
+With CMake >= 3.11, the new behaviour of add_library() break the
+existing flann CMake code.
+
+From CMake Changelog [1]:
+"add_library() and add_executable() commands can now be called without
+ any sources and will not complain as long as sources are added later
+ via the target_sources() command."
+
+Note: flann CMake code doesn't use target_sources() since no source file
+are provided intentionally since the flann shared library is created by
+linking with the flann_cpp_s static library with this line:
+
+target_link_libraries(flann_cpp -Wl,-whole-archive flann_cpp_s -Wl,-no-whole-archive)
+
+If you try to use "add_library(flann_cpp SHARED ${CPP_SOURCES})" (as it should
+be normally done), the link fail due to already defined symbol.
+
+They are building the shared version using the static library "to speedup the
+build time" [3]
+
+This issue is already reported upstream [2] with a proposed solution.
+
+Upstream status: Pending
+
+Fixes:
+http://autobuild.buildroot.net/results/b2f/b2febfaf8c44ce477b3e4a5b9b976fd25e8d7454
+
+[1] https://cmake.org/cmake/help/v3.11/release/3.11.html
+[2] https://github.com/mariusmuja/flann/issues/369
+[3] https://github.com/mariusmuja/flann/commit/0fd62b43be2fbb0b8d791ee36290791224dc030c
+
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+---
+ src/cpp/CMakeLists.txt | 4 ++--
+ src/cpp/empty.cpp | 1 +
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+ create mode 100644 src/cpp/empty.cpp
+
+diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt
+index b44a735..a816863 100644
+--- a/src/cpp/CMakeLists.txt
++++ b/src/cpp/CMakeLists.txt
+@@ -29,7 +29,7 @@ if (BUILD_CUDA_LIB)
+ endif()
+
+ if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC)
+- add_library(flann_cpp SHARED "")
++ add_library(flann_cpp SHARED "empty.cpp")
+ set_target_properties(flann_cpp PROPERTIES LINKER_LANGUAGE CXX)
+ target_link_libraries(flann_cpp -Wl,-whole-archive flann_cpp_s -Wl,-no-whole-archive)
+
+@@ -85,7 +85,7 @@ if (BUILD_C_BINDINGS)
+ set_property(TARGET flann_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
+
+ if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC)
+- add_library(flann SHARED "")
++ add_library(flann SHARED "empty.cpp")
+ set_target_properties(flann PROPERTIES LINKER_LANGUAGE CXX)
+ target_link_libraries(flann -Wl,-whole-archive flann_s -Wl,-no-whole-archive)
+ else()
+diff --git a/src/cpp/empty.cpp b/src/cpp/empty.cpp
+new file mode 100644
+index 0000000..40a8c17
+--- /dev/null
++++ b/src/cpp/empty.cpp
+@@ -0,0 +1 @@
++/* empty */
+--
+2.14.3
+
diff --git a/sci-libs/flann/flann-1.9.1-r1.ebuild b/sci-libs/flann/flann-1.9.1-r1.ebuild
new file mode 100644
index 000000000000..fcb4ef999dff
--- /dev/null
+++ b/sci-libs/flann/flann-1.9.1-r1.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2018 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
+
+PATCHES=(
+ "${FILESDIR}"/flann-1.9.1-cmake-3.11.patch
+)
+
+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} --linker-options \"-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
index 06d78eb963d7..e8b80e9f855f 100644
--- a/sci-libs/flann/flann-9999.ebuild
+++ b/sci-libs/flann/flann-9999.ebuild
@@ -29,6 +29,10 @@ DEPEND="${RDEPEND}
# readd dependencies for test suite,
# requires multiple ruby dependencies
+PATCHES=(
+ "${FILESDIR}"/flann-1.9.1-cmake-3.11.patch
+)
+
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}