1 # TODO: CUDA support, MPI (on bconds)
4 %bcond_without openmp # OpenMP support
6 Summary: FLANN - Fast Library for Approximate Nearest Neighbours
7 Summary(pl.UTF-8): FLANN - szybka biblioteka do przybliżonego wyszukiwania najbliższych sąsiadów
13 #Source0Download: https://github.com/flann-lib/flann/tags
14 Source0: https://github.com/flann-lib/flann/archive/%{version}/%{name}-%{version}.tar.gz
15 # Source0-md5: d187585a55676e2b12bbb7ea04d1398f
16 Patch0: %{name}-python.patch
17 Patch1: %{name}-libdir.patch
19 Patch3: pc-lz4-flags.patch
20 URL: https://github.com/flann-lib/flann
21 BuildRequires: cmake >= 2.6
22 %{?with_openmp:BuildRequires: gcc-c++ >= 6:4.2}
23 BuildRequires: gtest-devel
24 BuildRequires: hdf5-devel
25 BuildRequires: latex2html
26 %{?with_openmp:BuildRequires: libgomp-devel}
27 BuildRequires: libstdc++-devel
28 BuildRequires: octave-devel
29 BuildRequires: python >= 1:2.5
30 BuildRequires: python-devel >= 1:2.5
31 BuildRequires: rpmbuild(macros) >= 1.605
32 BuildRequires: texlive-format-pdflatex
33 BuildRequires: texlive-latex
34 BuildRequires: texlive-latex-bibtex
35 BuildRequires: texlive-makeindex
36 BuildRequires: texlive-xetex
38 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
40 %define octave_m_dir %(octave-config --m-site-dir)
41 %define octave_oct_dir %(octave-config --oct-site-dir)
44 FLANN is a library for performing fast approximate nearest neighbour
45 searches in high dimensional spaces. It contains a collection of
46 algorithms we found to work best for nearest neighbour search and a
47 system for automatically choosing the best algorithm and optimum
48 parameters depending on the dataset.
50 FLANN is written in C++ and contains bindings for the following
51 languages: C, MATLAB and Python.
53 %description -l pl.UTF-8
54 FLANN (Fast Library for Approximage Nearest Neighbours) to biblioteka
55 do wykonywania szybkich przybliżonych wyszukiwań najbliższych sąsiadów
56 w przestrzeniach o wielu wymiarach. Zawiera zbiór algorytmów, które
57 sprawdzają się najlepiej w tym zastosowaniu oraz system automatycznego
58 wyboru najlepszego algorytmu oraz optymalnych parametrów w zależności
61 Biblioteka FLANN została napisana w C++ i zawiera dowiązania dla
62 następujących języków: C, MATLAB i Python.
65 Summary: Header files for FLANN libraries
66 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek FLANN
67 Group: Development/Libraries
68 Requires: %{name} = %{version}-%{release}
71 Requires: libstdc++-devel
74 Header files for FLANN libraries.
76 %description devel -l pl.UTF-8
77 Pliki nagłówkowe bibliotek FLANN.
80 Summary: Static FLANN libraries
81 Summary(pl.UTF-8): Statyczne biblioteki FLANN
82 Group: Development/Libraries
83 Requires: %{name}-devel = %{version}-%{release}
86 Static FLANN libraries.
88 %description static -l pl.UTF-8
89 Statyczne biblioteki FLANN.
91 %package -n octave-flann
92 Summary: Octave binding for FLANN library
93 Summary(pl.UTF-8): Dowiązania języka Octave do biblioteki FLANN
94 Group: Development/Languages
95 Requires: %{name} = %{version}-%{release}
97 %description -n octave-flann
98 Octave binding for FLANN library.
100 %description -n octave-flann -l pl.UTF-8
101 Dowiązania języka Octave do biblioteki FLANN.
103 %package -n python-flann
104 Summary: Python binding for FLANN library
105 Summary(pl.UTF-8): Dowiązania Pythona do biblioteki FLANN
106 Group: Libraries/Python
107 Requires: %{name} = %{version}-%{release}
109 %description -n python-flann
110 Python binding for FLANN library.
112 %description -n python-flann -l pl.UTF-8
113 Dowiązania Pythona do biblioteki FLANN.
126 -DBUILD_CUDA_LIB=OFF \
127 %{!?with_openmp:-DUSE_OPENMP=OFF}
133 rm -rf $RPM_BUILD_ROOT
135 %{__make} -C build install \
136 DESTDIR=$RPM_BUILD_ROOT
138 %{__rm} $RPM_BUILD_ROOT%{_bindir}/flann_example_*
139 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
140 cp -p examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
143 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/flann
145 install -d $RPM_BUILD_ROOT{%{octave_m_dir},%{octave_oct_dir}}
146 %{__rm} $RPM_BUILD_ROOT%{_datadir}/flann/octave/test*.m
147 %{__mv} $RPM_BUILD_ROOT%{_datadir}/flann/octave/*.m $RPM_BUILD_ROOT%{octave_m_dir}
148 %{__mv} $RPM_BUILD_ROOT%{_datadir}/flann/octave/*.mex $RPM_BUILD_ROOT%{octave_oct_dir}
150 %{__mv} $RPM_BUILD_ROOT%{py_sitedir}/pyflann/lib/libflann.so $RPM_BUILD_ROOT%{py_sitedir}/pyflann
155 rm -rf $RPM_BUILD_ROOT
157 %post -p /sbin/ldconfig
158 %postun -p /sbin/ldconfig
161 %defattr(644,root,root,755)
162 %doc COPYING README.md
163 %attr(755,root,root) %{_libdir}/libflann.so.*.*.*
164 %attr(755,root,root) %ghost %{_libdir}/libflann.so.1.9
165 %attr(755,root,root) %{_libdir}/libflann_cpp.so.*.*.*
166 %attr(755,root,root) %ghost %{_libdir}/libflann_cpp.so.1.9
169 %defattr(644,root,root,755)
170 %doc build/doc/manual.pdf
171 %attr(755,root,root) %{_libdir}/libflann.so
172 %attr(755,root,root) %{_libdir}/libflann_cpp.so
174 %{_pkgconfigdir}/flann.pc
175 %{_libdir}/cmake/flann
176 %{_examplesdir}/%{name}-%{version}
179 %defattr(644,root,root,755)
180 %{_libdir}/libflann_s.a
181 %{_libdir}/libflann_cpp_s.a
183 %files -n octave-flann
184 %defattr(644,root,root,755)
185 %{octave_m_dir}/flann*.m
186 %attr(755,root,root) %{octave_oct_dir}/nearest_neighbors.mex
188 %files -n python-flann
189 %defattr(644,root,root,755)
190 %dir %{py_sitedir}/pyflann
191 %{py_sitedir}/pyflann/*.py[co]
192 %attr(755,root,root) %{py_sitedir}/pyflann/libflann.so
193 %{py_sitedir}/flann-%{version}-py*.egg-info