Merge branch 'main' into ci/gilbok-lee/update_public
[platform/core/multimedia/esplusplayer.git] / packaging / esplusplayer.spec
1 #%bcond_with : disable ESPLUSPLAYER_UT by default, %bcond_without : enable ESPLUSPLAYER_UT
2 %bcond_without TIZEN_PUBLIC
3 %if ("%{_vd_cfg_product_type}" != "AUDIO")
4 %bcond_without ESPLUSPLAYER_UT
5 %else
6 %bcond_with ESPLUSPLAYER_UT
7 %endif
8 #echo "Product Type: %{_vd_cfg_product_type}"
9 Name:       esplusplayer
10 Summary:    new multimedia streaming player
11 Version:    1.3.7
12 Group:      Multimedia/Libraries
13 License:    Apache-2.0
14 Source0:    %{name}-%{version}.tar.gz
15 Source1001: esplusplayer.manifest
16 BuildRequires:  cmake
17 BuildRequires:  curl
18 BuildRequires:  pkgconfig(glib-2.0)
19 BuildRequires:  pkgconfig(gstreamer-1.0)
20 BuildRequires:  pkgconfig(gstreamer-plugins-base-1.0)
21 BuildRequires:  pkgconfig(dlog)
22 BuildRequires:  pkgconfig(boost)
23 BuildRequires:  pkgconfig(elementary)
24 BuildRequires:  pkgconfig(ecore)
25 BuildRequires:  pkgconfig(evas)
26 BuildRequires:  pkgconfig(ecore-wl2)
27 %if %{with TIZEN_PUBLIC}
28 BuildRequires:  pkgconfig(libtrackrenderer)
29 BuildRequires:  pkgconfig(capi-media-sound-manager)
30 # for test
31 BuildRequires:  pkgconfig(capi-mediademuxer)
32 BuildRequires:  pkgconfig(appcore-efl)
33 %else
34 BuildRequires:  pkgconfig(tv-resource-manager)
35 BuildRequires:  pkgconfig(drmdecrypt)
36 BuildRequires:  pkgconfig(context-aware-api)
37 %if ("%{_vd_cfg_product_type}" != "AUDIO")
38 BuildRequires:  pkgconfig(graphics-control)
39 %endif
40 BuildRequires:  pkgconfig(capi-trackrenderer-tv)
41 BuildRequires:  pkgconfig(logger)
42 %endif
43
44 BuildRequires:  pkgconfig(libtzplatform-config)
45 BuildRequires:  pkgconfig(jsoncpp)
46 BuildRequires:  pkgconfig(icu-i18n)
47 BuildRequires:  pkgconfig(gio-2.0)
48 BuildRequires:  pkgconfig(libtbm)
49
50 BuildRequires:  pkgconfig(libtbm)
51 BuildRequires:  pkgconfig(capi-system-info)
52
53
54 %if ("%{sec_buildconf_product_lite_tizen}" == "n")
55 # for ut
56 BuildRequires:  gtest-devel
57 BuildRequires:  pkgconfig(appcore-efl)
58 %endif
59
60 %define _packagedir /usr
61 %define _bindir %{_packagedir}/bin
62 %define _includedir %{_packagedir}/include
63 %define _pkgconfigdir %{_libdir}/pkgconfig
64 %define _unpackaged_files_terminate_build 0
65 %define _missing_doc_files_terminate_build 0
66
67 %description
68 new multimedia player, object-oriented model
69
70 %package devel
71 Summary:    Developement for multimedia player
72 Group:      Development/Libraries
73 Requires:   %{name} = %{version}-%{release}
74
75 %package config
76 Summary:    Configuration for multimedia player
77 Group:      Development/Libraries
78 Requires:   %{name} = %{version}-%{release}
79
80 %description devel
81 %devel_desc
82
83 %description config
84
85 #################################################
86 # gcov
87 #################################################
88 %if 0%{?vd_gcov:1}
89 %package gcov
90 Summary: gcov enabled package
91 Group: gcov package
92
93 %description gcov
94 This package is gcov package for coverage measurement.
95 %endif
96
97 %prep
98 %setup -q
99 cp %{SOURCE1001} .
100
101 %if ("%{sec_buildconf_product_lite_tizen}" == "n")
102 %if ("%{_vd_cfg_product_type}" != "AUDIO")
103 %{?!TOMATO: %define TOMATO n}
104
105 %define _tomatoname esplusplayer
106 %define _tomatodir  /opt/usr/apps/tomato/testcase/%{name}
107 %define _tomatobin /opt/usr/apps/tomato/testcase/%{name}/bin
108
109 %package ut-component-tomato
110 Summary: Test package with TOMATO
111 BuildRequires:  gtest-devel
112 %if %{without TIZEN_PUBLIC}
113 BuildRequires:  pkgconfig(video-capture)
114 BuildRequires:  pkgconfig(audio-control)
115 BuildRequires:  pkgconfig(video-sink)
116 %endif
117 BuildRequires:  libjpeg-turbo-devel
118
119 #BuildRequires:  pkgconfig(capi-system-info)
120 Requires: %{name} = %{version}-%{release}
121
122 %description ut-component-tomato
123 This package is for test
124
125 %files ut-component-tomato
126 %defattr(-,root,root,-)
127 %{_bindir}/esplusplayer_ut
128 %{_tomatodir}/*
129
130 %endif
131 %endif
132
133 %build
134 export CFLAGS+=" -Wno-deprecated-declarations"
135 export CXXFLAGS+=" -Wno-deprecated-declarations"
136
137 %if %{with TIZEN_PUBLIC}
138 export CFLAGS+=" -DTIZEN_FEATURE_PUBLIC"
139 export CXXFLAGS+=" -DTIZEN_FEATURE_PUBLIC"
140 %define TIZEN_PUBLIC ON
141 %define USE_MIXER no
142 %else
143 %if ("%{_vd_cfg_product_type}" == "AUDIO")
144 export CFLAGS+=" -DIS_AUDIO_PRODUCT"
145 export CXXFLAGS+=" -DIS_AUDIO_PRODUCT"
146 %define PRODUCT_TYPE_AUDIO yes
147 %define USE_MIXER no
148 %else
149 export CFLAGS+=" -DUSE_MIXER"
150 export CXXFLAGS+=" -DUSE_MIXER"
151 %define PRODUCT_TYPE_AUDIO no
152 %define USE_MIXER yes
153 %endif
154 %define TIZEN_PUBLIC OFF
155 %endif
156
157 #TODO: check AV type is used or not
158 %if ("%{_vd_cfg_product_type}" == "AV")
159 export CFLAGS+=" -DIS_AV_PRODUCT"
160 export CXXFLAGS+=" -DIS_AV_PRODUCT"
161 %endif
162
163 #TODO: AUDIO type is used to enable fmm mode API impl.
164 %if ("%{_vd_cfg_product_type}" == "AUDIO")
165 export CFLAGS+=" -DSOUNDBAR_PRODUCT"
166 export CXXFLAGS+=" -DSOUNDBAR_PRODUCT"
167 %define _support_soundbar -DSUPPORT_SOUNDBAR=ON
168 %endif
169
170 %if 0%{?vd_gcov:1}
171 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
172 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
173 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
174 export LDFLAGS+=" -lgcov"
175 #export CFLAGS+=" -DIS_TOMATO"
176 #export CXXFLAGS+=" -DIS_TOMATO"
177 %endif
178
179 export CXXFLAGS+=" -Wno-pessimizing-move"
180
181 %if %{without TIZEN_PUBLIC}
182 %ifarch aarch64
183 export CXXFLAGS+=" -DDRM_MAPI_AARCH_64"
184 %endif
185 %endif
186
187 %if ("%{sec_buildconf_product_lite_tizen}" == "n")
188 %if %{with ESPLUSPLAYER_UT}
189 %cmake . -DESPLUSPLAYER_BUILD_UT=ON -DPRODUCT_TYPE_AUDIO=%PRODUCT_TYPE_AUDIO -DUSE_MIXER=%USE_MIXER -DTIZEN_PUBLIC=%TIZEN_PUBLIC
190 %else
191 %cmake . -DPRODUCT_TYPE_AUDIO=%PRODUCT_TYPE_AUDIO -DUSE_MIXER=%USE_MIXER -DTIZEN_PUBLIC=%TIZEN_PUBLIC
192 %endif
193 %else
194 %cmake . -DPRODUCT_TYPE_AUDIO=%PRODUCT_TYPE_AUDIO -DUSE_MIXER=%USE_MIXER -DTIZEN_PUBLIC=%TIZEN_PUBLIC
195
196 %endif
197
198 make %{?jobs:-j%jobs}
199
200 %install
201 rm -rf %{buildroot}
202
203 %if ("%{sec_buildconf_product_lite_tizen}" == "n")
204 mkdir -p %{buildroot}%{_tomatodir}
205 mkdir -p %{buildroot}%{_tomatodir}/log
206 mkdir -p %{buildroot}%{_tomatodir}/result
207 mkdir -p %{buildroot}%{_tomatodir}/tc
208 cp -rf tomato/tc/* %{buildroot}%{_tomatodir}/tc
209 %endif
210
211 %make_install
212 mkdir -p %{buildroot}%TZ_SYS_RO_ETC/multimedia
213 #mkdir -p %{buildroot}%TZ_SYS_RW_APP/multimedia
214 #mkdir -p %{buildroot}/opt
215 #mkdir -p %{buildroot}/opt/usr
216 #mkdir -p %{buildroot}/opt/usr/home
217 #mkdir -p %{buildroot}/opt/usr/home/owner
218 #mkdir -p %{buildroot}/opt/usr/home/owner/models
219 cp -rf config/esplusplayer.ini %{buildroot}%TZ_SYS_RO_ETC/multimedia/esplusplayer.ini
220
221 %if 0%{?vd_gcov:1}
222 mkdir -p %{buildroot}%{_datadir}/gcov/obj
223 find . \( -name '*.gcno' -o -name '*.cpp' -o -name '*.c' -o -name '*.hpp' -o -name '*.h' \) ! -path "./ut/*" ! -path "./test/*" ! -path "*/CompilerIdCXX/*" -exec cp --parents -r '{}' %{buildroot}%{_datadir}/gcov/obj ';'
224 %endif
225
226 %files
227 %defattr(-,root,root,-)
228 %manifest esplusplayer.manifest
229 %license LICENSE.APLv2
230 %{_libdir}/libespplayer-core.so
231 %{_libdir}/libesplusplayer.so
232 %if ("%{USE_MIXER}" == "yes")
233 %{_libdir}/libmixer.so
234 %endif
235
236 %TZ_SYS_RO_ETC/multimedia/esplusplayer.ini
237 #%attr(0775, owner,users) %TZ_SYS_RW_APP/multimedia
238
239 #remove esplusplayer_ut in esplusplayer package by flash memory issue
240 #%if ("%{sec_buildconf_product_lite_tizen}" == "n")
241 #%if %{with ESPLUSPLAYER_UT}
242 #%{_bindir}/esplusplayer_ut
243 #%defattr(-,root,root,-)
244 #%{_tomatodir}/*
245 #%endif
246 #%endif
247
248 %files devel
249 %defattr(-,root,root,-)
250 %{_includedir}/esplusplayer/*.h
251 %{_includedir}/esplusplayer/types/*.h
252 %{_includedir}/esplusplayer_capi/*.h
253 %{_includedir}/mixer/*.h
254 %{_includedir}/mixer_capi/*.h
255 %{_pkgconfigdir}/esplusplayer.pc
256
257 %files config
258 %defattr(-,root,root,-)
259 %manifest esplusplayer.manifest
260 %license LICENSE.APLv2
261 %TZ_SYS_RO_ETC/multimedia/esplusplayer.ini
262 %attr(0775, owner,users) %TZ_SYS_RO_ETC/multimedia
263
264 %if 0%{?vd_gcov:1}
265 %files gcov
266 %{_datadir}/gcov/*
267 %endif