7a1db55f63b241372a3da3f6589c8460456c568f
[platform/core/api/mediavision.git] / packaging / capi-media-vision.spec
1 Name:        capi-media-vision
2 Summary:     Media Vision library for Tizen Native API
3 Version:     0.26.5
4 Release:     0
5 Group:       Multimedia/Framework
6 License:     Apache-2.0 and BSD-3-Clause
7 Source0:     %{name}-%{version}.tar.gz
8 BuildRequires: cmake
9 BuildRequires: pkgconfig(capi-media-tool)
10 BuildRequires: pkgconfig(dlog)
11 BuildRequires: pkgconfig(capi-system-info)
12 BuildRequires: pkgconfig(opencv)
13 BuildRequires: pkgconfig(json-glib-1.0)
14 BuildRequires: pkgconfig(iniparser)
15 BuildRequires: pkgconfig(inference-engine-interface-common)
16 %if !0%{?ml_only:1}
17 BuildRequires: pkgconfig(glib-2.0)
18 BuildRequires: pkgconfig(zbar)
19 # Change to the pkgconfig(zint) after zint package refactor
20 BuildRequires: zint
21 BuildRequires: zint-devel
22 BuildRequires: pkgconfig(libavcodec)
23 BuildRequires: pkgconfig(libavformat)
24 BuildRequires: pkgconfig(libswscale)
25 BuildRequires: libavutil-devel
26 BuildRequires: pkgconfig(gstreamer-1.0)
27 BuildRequires: pkgconfig(gstreamer-base-1.0)
28 BuildRequires: pkgconfig(gstreamer-app-1.0)
29 BuildRequires: pkgconfig(libtzplatform-config)
30 BuildRequires: pkgconfig(ncurses)
31 BuildRequires: pkgconfig(libdrm)
32 BuildRequires: pkgconfig(wayland-egl)
33 BuildRequires: pkgconfig(glesv2)
34 BuildRequires: gtest-devel
35 BuildRequires: pkgconfig(dfs-adaptation)
36 %if 0%{?visualizer:1}
37 BuildRequires: pkgconfig(protobuf)
38 BuildRequires: pkgconfig(grpc++)
39 %endif
40 %endif
41
42 # Build options
43 # ENABLE_INFERENCE_PROFILER
44 # 0 : disable Mediavision inference engine profiler, 1 : enable Mediavision inference engine profiler.
45 %define enable_mv3d_pointcloud 0
46 %if "%{tizen_profile_name}" == "tv"
47 %define enable_ml_face_recognition 0
48 %define build_depth_stream_testsuite 0
49 %else
50 %define enable_ml_face_recognition 1
51 BuildRequires: pkgconfig(training-engine-interface-common)
52 Requires:      training-engine-interface-common
53
54 %define build_depth_stream_testsuite 1
55 BuildRequires: pkgconfig(vision-source)
56 %ifarch aarch64
57 %define enable_mv3d_pointcloud 1
58 BuildRequires: Open3D-devel
59 %endif
60 %endif
61 %define build_options -DENABLE_INFERENCE_PROFILER=0 -DENABLE_ML_FACE_RECOGNITION=%{enable_ml_face_recognition} -DBUILD_DEPTH_STREAM_TESTSUITE=%{build_depth_stream_testsuite} -DMV_3D_POINTCLOUD_IS_AVAILABLE=%{enable_mv3d_pointcloud}
62
63 Requires:   %{name}-machine_learning
64 Requires:   inference-engine-interface-common
65 %if !0%{?ml_only:1}
66 Requires:   %{name}-barcode
67 Requires:   %{name}-face
68 Requires:   %{name}-image
69 Requires:   %{name}-surveillance
70 Requires:   %{name}-3d
71 Requires:   %{name}-roi_tracker
72 %endif
73
74 %description
75 Media Vision library for Tizen Native API. Includes barcode detecting, barcode generating, face and image modules.
76
77 %if !0%{?ml_only:1}
78 %package devel
79 Summary:    Multimedia Vision Library (DEV)
80 Group:      Multimedia/Framework
81 Requires:   %{name} = %{version}-%{release}
82 Requires:   %{name}-barcode-devel
83 Requires:   %{name}-face-devel
84 Requires:   %{name}-image-devel
85 Requires:   %{name}-machine_learning-devel
86 Requires:   %{name}-surveillance-devel
87 Requires:   %{name}-3d-devel
88 Requires:   %{name}-roi_tracker-devel
89
90 %description devel
91 Media Vision library for Tizen Native API (DEV). Includes barcode detecting, barcode generating, face and image modules.
92 %endif
93
94 %if 0%{?gcov:1}
95 %package gcov
96 Summary: Line Coverage of Media Vision library for Tizen Native API
97 Group: Development/Multimedia
98
99 %description gcov
100 Collection of files related to Line Coverage. It is teseted as gcov for a Media Vision for Tizen Native API
101 %endif
102
103 %package common
104 Summary:    Multimedia Vision common Library
105 Group:      Multimedia/Framework
106
107 %description common
108 Media Vision common library for Tizen Native API.
109
110 %package common-devel
111 Summary:    Multimedia Vision common Library
112 Group:      Multimedia/Framework
113 Requires:   %{name}-common
114
115 %description common-devel
116 Media Vision common library for Tizen Native API (DEV).
117
118 %if !0%{?ml_only:1}
119 %package barcode
120 Summary:    Multimedia Vision Barcode Library
121 Group:      Multimedia/Framework
122 Requires:   %{name}-common
123
124 %description barcode
125 Media Vision barcode library for Tizen Native API.
126
127 %package barcode-devel
128 Summary:    Multimedia Vision Barcode Library
129 Group:      Multimedia/Framework
130 Requires:   %{name}-barcode
131 Requires:   %{name}-common-devel
132
133 %description barcode-devel
134 Media Vision barcode library for Tizen Native API (DEV).
135
136 %package face
137 Summary:    Multimedia Vision Library
138 Group:      Multimedia/Framework
139 Requires:   %{name}-common
140
141 %description face
142 Media Vision face library for Tizen Native API.
143
144 %package face-devel
145 Summary:    Multimedia Vision Face Library (DEV)
146 Group:      Multimedia/Framework
147 Requires:   %{name}-face
148 Requires:   %{name}-common-devel
149
150 %description face-devel
151 Media Vision face library for Tizen Native API (DEV).
152
153 %package image
154 Summary:    Multimedia Vision Image Library
155 Group:      Multimedia/Framework
156 Requires:   %{name}-common
157
158 %description image
159 Media Vision Image library for Tizen Native API.
160
161 %package image-devel
162 Summary:    Multimedia Vision Image Library
163 Group:      Multimedia/Framework
164 Requires:   %{name}-image
165 Requires:   %{name}-common-devel
166
167 %description image-devel
168 Media Vision Image library for Tizen Native API (DEV).
169
170 %package surveillance
171 Summary:    Multimedia Vision Surveillance Library
172 Group:      Multimedia/Framework
173 Requires:   %{name}-face
174
175 %description surveillance
176 Media Vision Surveillance library for Tizen Native API.
177
178 %package surveillance-devel
179 Summary:    Multimedia Vision Surveillance Library
180 Group:      Multimedia/Framework
181 Requires:   %{name}-surveillance
182 Requires:   %{name}-common-devel
183
184 %description surveillance-devel
185 Media Vision Surveillance library for Tizen Native API (DEV).
186
187 %package 3d
188 Summary:    Multimedia Vision 3d Library
189 Group:      Multimedia/Framework
190 Requires:   %{name}-common
191
192 %description 3d
193 Media Vision 3d library for Tizen Native API.
194
195 %package 3d-devel
196 Summary:    Multimedia Vision 3d Library
197 Group:      Multimedia/Framework
198 Requires:   %{name}-3d
199 Requires:   %{name}-common-devel
200
201 %description 3d-devel
202 Media Vision 3d library for Tizen Native API (DEV).
203 %endif
204
205 %package machine_learning
206 Summary:    Multimedia Vision Machine Learning Library
207 Group:      Multimedia/Framework
208 Requires:   %{name}-common
209
210 %description machine_learning
211 Media Vision Machine Learning library for Tizen Native API.
212
213 %package machine_learning-devel
214 Summary:    Multimedia Vision Machine Learning Library
215 Group:      Multimedia/Framework
216 Requires:   %{name}-machine_learning
217 Requires:   %{name}-common-devel
218
219 %description machine_learning-devel
220 Media Vision Machine Learning library for Tizen Native API (DEV).
221
222
223 %package roi_tracker
224 Summary:    Multimedia Vision Library
225 Group:      Multimedia/Framework
226 Requires:   %{name}-common
227
228 %description roi_tracker
229 Media Vision roi tracker library for Tizen Native API.
230
231 %package roi_tracker-devel
232 Summary:    Multimedia Vision ROI Tracker Library (DEV)
233 Group:      Multimedia/Framework
234 Requires:   %{name}-roi_tracker
235 Requires:   %{name}-common-devel
236
237 %description roi_tracker-devel
238 Media Vision roi_tracker library for Tizen Native API (DEV).
239
240
241 %if !0%{?ml_only:1}
242 %package unittests
243 Summary:    Multimedia Vision Test Suite
244 Group:      Multimedia/Framework
245 Requires:   %{name}-barcode
246 Requires:   %{name}-face
247 Requires:   %{name}-image
248 Requires:   %{name}-surveillance
249 Requires:   %{name}-machine_learning
250 Requires:   %{name}-3d
251 Requires:   %{name}-roi_tracker
252 Requires:   check
253
254 %description unittests
255 Media Vision Test Suite.
256 %endif
257
258 %prep
259 %setup -q
260
261 %build
262 %if 0%{?sec_build_binary_debug_enable}
263 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
264 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
265 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
266 %endif
267
268 export CFLAGS+=" -DSYSCONFDIR=\\\"%{_hal_sysconfdir}\\\""
269 export CXXFLAGS+=" -DSYSCONFDIR=\\\"%{_hal_sysconfdir}\\\""
270
271 export CFLAGS+=" -DMV_CONFIG_PATH=\\\"%{TZ_SYS_RO_SHARE}/%{name}/\\\""
272 export CXXFLAGS+=" -DMV_CONFIG_PATH=\\\"%{TZ_SYS_RO_SHARE}/%{name}/\\\""
273
274 %if 0%{?gcov:1}
275 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
276 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
277 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
278 export LDFLAGS+=" -lgcov"
279 %endif
280
281 %cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo %{build_options} \
282 %if 0%{?ml_only:1}
283  -DBUILD_ML_ONLY=ON \
284 %endif
285 %if 0%{?visualizer:1}
286  -DBUILD_VISUALIZER=ON \
287 %endif
288 %ifarch %arm aarch64
289 -DENABLE_NEON=ON
290 %endif
291
292 make %{?jobs:-j%jobs}
293
294 %install
295
296 cat << EOF > run-unittest.sh
297 #!/bin/bash
298 setup() {
299     echo "setup start"
300     pushd /opt/media/USBDriveA1/mv_test
301     ./install.sh
302     popd
303 }
304
305 test_main() {
306     echo "test_main start"
307     /usr/bin/mv_test
308 }
309
310 teardown() {
311     echo "teardown start"
312     rm -rf /usr/share/capi-media-vision/res
313 }
314
315 main() {
316     setup
317     test_main
318     teardown
319 }
320
321 main "$@"
322 EOF
323
324 mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
325 install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}
326
327 %make_install
328
329 %if 0%{?gcov:1}
330 builddir=$(basename $PWD)
331 gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
332 mkdir -p "$gcno_obj_dir"
333 find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
334 %endif
335
336 %post -p /sbin/ldconfig
337 %postun -p /sbin/ldconfig
338
339 %files
340 %manifest %{name}.manifest
341 %license LICENSE.APLv2
342
343 %if !0%{?ml_only:1}
344 %files devel
345 %{_libdir}/pkgconfig/%{name}.pc
346 %endif
347
348 %files common
349 %manifest %{name}.manifest
350 %license LICENSE.APLv2
351 %{_datadir}/%{name}/media-vision-config.json
352 %{_libdir}/libmv_common*.so
353
354 %files common-devel
355 %{_includedir}/media/mv_common.h
356 %{_libdir}/pkgconfig/*common.pc
357
358 %if !0%{?ml_only:1}
359 %files barcode
360 %manifest %{name}.manifest
361 %license LICENSE.APLv2
362 %{_libdir}/libmv_barcode*.so
363
364 %files barcode-devel
365 %{_includedir}/media/mv_barcode*.h
366 %{_libdir}/pkgconfig/*barcode.pc
367
368 %files face
369 %manifest %{name}.manifest
370 %license LICENSE.APLv2
371 %{_libdir}/libmv_face*.so
372
373 %files face-devel
374 %{_includedir}/media/mv_face*.h
375 %{_libdir}/pkgconfig/*face.pc
376
377 %files image
378 %manifest %{name}.manifest
379 %license LICENSE.APLv2
380 %{_libdir}/libmv_image.so
381
382 %files image-devel
383 %{_includedir}/media/mv_image*.h
384 %{_libdir}/pkgconfig/*image.pc
385
386 %files surveillance
387 %manifest %{name}.manifest
388 %license LICENSE.APLv2
389 %{_libdir}/libmv_surveillance*.so
390
391 %files surveillance-devel
392 %{_includedir}/media/mv_surveillance*.h
393 %{_libdir}/pkgconfig/*surveillance.pc
394
395 %files 3d
396 %manifest %{name}.manifest
397 %license LICENSE.APLv2
398 %{_libdir}/libmv_3d*.so
399
400 %files 3d-devel
401 %{_includedir}/media/mv_3d*.h
402 %{_libdir}/pkgconfig/*3d.pc
403 %endif
404
405 %files machine_learning
406 %manifest %{name}.manifest
407 %license LICENSE.APLv2
408 %{_libdir}/libmv_inference*.so
409 %{_datadir}/%{name}/object_detection_3d.json
410 %{_libdir}/libmv_object_detection*.so
411 %if "%{enable_ml_face_recognition}" == "1"
412 %{_datadir}/%{name}/face_recognition.json
413 %{_libdir}/libmv_training.so
414 %{_libdir}/libmv_face_recognition.so
415 %endif
416
417 %files machine_learning-devel
418 %{_includedir}/media/mv_infer*.h
419 %{_includedir}/media/mv_object_detection_3d*.h
420 %{_libdir}/pkgconfig/*inference.pc
421 %{_libdir}/pkgconfig/*object-detection.pc
422 %if "%{enable_ml_face_recognition}" == "1"
423 %{_includedir}/media/mv_face_recognition*.h
424 %{_libdir}/pkgconfig/*training.pc
425 %{_libdir}/pkgconfig/*face-recognition.pc
426 %endif
427
428 %files roi_tracker
429 %manifest %{name}.manifest
430 %license LICENSE.APLv2
431 %{_libdir}/libmv_roi_tracker.so
432
433 %files roi_tracker-devel
434 %{_includedir}/media/mv_roi_tracker*.h
435 %{_libdir}/pkgconfig/*tracker.pc
436
437
438 %if !0%{?ml_only:1}
439 %files unittests
440 %manifest %{name}.manifest
441 %license LICENSE.APLv2
442 %{_libdir}/libmv_*helper.so
443 %if 0%{?visualizer:1}
444 %{_libdir}/libmv_visualizer.so
445 %endif
446 %{_libdir}/libmv_testsuite*.so
447 %{_bindir}/mv_*
448 %{_bindir}/test_object_detection_3d
449 %if "%{enable_ml_face_recognition}" == "1"
450 %{_bindir}/test_face_recognition
451 %{_bindir}/test_face_recognition_multi_threads
452 %{_bindir}/measure_face_recognition
453 %endif
454 %{_bindir}/tizen-unittests/%{name}/run-unittest.sh
455 %endif
456
457 %if 0%{?gcov:1}
458 %files gcov
459 %{_datadir}/gcov/obj/*
460 %endif