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