Add TIZEN_FEATURE_LIBAV to CFLAGS and CXXFLAGS
[platform/upstream/opencv.git] / packaging / opencv.spec
1 %if 0%{?_with_da_profile}%{?CV_VIDEOIO_BACKEND_GSTREAMER}
2 %define support_gstreamer 1
3 %else
4 %define support_gstreamer 0
5 %endif
6
7 Name: opencv
8 Summary: OpenCV library
9 Version: 4.7.0
10 Release: 7
11 Group: Development/Libraries
12 License: Apache-2.0
13 Source0: %{name}-%{version}.tar.gz
14 Source100: opencv-contrib-%{version}.tar.gz
15 # In cmake/OpenCVDetectPython.cmake, python packages are installed
16 # in lib/ regardless of i586, armv7l, x86_64, aarch64, riscv64
17 # So, this patch installs the python packages in:
18 # lib64/ if x86_64 or aarch64
19 # lib/ if i586 or armv7l
20 Source1001: 1001-TIZEN-OPENCV-PYTHON3-LIB64-PATH.patch
21
22 BuildRequires:  cmake
23 BuildRequires:  pkg-config
24 BuildRequires:  libjpeg-turbo-devel
25 BuildRequires:  libpng-devel
26 BuildRequires:  libtiff-devel
27 BuildRequires:  pkgconfig(gstreamer-1.0)
28 BuildRequires:  pkgconfig(gstreamer-plugins-base-1.0)
29 BuildRequires:  libavutil-devel
30 BuildRequires:  libavcodec-devel
31 BuildRequires:  libavformat-devel
32 BuildRequires:  libswscale-devel
33 BuildRequires:  pkgconfig(libwebp)
34 #support python3
35 %if "%{?profile}" != "tv"
36 BuildRequires:  python3-devel
37 BuildRequires:  python3-numpy-devel
38 %endif
39
40 Requires(post):  /sbin/ldconfig
41 Requires(postun): /sbin/ldconfig
42
43 %description
44 The Open Computer Vision Library includes various algorithms for computer vision problems.
45
46 %package devel
47 Summary:    OpenCV Library (Dev)
48 Group:      Development/Libraries
49 Requires:    %{name} = %{version}-%{release}
50
51 %description devel
52 The Open Computer Vision Library (Dev) includes various algorithms for computer vision problems.
53
54 %if "%{?profile}" != "tv"
55 %package -n python3-opencv
56 Summary:    OpenCV Python3 Library
57 Group:      Development/Libraries
58 Requires:   %{name} = %{version}-%{release}
59
60 %description -n python3-opencv
61 The Open Computer Vision Library (Python3) includes various algorithms for computre vision problems.
62 %endif
63
64 %prep
65 %setup -q
66 %setup -q -T -D -a 100
67
68 cp %{SOURCE1001} .
69 patch -p1 < %{SOURCE1001}
70
71 %build
72 %ifarch aarch64
73 ARCH=aarch64
74 %endif
75 %ifarch %arm
76 ARCH=arm
77 %endif
78 %ifarch x86_64
79 ARCH=x86_64
80 %endif
81 %ifarch %ix86
82 ARCH=i386
83 %endif
84 %ifarch riscv64
85 ARCH=riscv64
86 %endif
87
88 # compatibility to opencv3
89 sed -i 's/opencv4.pc/opencv.pc/g' cmake/OpenCVGenPkgconfig.cmake
90
91 # FFMPEG's TIZEN_FEATURE_LIBAV feature.
92 export CFLAGS+=" -DTIZEN_FEATURE_LIBAV"
93 export CXXFLAGS+=" -DTIZEN_FEATURE_LIBAV"
94
95 mkdir -p build
96 cd build
97 cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
98         -DARCH=${ARCH} \
99         -DCMAKE_BUILD_TYPE=Release \
100         -DCMAKE_CONFIGURATION_TYPES=Release \
101         -DOPENCV_ENABLE_NONFREE=OFF \
102         -DOPENCV_GENERATE_PKGCONFIG=YES \
103         -DOPENCV_GENERATE_SETUPVARS=OFF \
104         -DBUILD_PROTOBUF=ON \
105         -DPROTOBUF_UPDATE_FILES=OFF \
106         -DBUILD_opencv_calib3d=ON \
107         -DBUILD_opencv_core=ON \
108         -DBUILD_opencv_dnn=ON \
109         -DBUILD_opencv_features2d=ON \
110         -DBUILD_opencv_flann=ON \
111         -DBUILD_opencv_highgui=ON \
112         -DBUILD_opencv_imgcodecs=ON \
113         -DBUILD_opencv_imgproc=ON \
114         -DBUILD_opencv_ml=ON \
115         -DBUILD_opencv_objdetect=ON \
116         -DBUILD_opencv_photo=ON \
117         -DBUILD_opencv_python2=OFF \
118 %if "%{?profile}" != "tv"
119         -DBUILD_opencv_python3=ON \
120 %else
121         -DBUILD_opencv_python3=OFF \
122         -DPARALLEL_ENABLE_PLUGINS=OFF \
123 %endif
124         -DBUILD_opencv_shape=OFF \
125         -DBUILD_opencv_stitching=OFF \
126         -DBUILD_opencv_superres=OFF \
127         -DBUILD_opencv_ts=OFF \
128         -DBUILD_opencv_video=ON \
129         -DBUILD_opencv_videoio=ON \
130         -DBUILD_opencv_videostab=OFF \
131         -DBUILD_opencv_world=OFF \
132         -DBUILD_opencv_viz=OFF \
133         -DOPENCV_EXTRA_MODULES_PATH=../opencv-contrib/modules \
134         -DBUILD_opencv_aruco=OFF \
135         -DBUILD_opencv_bgsegm=OFF \
136         -DBUILD_opencv_bioinspired=OFF \
137         -DBUILD_opencv_ccalib=OFF \
138         -DBUILD_opencv_cnn_3dobj=OFF \
139         -DBUILD_opencv_cvv=OFF \
140         -DBUILD_opencv_datasets=OFF \
141         -DBUILD_opencv_dnn_objdetect=OFF \
142         -DBUILD_opencv_dnns_easily_fooled=OFF \
143         -DBUILD_opencv_dnn_superres=OFF \
144         -DBUILD_opencv_dpm=OFF \
145         -DBUILD_opencv_face=ON \
146         -DBUILD_opencv_freetype=OFF \
147         -DBUILD_opencv_fuzzy=OFF \
148         -DBUILD_opencv_hdf=OFF \
149         -DBUILD_opencv_hfs=OFF \
150         -DBUILD_opencv_img_hash=OFF \
151         -DBUILD_opencv_line_descriptor=OFF \
152         -DBUILD_opencv_matlab=OFF \
153         -DBUILD_opencv_optflow=ON \
154         -DBUILD_opencv_ovis=OFF \
155         -DBUILD_opencv_phase_unwrapping=OFF \
156         -DBUILD_opencv_plot=ON \
157         -DBUILD_opencv_quality=OFF \
158         -DBUILD_opencv_reg=OFF \
159         -DBUILD_opencv_rgbd=OFF \
160         -DBUILD_opencv_saliency=OFF \
161         -DBUILD_opencv_sfm=OFF \
162         -DBUILD_opencv_shape=OFF \
163         -DBUILD_opencv_stereo=OFF \
164         -DBUILD_opencv_structured_light=OFF \
165         -DBUILD_opencv_superres=OFF \
166         -DBUILD_opencv_surface_matching=OFF \
167         -DBUILD_opencv_text=OFF \
168         -DBUILD_opencv_tracking=ON \
169         -DBUILD_opencv_videostab=OFF \
170         -DBUILD_opencv_viz=OFF \
171         -DBUILD_opencv_xfeatures2d=ON \
172         -DBUILD_opencv_ximgproc=ON \
173         -DBUILD_opencv_xobjdetect=OFF \
174         -DBUILD_opencv_xphoto=OFF \
175         -DBUILD_opencv_wechat_qrcode=OFF \
176         -DBUILD_opencv_barcode=OFF \
177         -DBUILD_opencv_intensity_transform=OFF \
178         -DBUILD_opencv_mcc=OFF \
179         -DBUILD_opencv_rapid=OFF \
180         -DOPENCV_FORCE_3RDPARTY_BUILD=OFF \
181         -DBUILD_ZLIB=OFF \
182         -DBUILD_TIFF=OFF \
183         -DBUILD_JASPER=OFF \
184         -DBUILD_JPEG=OFF \
185         -DBUILD_PNG=OFF \
186         -DBUILD_WEBP=OFF \
187         -DBUILD_OPENEXR=OFF \
188         -DBUILD_TBB=OFF \
189         -DBUILD_OPENJPEG=OFF \
190         -DBUILD_SHARED_LIBS=ON \
191         -DBUILD_opencv_apps=OFF \
192         -DBUILD_opencv_js=OFF \
193         -DBUILD_DOCS=OFF \
194         -DBUILD_EXAMPLES=OFF \
195         -DBUILD_PACKAGE=OFF \
196         -DBUILD_PERF_TESTS=OFF \
197         -DBUILD_TESTS=OFF \
198         -DBUILD_WITH_DEBUG_INFO=ON \
199         -DBUILD_WITH_DYNAMIC_IPP=OFF \
200         -DBUILD_ANDROID_SERVICE=OFF \
201         -DBUILD_IPP_IW=OFF \
202         -DBUILD_ITT=OFF \
203         -DBUILD_WITH_STATIC_CRT=OFF \
204         -DBUILD_JAVA=OFF \
205         -DBUILD_opencv_java=OFF \
206         -DBUILD_FAT_JAVA_LIB=OFF \
207         -DBUILD_CUDA_STUBS=OFF \
208         -DWITH_CUDA=OFF \
209         -DWITH_CAROTENE=OFF \
210         -DWITH_CPUFEATURES=OFF \
211         -DWITH_1394=OFF \
212         -DWITH_CSTRIPES=OFF \
213         -DWITH_CUBLAS=OFF \
214         -DWITH_CUFFT=OFF \
215         -DWITH_NVCUVID=OFF \
216         -DWITH_DSHOW=OFF \
217         -DWITH_EIGEN=OFF \
218         -DWITH_FFMPEG=ON \
219         -DWITH_GIGEAPI=OFF \
220         -DWITH_INTELPERC=OFF \
221         -DWITH_IPP=OFF \
222         -DWITH_JASPER=OFF \
223         -DWITH_OPENJPEG=OFF \
224         -DWITH_WEBP=ON \
225         -DWITH_MSMF=OFF \
226         -DWITH_NVCUVID=OFF \
227         -DWITH_OPENCL=OFF \
228         -DWITH_OPENCLAMDBLAS=OFF \
229         -DWITH_OPENCLAMDFFT=OFF \
230         -DWITH_OPENEXR=OFF \
231         -DWITH_OPENGL=OFF \
232         -DWITH_OPENMP=OFF \
233         -DWITH_OPENNI=OFF \
234         -DWITH_JPEG=ON \
235         -DWITH_PNG=ON \
236         -DWITH_PVAPI=OFF \
237         -DWITH_QT=OFF \
238         -DWITH_TBB=OFF \
239         -DWITH_TIFF=ON \
240         -DWITH_VFW=OFF \
241         -DWITH_VTK=OFF \
242         -DWITH_WIN32UI=OFF \
243         -DWITH_XIMEA=OFF \
244         -DWITH_QUIRC=OFF \
245 %if 0%{?support_gstreamer}
246         -DWITH_GSTREAMER=ON \
247 %else
248         -DWITH_GSTREAMER=OFF \
249 %endif
250         -DWITH_V4L=ON \
251         -DWITH_GTK=OFF \
252         -DWITH_MATLAB=OFF \
253         -DWITH_ITT=OFF \
254         -DWITH_GPHOTO2=OFF \
255         -DWITH_PTHREADS_PF=OFF \
256         -DWITH_LAPACK=OFF \
257         -DWITH_OPENVX=OFF \
258         -DWITH_PROTOBUF=ON \
259         -DWITH_ADE=OFF \
260         -DINSTALL_C_EXAMPLES=OFF \
261         -DINSTALL_PYTHON_EXAMPLES=OFF \
262         -DINSTALL_TESTS=OFF \
263         -DINTALL_ANDROID_EXAMPLES=OFF \
264         -DENABLE_PRECOMPILED_HEADERS=OFF \
265         -DENABLE_DYNAMIC_CUDA=OFF \
266         -DENABLE_SOLUTION_FOLDERS=OFF \
267         -DENABLE_PROFILLING=OFF \
268         -DENABLE_COVERAGE=OFF \
269 %ifarch %arm aarch64
270         -DCPU_BASELINE="" \
271         -DCPU_DISPATCH=NEON \
272 %endif
273         -DCV_TRACE=OFF
274
275 make %{?jobs:-j%jobs}
276
277 %install
278 cd build
279 rm -rf %{buildroot}
280 %make_install
281
282 # To support backward compatibility with OpenCV3
283 # Header files
284 ln -sf %{_includedir}/opencv4/opencv2 %{buildroot}%{_includedir}/opencv2
285 # pkgconfig
286 ln -sf %{_libdir}/pkgconfig/opencv.pc %{buildroot}%{_libdir}/pkgconfig/%{name}4.pc
287 # cascades files
288 mkdir -p %{buildroot}%{_datadir}/OpenCV
289 ln -sf %{_datadir}/opencv4/haarcascades %{buildroot}%{_datadir}/OpenCV/haarcascades
290 ln -sf %{_datadir}/opencv4/lbpcascades %{buildroot}%{_datadir}/OpenCV/lbpcascades
291
292 ln -sf %{_libdir}/cmake/opencv4/OpenCVConfig-version.cmake %{buildroot}%{_datadir}/OpenCV/OpenCVConfig-version.cmake
293 ln -sf %{_libdir}/cmake/opencv4/OpenCVConfig.cmake %{buildroot}%{_datadir}/OpenCV/OpenCVConfig.cmake
294 ln -sf %{_libdir}/cmake/opencv4/OpenCVModules-release.cmake %{buildroot}%{_datadir}/OpenCV/OpenCVModules-release.cmake
295 ln -sf %{_libdir}/cmake/opencv4/OpenCVModules.cmake %{buildroot}%{_datadir}/OpenCV/OpenCVModules.cmake
296
297 %clean
298 rm -rf %{buildroot}
299
300 %pre
301 if [ -d %{_datadir}/OpenCV ];then
302  rm -r %{_datadir}/OpenCV
303 fi
304
305 %post
306 /sbin/ldconfig
307
308 %postun
309 /sbin/ldconfig
310
311 %files
312 %manifest opencv.manifest
313 %defattr(-,root,root,-)
314 %license LICENSE
315 %{_libdir}/*.so*
316
317 /usr/share/licenses/opencv4/*
318 /usr/share/opencv4/haarcascades/*frontalface_alt*
319 /usr/share/opencv4/haarcascades/*smile*
320 /usr/share/opencv4/lbpcascades/*frontalface*
321 /usr/share/OpenCV/OpenCV*
322 /usr/share/OpenCV/haarcascades
323 /usr/share/OpenCV/lbpcascades
324
325 %exclude /usr/share/opencv4/haarcascades/*eye*
326 %exclude /usr/share/opencv4/haarcascades/*catface*
327 %exclude /usr/share/opencv4/haarcascades/*default*
328 %exclude /usr/share/opencv4/haarcascades/*plate*
329 %exclude /usr/share/opencv4/haarcascades/*body*
330 %exclude /usr/share/opencv4/haarcascades/*profile*
331 %exclude /usr/share/opencv4/haarcascades/*2splits*
332
333 %exclude /usr/share/opencv4/lbpcascades/*catface*
334 %exclude /usr/share/opencv4/lbpcascades/*profile*
335 %exclude /usr/share/opencv4/lbpcascades/*silverware*
336 %exclude /usr/share/opencv4/*.supp
337
338 %if "%{?profile}" != "tv"
339 %files -n python3-opencv
340 %{python3_sitearch}/cv2/*.py
341 %{python3_sitearch}/cv2/*/*.py
342 %{python3_sitearch}/cv2/*/*.so
343 %endif
344
345 %files devel
346 /usr/include/*
347 %{_libdir}/pkgconfig/*.pc
348 %{_libdir}/cmake/opencv4/*.cmake
349 %doc