Fix a logic to change stereo to mono and Unregister ffv audio callback when stopping...
[platform/core/uifw/stt.git] / packaging / stt.spec
index 03350df..81471fe 100644 (file)
@@ -1,6 +1,6 @@
 Name:       stt
 Summary:    Speech To Text client library and daemon
-Version:    0.2.56
+Version:    1.90.0
 Release:    1
 Group:      Graphics & UI Framework/Voice Framework
 License:    Apache-2.0
@@ -27,18 +27,24 @@ BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  pkgconfig(libgum)
 BuildRequires:  pkgconfig(libtzplatform-config)
 BuildRequires:  pkgconfig(libxml-2.0)
-BuildRequires:  pkgconfig(libsystemd)
 BuildRequires:  pkgconfig(pkgmgr)
 BuildRequires:  pkgconfig(pkgmgr-info)
 BuildRequires:  pkgconfig(pkgmgr-installer)
 BuildRequires:  pkgconfig(vconf)
-%if "%{PRODUCT_TYPE}" == "TV"
+BuildRequires:  pkgconfig(gmock)
+%if "%{tizen_profile_name}" == "tv"
 BuildRequires:  pkgconfig(capi-network-bluetooth)
 BuildRequires:  pkgconfig(capi-network-bluetooth-tv)
+BuildRequires:  pkgconfig(farfield-voice-api)
 %endif
 
 BuildRequires:  cmake
 
+%if 0%{?gcov:1}
+BuildRequires:  lcov
+BuildRequires:  zip
+%endif
+
 %description
 Speech To Text client library and daemon.
 
@@ -63,6 +69,14 @@ Summary:    Speech To Text engine header files for STT development
 Group:      Graphics & UI Framework/Development
 Requires:   %{name} = %{version}-%{release}
 
+%package unittests
+Summary:    STT tests
+Group:      Development/Libraries
+Requires:   %{name} = %{version}-%{release}
+
+%description unittests
+GTest for STT
+
 %description devel
 Speech To Text header files for STT development.
 
@@ -75,6 +89,15 @@ Speech To Text setting header files for STT development.
 %description engine-devel
 Speech To Text engine header files for STT development.
 
+%if 0%{?gcov:1}
+%package gcov
+Summary:       Speech To Text (gcov)
+Group:         Graphics & UI Framework/Voice Framework
+%description gcov
+Speech To Text gcov objects
+%endif
+
+
 %prep
 %setup -q -n %{name}-%{version}
 cp %{SOURCE1001} %{SOURCE1002} .
@@ -88,26 +111,87 @@ export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE"
 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
-%if "%{PRODUCT_TYPE}" == "TV"
+
+%if 0%{?gcov:1}
+export CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV"
+export CXXFLAGS="$CXXFLAGS -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV"
+export FFLAGS="$FFLAGS -fprofile-arcs -ftest-coverage"
+export LDFLAGS="$LDFLAGS -lgcov"
+%endif
+
+
+%if "%{tizen_profile_name}" == "tv"
 export CFLAGS="$CFLAGS -DTV_PRODUCT"
 cmake . -DCMAKE_INSTALL_PREFIX=/usr -DLIBDIR=%{_libdir} -DBINDIR=%{_bindir} -DINCLUDEDIR=%{_includedir} \
-        -DTZ_SYS_RO_SHARE=%TZ_SYS_RO_SHARE -DTZ_SYS_BIN=%TZ_SYS_BIN -D_TV_PRODUCT=TRUE
+        -DTZ_SYS_RO_SHARE=%TZ_SYS_RO_SHARE -DTZ_SYS_BIN=%TZ_SYS_BIN -D_TV_PRODUCT=TRUE \
+        -DTZ_SYS_RO_PACKAGES=%TZ_SYS_RO_PACKAGES -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP
 %else
 cmake . -DCMAKE_INSTALL_PREFIX=/usr -DLIBDIR=%{_libdir} -DBINDIR=%{_bindir} -DINCLUDEDIR=%{_includedir} \
-        -DTZ_SYS_RO_SHARE=%TZ_SYS_RO_SHARE -DTZ_SYS_BIN=%TZ_SYS_BIN
+        -DTZ_SYS_RO_SHARE=%TZ_SYS_RO_SHARE -DTZ_SYS_BIN=%TZ_SYS_BIN \
+        -DTZ_SYS_RO_PACKAGES=%TZ_SYS_RO_PACKAGES -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP
 %endif
 
 make %{?jobs:-j%jobs}
 
+
 %install
 rm -rf %{buildroot}
 
-%if "%{PRODUCT_TYPE}" == "TV"
+%if "%{tizen_profile_name}" == "tv"
 mv -f org.tizen.voice.sttserver.tv.service org.tizen.voice.sttserver.service
 %endif
 
 %make_install
 
+%if 0%{?gcov:1}
+builddir=$(basename $PWD)
+gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
+mkdir -p "$gcno_obj_dir"
+find ./server/ -name '*.gcno' -exec rm {} \;
+find ./engine-parser/ -name '*.gcno' -exec rm {} \;
+find ./test/ -name '*.gcno' -exec rm {} \;
+find ./tests/ -name '*.gcno' -exec rm {} \;
+find . -name '*_client.c.gcno' -exec rm {} \;
+find . -name '*_dbus.c.gcno' -exec rm {} \;
+find . -name 'stt_config*.gcno' -exec rm {} \;
+find . -name '*_engine.c.gcno' -exec rm {} \;
+find . -name 'sttd*.gcno' -exec rm {} \;
+find . -name '*_file*.gcno' -exec rm {} \;
+find . -name '*_network.c.gcno' -exec rm {} \;
+find . -name '*_setting.c.gcno' -exec rm {} \;
+find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
+%endif
+
+cat << EOF > run-unittest.sh
+#!/bin/sh
+setup() {
+    echo "setup start"
+    touch /opt/share/askuser_disable
+    mount -o remount,rw /
+    tpk-backend --preload -y org.tizen.stt-unittests
+}
+
+test_main() {
+    echo "test_main start"
+    launch_app org.tizen.stt-unittests __AUL_SDK__ UNIT_TEST __LAUNCH_APP_MODE__ SYNC
+}
+
+teardown() {
+    echo "teardown start"
+}
+
+main() {
+    setup
+    test_main
+    teardown
+}
+
+main "\$*"
+EOF
+
+mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
+install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}
+
 %post
 /sbin/ldconfig
 
@@ -117,6 +201,7 @@ mkdir -p %{TZ_SYS_RO_SHARE}/voice/test
 
 %postun -p /sbin/ldconfig
 
+
 %files
 %manifest %{name}.manifest
 %license LICENSE.APLv2
@@ -153,3 +238,17 @@ mkdir -p %{TZ_SYS_RO_SHARE}/voice/test
 %{_libdir}/pkgconfig/stt-engine.pc
 %{_includedir}/stte.h
 %{_includedir}/stte_internal.h
+
+%if 0%{?gcov:1}
+%files gcov
+%{_datadir}/gcov/obj/*
+%endif
+
+%files unittests
+%manifest tests/org.tizen.stt-unittests.manifest
+%defattr(-,root,root,-)
+%{TZ_SYS_RO_PACKAGES}/org.tizen.stt-unittests.xml
+%{TZ_SYS_RO_APP}/org.tizen.stt-unittests/res/test_pcm.dat
+%{TZ_SYS_RO_APP}/org.tizen.stt-unittests/res/ringtone.wav
+%{TZ_SYS_RO_APP}/org.tizen.stt-unittests/bin/stt-unittests
+%{_bindir}/tizen-unittests/%{name}/run-unittest.sh