2fc676422f9162305398f70fe9131e0dd3846263
[platform/core/uifw/tts.git] / packaging / tts.spec
1 Name:       tts
2 Summary:    Text To Speech client library and daemon
3 Version:    1.70.11
4 Release:    1
5 Group:      Graphics & UI Framework/Voice Framework
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8 Source1001: %{name}.manifest
9 Source1002: %{name}-devel.manifest
10 Requires(post): /sbin/ldconfig
11 Requires(post): /usr/bin/buxton2ctl
12 Requires(postun): /sbin/ldconfig
13 Requires:  gawk
14 BuildRequires:  pkgconfig(aul)
15 BuildRequires:  pkgconfig(capi-appfw-app-manager)
16 BuildRequires:  pkgconfig(capi-appfw-app-common)
17 BuildRequires:  pkgconfig(buxton2)
18 BuildRequires:  pkgconfig(capi-base-common)
19 BuildRequires:  pkgconfig(capi-media-audio-io)
20 BuildRequires:  pkgconfig(capi-system-info)
21 BuildRequires:  pkgconfig(dbus-1)
22 BuildRequires:  pkgconfig(dlog)
23 BuildRequires:  pkgconfig(ecore)
24 BuildRequires:  pkgconfig(glib-2.0)
25 BuildRequires:  pkgconfig(libgum)
26 BuildRequires:  pkgconfig(libtzplatform-config)
27 BuildRequires:  pkgconfig(libxml-2.0)
28 BuildRequires:  pkgconfig(pkgmgr)
29 BuildRequires:  pkgconfig(pkgmgr-info)
30 BuildRequires:  pkgconfig(pkgmgr-installer)
31 BuildRequires:  pkgconfig(vconf)
32 BuildRequires:  pkgconfig(bundle)
33 BuildRequires:  pkgconfig(gmock)
34 BuildRequires:  pkgconfig(rpc-port)
35
36 BuildRequires:  cmake
37 BuildRequires:  tidl
38
39 %if 0%{?gcov:1}
40 BuildRequires:  lcov
41 BuildRequires:  zip
42 %endif
43
44 %description
45 Text To Speech client library and daemon.
46
47
48 %package devel
49 Summary:    Text To Speech header files for TTS development
50 Group:      libdevel
51 Requires:   %{name} = %{version}-%{release}
52
53 %package setting-devel
54 Summary:    Text To Speech setting header files for TTS development
55 Group:      libdevel
56 Requires:   %{name} = %{version}-%{release}
57
58 %package engine-devel
59 Summary:    Text To Speech engine header files for TTS development
60 Group:      libdevel
61 Requires:   %{name} = %{version}-%{release}
62
63 %description devel
64 Text To Speech header files for TTS development.
65
66 %description setting-devel
67 Text To Speech setting header files for TTS development.
68
69 %description engine-devel
70 Text To Speech engine header files for TTS development.
71
72 %if 0%{?gcov:1}
73 %package gcov
74 Summary:        Text To Speech (gcov)
75 Group:          Graphics & UI Framework/Voice Framework
76 %description gcov
77 Text To Speech gcov objects
78 %endif
79
80 %package unittests
81 Summary:    TTS tests
82 Group:      Development/Libraries
83 Requires:   %{name} = %{version}-%{release}
84
85 %description unittests
86 GTest for TTS
87
88
89 %prep
90 %setup -q -n %{name}-%{version}
91 cp %{SOURCE1001} %{SOURCE1002} .
92
93 tidlc -p -l C -i tidl/tts.tidl -o tts_proxy
94 tidlc -s -l C -i tidl/tts.tidl -o ttsd_stub
95
96 mv tts_proxy* client
97 mv ttsd_stub* server
98
99 %build
100 export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE"
101 export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE"
102 export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE"
103
104 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
105 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
106 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
107
108 %if 0%{?gcov:1}
109 export CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV"
110 export CXXFLAGS="$CXXFLAGS -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV"
111 export FFLAGS="$FFLAGS -fprofile-arcs -ftest-coverage"
112 export LDFLAGS="$LDFLAGS -lgcov"
113 %endif
114
115 cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DLIBDIR=%{_libdir} -DBINDIR=%{_bindir} -DINCLUDEDIR=%{_includedir} \
116         -DTZ_SYS_RO_SHARE=%TZ_SYS_RO_SHARE -DTZ_SYS_BIN=%TZ_SYS_BIN \
117         -DTZ_SYS_RO_PACKAGES=%TZ_SYS_RO_PACKAGES -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP
118
119 make %{?jobs:-j%jobs}
120
121 %install
122 rm -rf %{buildroot}
123
124 %if "%{tizen_profile_name}" == "tv"
125 mv -f org.tizen.voice.ttsserver.tv.service org.tizen.voice.ttsserver.service
126 mv -f org.tizen.voice.ttsnotiserver.tv.service org.tizen.voice.ttsnotiserver.service
127 mv -f org.tizen.voice.ttssrserver.tv.service org.tizen.voice.ttssrserver.service
128 mv -f org.tizen.voice.ttsinterruptserver.tv.service org.tizen.voice.ttsinterruptserver.service
129 %endif
130
131 %make_install
132
133 %if 0%{?gcov:1}
134 builddir=$(basename $PWD)
135 gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
136 mkdir -p "$gcno_obj_dir"
137 find ./test/ -name '*.gcno' -exec rm {} \;
138 find ./server/ -name '*.gcno' -exec rm {} \;
139 find ./tests/ -name '*.gcno' -exec rm {} \;
140 find ./engine-parser/ -name '*.gcno' -exec rm {} \;
141 find . -name '*_config*.gcno' -exec rm {} \;
142 find . -name '*_tidl*.gcno' -exec rm {} \;
143 find . -name '*_dbus*.gcno' -exec rm {} \;
144 find . -name '*_proxy*.gcno' -exec rm {} \;
145 find . -name '*_setting*.gcno' -exec rm {} \;
146 find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
147 %endif
148
149 cat << EOF > run-unittest.sh
150 #!/bin/sh
151 setup() {
152     echo "setup start"
153     touch /opt/share/askuser_disable
154     mount -o remount,rw /
155     tpk-backend --preload -y org.tizen.tts-unittests
156 }
157
158 test_main() {
159     echo "test_main start"
160     launch_app org.tizen.tts-unittests __AUL_SDK__ UNIT_TEST __LAUNCH_APP_MODE__ SYNC
161 }
162
163 teardown() {
164     echo "teardown start"
165 }
166
167 main() {
168     setup
169     test_main
170     teardown
171 }
172
173 main "\$*"
174 EOF
175
176 mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
177 install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}
178
179 %check
180 %if "%{_ctest_enable}" == "true"
181 ctest -V --output-on-failure %{?_smp_mflags}
182 %if 0%{?gcov:1}
183 lcov -c --ignore-errors graph --no-external -q -d . -o gcov.info
184 genhtml gcov.info
185 %endif
186 %endif
187
188 %post
189 /sbin/ldconfig
190
191 mkdir -p %{_libdir}/voice
192
193 mkdir -p %{TZ_SYS_RO_SHARE}/voice/test
194
195 mkdir -p -m 0775 %{TZ_SYS_GLOBALUSER_DATA}/.voice
196 chsmack -t %{TZ_SYS_GLOBALUSER_DATA}/.voice
197 chsmack -a "User::App::Shared" %{TZ_SYS_GLOBALUSER_DATA}/.voice
198 mkdir -p %{TZ_SYS_GLOBALUSER_DATA}/.voice/tts/engine-info
199 chown -R ui_fw:users %{TZ_SYS_GLOBALUSER_DATA}/.voice
200
201 %postun -p /sbin/ldconfig
202
203 %files
204 %manifest %{name}.manifest
205 %license LICENSE
206 %defattr(-,root,root,-)
207 %{_libdir}/lib*.so
208 %{TZ_SYS_RO_SHARE}/voice/tts/1.0/tts-config.xml
209 %{TZ_SYS_RO_SHARE}/dbus-1/system-services/org.tizen.voice.ttsserver.service
210 %{TZ_SYS_RO_SHARE}/dbus-1/system-services/org.tizen.voice.ttsnotiserver.service
211 %{TZ_SYS_RO_SHARE}/dbus-1/system-services/org.tizen.voice.ttssrserver.service
212 %{TZ_SYS_RO_SHARE}/dbus-1/system-services/org.tizen.voice.ttsinterruptserver.service
213 #%{TZ_SYS_RO_SHARE}/voice/test/tts-test
214 %{_bindir}/tts_getengine
215 %{TZ_SYS_RO_ETC}/package-manager/parserlib/metadata/libtts-engine-parser.so*
216 #%{TZ_SYS_RO_ETC}/package-manager/parserlib/metadata/libtts-engine-language-pack-parser.so*
217 /etc/dbus-1/system.d/tts-server.conf
218
219 %files devel
220 %manifest %{name}-devel.manifest
221 %defattr(-,root,root,-)
222 %{_libdir}/pkgconfig/tts.pc
223 %{_includedir}/tts.h
224 %{_includedir}/tts_internal.h
225
226 %files setting-devel
227 %defattr(-,root,root,-)
228 %{_libdir}/pkgconfig/tts-setting.pc
229 %{_includedir}/tts_setting.h
230
231 %files engine-devel
232 %defattr(-,root,root,-)
233 %{_libdir}/pkgconfig/tts-engine.pc
234 %{_includedir}/ttse.h
235
236 %if 0%{?gcov:1}
237 %files gcov
238 %{_datadir}/gcov/obj/*
239 %endif
240
241 %files unittests
242 %manifest tests/org.tizen.tts-unittests.manifest
243 %defattr(-,root,root,-)
244 %{TZ_SYS_RO_PACKAGES}/org.tizen.tts-unittests.xml
245 %{TZ_SYS_RO_APP}/org.tizen.tts-unittests/res/test_pcm.dat
246 %{TZ_SYS_RO_APP}/org.tizen.tts-unittests/bin/tts-unittests
247 %{_bindir}/tizen-unittests/%{name}/run-unittest.sh