]> git.pld-linux.org Git - packages/opencv.git/blame - opencv.spec
macro for java versioning
[packages/opencv.git] / opencv.spec
CommitLineData
8d499a62 1# TODO:
2acd8ac1 2# - Smartek GigEVisionSDK (http://www.smartekvision.com/ but I can't see SDK with Linux library?)
da5d1e09 3# - CUDA, CUFFT, CUBLAS, NVCUVID support (on bcond)
5df3cf1b 4# - ipp (libippi): http://software.intel.com/en-us/articles/intel-ipp/ (proprietary)
200823d5
ER
5# - GUI: VTK support
6# - Use GCD NO
7# - Use Concurrency NO
8# - Use C= (CSTRIPES): NO
9# C/C++ Examples: NO
a8d52c2e 10#
0c2d6b7d 11# Conditional build:
a55ba198
JB
12# - general options:
13%bcond_with tbb # Threading Building Blocks support (everywhere)
14%bcond_with sse # use SSE instructions
15%bcond_with sse2 # use SSE2 instructions
da5d1e09
JB
16%bcond_with sse3 # use SSE3 instructions
17%bcond_with ssse3 # use SSSE3 instructions
18%bcond_with sse41 # use SSE4.1 instructions
19%bcond_with sse42 # use SSE4.2 instructions
20%bcond_with avx # use AVX instructions
8d5385eb
JB
21%bcond_without opencl # OpenCL support
22%bcond_with opencl_amdblas # AMD OpenCL BLAS routines
23%bcond_with opencl_amdfft # AMD OpenCL FFT routines
24%bcond_without opengl # OpenGL support
da5d1e09 25%bcond_without gomp # OpenMP support
200823d5 26%bcond_without examples # Install examples
b07433c6
JB
27# - bindings
28%bcond_without java # Java binding
a55ba198 29# - highgui options:
b3920a9d 30%bcond_without ffmpeg # FFMpeg support in highgui
1c9fe580
JB
31%bcond_without gstreamer # GStreamer support in highgui
32%bcond_with openni # OpenNI (Natural Interaction) support in highgui
a55ba198 33%bcond_with pvapi # PvAPI (AVT GigE cameras) support in highgui (proprietary)
1c9fe580 34%bcond_with qt # Qt backend instead of GTK+ in highgui
1c9fe580 35%bcond_with unicap # Unicap support in highgui (GPL)
da5d1e09 36%bcond_without v4l # Video4Linux in highgui
a55ba198 37%bcond_with ximea # m3API (XIMEA cameras) support in highgui (proprietary)
1c9fe580 38%bcond_with xine # XINE support in highgui (GPL)
a4737151 39
1c9fe580
JB
40%ifarch pentium3 pentium4 %{x8664}
41%define with_sse 1
42%endif
43%ifarch pentium4 %{x8664}
44%define with_sse2 1
45%endif
901927d3 46Summary: A library of programming functions mainly aimed at real time computer vision
0c2d6b7d 47Summary(pl.UTF-8): Biblioteka funkcji do grafiki komputerowej w czasie rzeczywistym
901927d3 48Name: opencv
200823d5
ER
49Version: 2.4.9
50Release: 1
901927d3 51Epoch: 1
d5e56e66
JB
52%if %{with unicap} || %{with xine}
53License: GPL (enforced by used libraries), BSD (opencv itself)
54%else
901927d3 55License: BSD
d5e56e66 56%endif
901927d3 57Group: Libraries
200823d5
ER
58Source0: https://github.com/Itseez/opencv/archive/%{version}/%{name}-%{version}.tar.gz
59# Source0-md5: cc0a8307403ff471f554197401ec0eb9
452b38e1 60Patch0: %{name}-cflags.patch
61Patch1: %{name}-link.patch
62Patch2: %{name}-unicap-c++.patch
63Patch3: %{name}-c.patch
64Patch4: %{name}-gcc.patch
809ce413 65Patch5: %{name}-ximea.patch
6994c4f7 66Patch6: %{name}-ocl-fft.patch
a4737151 67Patch7: java-ant-sourcelevel.patch
da5d1e09 68Patch8: %{name}-shared.patch
200823d5 69URL: http://www.opencv.org/
d5e56e66 70%{?with_pvapi:BuildRequires: AVT_GigE_SDK-devel}
8d5385eb 71%{?with_opencl:BuildRequires: OpenCL-devel}
0c2d6b7d 72BuildRequires: OpenEXR-devel
5df3cf1b 73%{?with_opengl:BuildRequires: OpenGL-GLU-devel}
9f0b035c 74%{?with_opengl:BuildRequires: OpenGL-devel}
5df3cf1b 75# as of OpenCV 2.3.1-2.4.3 there is also check for OpenNI-sensor-PrimeSense, but the result is not used
1c9fe580 76%{?with_openni:BuildRequires: OpenNI-devel}
da5d1e09 77%{?with_ximea:BuildRequires: XIMEA-devel >= 4}
b07433c6 78%{?with_java:BuildRequires: ant}
ef4af528
JB
79%{?with_opencl_amdblas:BuildRequires: clAmdBlas-devel}
80%{?with_opencl_amdfft:BuildRequires: clAmdFft-devel}
b07433c6 81BuildRequires: cmake >= 2.8
0c2d6b7d 82BuildRequires: doxygen
809ce413 83BuildRequires: eigen3 >= 3
b3920a9d 84%{?with_ffmpeg:BuildRequires: ffmpeg-devel >= 0.7}
da5d1e09 85%{?with_gomp:BuildRequires: gcc-c++ >= 6:4.2}
0c2d6b7d
JB
86%if %{with gstreamer}
87BuildRequires: gstreamer-devel >= 0.10
88BuildRequires: gstreamer-plugins-base-devel >= 0.10
89%endif
901927d3 90BuildRequires: jasper-devel
b07433c6 91%{?with_java:BuildRequires: jdk}
901927d3 92BuildRequires: libdc1394-devel
da5d1e09 93%{?with_gomp:BuildRequires: libgomp-devel}
901927d3
AM
94BuildRequires: libjpeg-devel
95BuildRequires: libpng-devel
96BuildRequires: libraw1394-devel
0c2d6b7d 97BuildRequires: libstdc++-devel
901927d3 98BuildRequires: libtiff-devel
148338c5 99BuildRequires: libtool
d5e56e66
JB
100%if %{with unicap}
101BuildRequires: libucil-devel
102BuildRequires: libunicap-devel
103%endif
0c2d6b7d 104BuildRequires: libv4l-devel
af6d2888 105BuildRequires: pkgconfig
b07433c6 106BuildRequires: python
901927d3 107BuildRequires: python-devel
0c2d6b7d 108BuildRequires: python-numpy-devel
901927d3 109BuildRequires: rpm-pythonprov
8d499a62 110BuildRequires: rpmbuild(macros) >= 1.606
1376dffe 111BuildRequires: sed >= 4.0
996927aa 112BuildRequires: swig-python
f8e040cc 113%{?with_tbb:BuildRequires: tbb-devel}
901927d3 114%{?with_xine:BuildRequires: xine-lib-devel}
452b38e1 115BuildRequires: zlib-devel
4afb606b 116%if %{with qt}
4afb606b
JB
117BuildRequires: QtCore-devel >= 4
118BuildRequires: QtGui-devel >= 4
5df3cf1b 119%{?with_opengl:BuildRequires: QtOpenGL-devel >= 4}
4afb606b
JB
120BuildRequires: qt4-qmake >= 4
121%else
122BuildRequires: gtk+2-devel >= 2.0
5df3cf1b 123%{?with_opengl:BuildRequires: gtkglext-devel >= 1.0}
4afb606b 124%endif
da5d1e09 125Requires: %{name}-core = %{epoch}:%{version}-%{release}
901927d3
AM
126BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
127
933de752 128%define sover %(v=%{version}; k=${v#?.?.?}; echo ${v%$k})
835e0cdd 129%define jver %(echo %{version} | tr -d .)
933de752 130
901927d3
AM
131%description
132OpenCV (Open Source Computer Vision) is a library of programming
133functions mainly aimed at real time computer vision.
134
0c2d6b7d
JB
135Example applications of the OpenCV library are:
136- Human-Computer Interaction (HCI)
137- Object Identification, Segmentation and Recognition
138- Face Recognition
139- Gesture Recognition
140- Motion Tracking
141- Ego Motion, Motion Understanding
142- Structure From Motion (SFM)
143- Stereo and Multi-Camera Calibration and Depth Computation
144- Mobile Robotics.
145
146%description -l pl.UTF-8
147OpenCV (Open Source Computer Vision) to biblioteka funkcji
148przeznaczonych głównie do grafiki komputerowej w czasie rzeczywistym.
149
150Przykładowe zastosowania biblioteki OpenCV to
151- interakcje człowiek-komputer (HCI)
152- identyfikacja, segmentacja i rozpoznawanie obiektów
153- rozpoznawanie twarzy
154- rozpoznawanie gestów
155- śledzenie ruchu
156- rozumienie ruchu
157- SFM (Structure From Motion)
158- kalibracja dwu- i wielokamerowa, obliczanie głębi
159- robotyka ruchu.
901927d3 160
933de752
ER
161%package core
162Summary: OpenCV core libraries
da5d1e09 163Summary(pl.UTF-8): Podstawowe biblioteki OpenCV
933de752 164Group: Libraries
da5d1e09 165Conflicts: opencv < 2.4.6.2-1
933de752
ER
166
167%description core
168This package contains the OpenCV C/C++ core libraries.
169
da5d1e09
JB
170%description core -l pl.UTF-8
171Ten pakiet zawiera podstawowe biblioteki C/C++ OpenCV.
172
901927d3 173%package devel
0c2d6b7d
JB
174Summary: Header files for OpenCV library
175Summary(pl.UTF-8): Pliki nagłówkowe biblioteki OpenCV
901927d3
AM
176Group: Development/Libraries
177Requires: %{name} = %{epoch}:%{version}-%{release}
0c2d6b7d 178Obsoletes: opencv-static
901927d3
AM
179
180%description devel
0c2d6b7d 181Header files for OpenCV library.
901927d3 182
0c2d6b7d
JB
183%description devel -l pl.UTF-8
184Pliki nagłówkowe biblioteki OpenCV.
901927d3 185
9141b1e2
ER
186%package doc
187Summary: Manual for OpenCV
188Summary(fr.UTF-8): Documentation pour OpenCV
189Summary(it.UTF-8): Documentazione di OpenCV
190Summary(pl.UTF-8): Podręcznik dla OpenCV
191Group: Documentation
192# noarch subpackages only when building with rpm5
193%if "%{_rpmversion}" >= "5"
194BuildArch: noarch
195%endif
196
197%description doc
198Documentation for OpenCV.
199
200%description doc -l fr.UTF-8
201Documentation pour OpenCV.
202
203%description doc -l it.UTF-8
204Documentazione di OpenCV.
205
206%description doc -l pl.UTF-8
207Dokumentacja do OpenCV.
208
200823d5
ER
209%package examples
210Summary: OpenCV code examples
211Group: Documentation
212%if "%{_rpmversion}" >= "5"
213BuildArch: noarch
214%endif
215
216%description examples
217OpenCV code examples.
218
b07433c6
JB
219%package -n java-opencv
220Summary: OpenCV Java bindings
221Summary(pl.UTF-8): Wiązania Javy do OpenCV
222Group: Libraries/Java
223Requires: %{name} = %{epoch}:%{version}-%{release}
224Requires: jre
225
226%description -n java-opencv
227OpenCV Java bindings.
228
229%description -n java-opencv -l pl.UTF-8
230Wiązania Javy do OpenCV.
231
901927d3
AM
232%package -n python-opencv
233Summary: OpenCV Python bindings
0c2d6b7d
JB
234Summary(pl.UTF-8): Wiązania Pythona do OpenCV
235Group: Libraries/Python
cd1f0136 236Requires: %{name} = %{epoch}:%{version}-%{release}
9f0b035c 237Requires: python-libs
901927d3
AM
238
239%description -n python-opencv
240OpenCV Python bindings.
241
0c2d6b7d
JB
242%description -n python-opencv -l pl.UTF-8
243Wiązania Pythona do OpenCV.
244
901927d3 245%prep
25269a76 246%setup -q
54551f29 247
da67222a 248%undos CMakeLists.txt
1376dffe 249%undos modules/gpu/CMakeLists.txt
54551f29 250
1376dffe 251%patch0 -p1
252%patch1 -p1
29d82ddf 253%patch2 -p1
f8e040cc 254%patch3 -p1
75b912e9 255%patch4 -p1
809ce413 256%patch5 -p1
6994c4f7 257%patch6 -p1
a4737151 258%patch7 -p1
da5d1e09 259%patch8 -p1
148338c5 260
901927d3 261%build
95daeb66
AM
262install -d build
263cd build
ea26b025
ER
264
265# handle cmake & ccache
266# http://stackoverflow.com/questions/1815688/how-to-use-ccache-with-cmakec
267if [[ "%{__cc}" = *ccache* ]]; then
268 cc="%{__cc}"
269 cxx="%{__cxx}"
270 ccache="
271 -DCMAKE_C_COMPILER="ccache" -DCMAKE_C_COMPILER_ARG1="${cc#ccache }" \
272 -DCMAKE_CXX_COMPILER="ccache" -DCMAKE_CXX_COMPILER_ARG1="${cxx#ccache }" \
273 "
274fi
275
0c2d6b7d 276%cmake .. \
ea26b025 277 $ccache \
da5d1e09 278 -DENABLE_AVX=%{?with_avx:ON}%{!?with_avx:OFF} \
1c9fe580
JB
279 -DENABLE_SSE=%{?with_sse:ON}%{!?with_sse:OFF} \
280 -DENABLE_SSE2=%{?with_sse2:ON}%{!?with_sse2:OFF} \
da5d1e09
JB
281 -DENABLE_SSE3=%{?with_sse3:ON}%{!?with_sse3:OFF} \
282 -DENABLE_SSSE3=%{?with_ssse3:ON}%{!?with_ssse3:OFF} \
283 -DENABLE_SSE41=%{?with_sse41:ON}%{!?with_sse41:OFF} \
284 -DENABLE_SSE42=%{?with_sse42:ON}%{!?with_sse42:OFF} \
95daeb66 285 -DBUILD_NEW_PYTHON_SUPPORT=ON \
200823d5
ER
286%if %{with examples}
287 -DINSTALL_C_EXAMPLES=ON \
288 -DINSTALL_PYTHON_EXAMPLES=ON \
289%endif
b3920a9d 290 %{?with_ffmpeg:-DWITH_FFMPEG=ON} \
d5e56e66 291 %{!?with_gstreamer:-DWITH_GSTREAMER=OFF} \
8d5385eb 292 %{?with_opencl:-DWITH_OPENCL=ON} \
faf80a1c
JB
293 %{!?with_opencl_amdblas:-DWITH_OPENCLAMDBLAS=OFF} \
294 %{!?with_opencl_amdfft:-DWITH_OPENCLAMDFFT=OFF} \
5df3cf1b 295 %{?with_opengl:-DWITH_OPENGL=ON} \
da5d1e09 296 %{?with_gomp:-DWITH_OPENMP=ON} \
1c9fe580 297 %{?with_openni:-DWITH_OPENNI=ON} \
809ce413 298 %{?with_pvapi:-DPVAPI_LIBRARY=%{_libdir}/libPvAPI.so}%{!?with_pvapi:-DWITH_PVAPI=OFF} \
5df3cf1b 299 %{?with_qt:-DWITH_QT=ON %{?with_opengl:-DWITH_QT_OPENGL=ON} -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake-qt4} \
f8e040cc 300 %{?with_tbb:-DWITH_TBB=ON} \
d5e56e66 301 %{?with_unicap:-DWITH_UNICAP=ON} \
ed358224 302 %{!?with_v4l:-DWITH_V4L=OFF} \
a55ba198 303 %{?with_ximea:-DWITH_XIMEA=ON} \
d5e56e66 304 %{?with_xine:-DWITH_XINE=ON}
54551f29 305
8b9f61f7 306%{__make}
901927d3
AM
307
308%install
309rm -rf $RPM_BUILD_ROOT
95daeb66 310%{__make} -C build install \
901927d3
AM
311 DESTDIR=$RPM_BUILD_ROOT
312
9141b1e2
ER
313# see -doc package
314%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/OpenCV/doc
200823d5
ER
315%if %{with examples}
316install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
317mv $RPM_BUILD_ROOT%{_datadir}/OpenCV/samples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
318%endif
9141b1e2 319
4bd2eae7 320install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
a4737151 321cp -p build/unix-install/opencv.pc $RPM_BUILD_ROOT%{_pkgconfigdir}
4bd2eae7 322
8d499a62
JB
323%py_comp $RPM_BUILD_ROOT%{py_sitedir}
324%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
325%py_postclean
326
b07433c6
JB
327%if %{with java}
328# move to proper directories, create symlink
329install -d $RPM_BUILD_ROOT%{_javadir}
330%{__mv} $RPM_BUILD_ROOT%{_datadir}/OpenCV/java/libopencv_java*.so $RPM_BUILD_ROOT%{_libdir}
331%{__mv} $RPM_BUILD_ROOT%{_datadir}/OpenCV/java/opencv-*.jar $RPM_BUILD_ROOT%{_javadir}
332rmdir $RPM_BUILD_ROOT%{_datadir}/OpenCV/java
333ln -sf $(basename $RPM_BUILD_ROOT%{_javadir}/opencv-*.jar) $RPM_BUILD_ROOT%{_javadir}/opencv.jar
334%endif
335
901927d3
AM
336%clean
337rm -rf $RPM_BUILD_ROOT
338
339%post -p /sbin/ldconfig
340%postun -p /sbin/ldconfig
341
933de752
ER
342%post core -p /sbin/ldconfig
343%postun core -p /sbin/ldconfig
344
b07433c6
JB
345%post -n java-opencv -p /sbin/ldconfig
346%postun -n java-opencv -p /sbin/ldconfig
347
901927d3
AM
348%files
349%defattr(644,root,root,755)
933de752
ER
350%attr(755,root,root) %{_bindir}/opencv_createsamples
351%attr(755,root,root) %{_bindir}/opencv_haartraining
352%attr(755,root,root) %{_bindir}/opencv_performance
353%attr(755,root,root) %{_bindir}/opencv_traincascade
354%attr(755,root,root) %{_libdir}/libopencv_calib3d.so.%{sover}
da5d1e09 355%attr(755,root,root) %ghost %{_libdir}/libopencv_calib3d.so.2.4
933de752 356%attr(755,root,root) %{_libdir}/libopencv_contrib.so.%{sover}
da5d1e09 357%attr(755,root,root) %ghost %{_libdir}/libopencv_contrib.so.2.4
933de752 358%attr(755,root,root) %{_libdir}/libopencv_features2d.so.%{sover}
da5d1e09 359%attr(755,root,root) %ghost %{_libdir}/libopencv_features2d.so.2.4
933de752 360%attr(755,root,root) %{_libdir}/libopencv_highgui.so.%{sover}
da5d1e09 361%attr(755,root,root) %ghost %{_libdir}/libopencv_highgui.so.2.4
933de752 362%attr(755,root,root) %{_libdir}/libopencv_legacy.so.%{sover}
da5d1e09 363%attr(755,root,root) %ghost %{_libdir}/libopencv_legacy.so.2.4
933de752 364%attr(755,root,root) %{_libdir}/libopencv_objdetect.so.%{sover}
da5d1e09
JB
365%attr(755,root,root) %ghost %{_libdir}/libopencv_objdetect.so.2.4
366%if %{with opencl}
367%attr(755,root,root) %{_libdir}/libopencv_ocl.so.%{sover}
368%attr(755,root,root) %ghost %{_libdir}/libopencv_ocl.so.2.4
369%endif
933de752 370%attr(755,root,root) %{_libdir}/libopencv_stitching.so.%{sover}
da5d1e09 371%attr(755,root,root) %ghost %{_libdir}/libopencv_stitching.so.2.4
933de752 372%attr(755,root,root) %{_libdir}/libopencv_ts.so.%{sover}
da5d1e09 373%attr(755,root,root) %ghost %{_libdir}/libopencv_ts.so.2.4
933de752 374%attr(755,root,root) %{_libdir}/libopencv_superres.so.%{sover}
da5d1e09 375%attr(755,root,root) %ghost %{_libdir}/libopencv_superres.so.2.4
933de752 376%attr(755,root,root) %{_libdir}/libopencv_videostab.so.%{sover}
da5d1e09 377%attr(755,root,root) %ghost %{_libdir}/libopencv_videostab.so.2.4
933de752 378%attr(755,root,root) %{_libdir}/libopencv_gpu.so.%{sover}
da5d1e09 379%attr(755,root,root) %ghost %{_libdir}/libopencv_gpu.so.2.4
933de752 380%attr(755,root,root) %{_libdir}/libopencv_nonfree.so.%{sover}
da5d1e09 381%attr(755,root,root) %ghost %{_libdir}/libopencv_nonfree.so.2.4
452b38e1 382%dir %{_datadir}/OpenCV
452b38e1 383%{_datadir}/OpenCV/haarcascades
384%{_datadir}/OpenCV/lbpcascades
901927d3 385
933de752
ER
386%files core
387%defattr(644,root,root,755)
388%attr(755,root,root) %{_libdir}/libopencv_core.so.%{sover}
389%ghost %{_libdir}/libopencv_core.so.2.4
390%attr(755,root,root) %{_libdir}/libopencv_flann.so.%{sover}
391%ghost %{_libdir}/libopencv_flann.so.2.4
392%attr(755,root,root) %{_libdir}/libopencv_imgproc.so.%{sover}
393%ghost %{_libdir}/libopencv_imgproc.so.2.4
394%attr(755,root,root) %{_libdir}/libopencv_ml.so.%{sover}
395%ghost %{_libdir}/libopencv_ml.so.2.4
396%attr(755,root,root) %{_libdir}/libopencv_photo.so.%{sover}
397%ghost %{_libdir}/libopencv_photo.so.2.4
398%attr(755,root,root) %{_libdir}/libopencv_video.so.%{sover}
399%ghost %{_libdir}/libopencv_video.so.2.4
400
901927d3
AM
401%files devel
402%defattr(644,root,root,755)
0c2d6b7d 403%attr(755,root,root) %{_libdir}/libopencv_*.so
0e077f8d 404%if %{with java}
835e0cdd 405%exclude %{_libdir}/libopencv_java%{jver}.so
0e077f8d 406%endif
901927d3 407%{_includedir}/opencv
509c07dc 408%{_includedir}/opencv2
da5d1e09 409%{_datadir}/OpenCV/OpenCV*.cmake
0c2d6b7d 410%{_pkgconfigdir}/opencv.pc
901927d3 411
9141b1e2
ER
412%files doc
413%defattr(644,root,root,755)
414# TODO: probably could rebuild them and package via make install
415%doc doc/*
416
200823d5
ER
417%if %{with examples}
418%files examples
419%defattr(644,root,root,755)
420%{_examplesdir}/%{name}-%{version}
421%endif
422
b07433c6
JB
423%if %{with java}
424%files -n java-opencv
425%defattr(644,root,root,755)
835e0cdd
ER
426%attr(755,root,root) %{_libdir}/libopencv_java%{jver}.so
427%{_javadir}/opencv-%{jver}.jar
b07433c6
JB
428%{_javadir}/opencv.jar
429%endif
430
901927d3
AM
431%files -n python-opencv
432%defattr(644,root,root,755)
452b38e1 433%attr(755,root,root) %{py_sitedir}/cv2.so
8d499a62 434%{py_sitedir}/cv.py[co]
This page took 0.088223 seconds and 4 git commands to generate.