Revise UnitTest of system-settings with GTEST
[platform/core/api/system-settings.git] / packaging / capi-system-system-settings.spec
1 Name:       capi-system-system-settings
2 Summary:    A System Settings library in Tizen Native API
3 Version:    0.0.5
4 Release:    0
5
6 Group:      System/System Info
7 License:    Apache-2.0
8 URL : https://git.tizen.org/cgit/platform/core/api/system-settings
9 Source0:    %{name}-%{version}.tar.gz
10 Source1001: %{name}.manifest
11
12 BuildRequires:  cmake
13 BuildRequires:  pkgconfig(dlog)
14 BuildRequires:  pkgconfig(vconf)
15 BuildRequires:  pkgconfig(aul)
16 BuildRequires:  pkgconfig(fontconfig)
17 BuildRequires:  pkgconfig(libxml-2.0)
18 BuildRequires:  pkgconfig(pkgmgr)
19 BuildRequires:  pkgconfig(pkgmgr-info)
20 BuildRequires:  pkgconfig(libtzplatform-config)
21 BuildRequires:  pkgconfig(alarm-service)
22 BuildRequires:  pkgconfig(uuid)
23 BuildRequires:  pkgconfig(capi-media-metadata-extractor)
24 BuildRequires:  pkgconfig(capi-system-info)
25 BuildRequires:  pkgconfig(libsystemd)
26 BuildRequires:  pkgconfig(json-glib-1.0)
27 BuildRequires:  pkgconfig(glib-2.0)
28 BuildRequires:  pkgconfig(capi-appfw-app-manager)
29 BuildRequires:  pkgconfig(capi-appfw-package-manager)
30 BuildRequires:  pkgconfig(ecore-evas)
31 BuildRequires:  pkgconfig(efl-extension)
32 BuildRequires:  pkgconfig(gmock)
33 Requires(post): /sbin/ldconfig
34 Requires(postun): /sbin/ldconfig
35 BuildRequires:  pkgconfig(sqlite3)
36 BuildRequires:  capi-system-info-test
37 BuildRequires:  default-fonts-sdk
38 %if 0%{?gcov:1}
39 BuildRequires:  lcov
40 %endif
41
42 %description
43 System setting api for get,set configuration
44
45 %package util-lib
46 Summary: Utility library for %{name}
47 Group: System/System Info
48 Requires: %{name} = %{version}
49
50 %description util-lib
51 The %{name}-utils pacakge contains an utility library for handling font and image
52
53 %package devel
54 Summary:  A System Settings library in Tizen Native API (Development)
55 Group:    System/System Info
56 Requires: %{name} = %{version}
57 Requires:  pkgconfig(capi-base-common)
58
59 %description devel
60 System setting api for get,set configuration
61
62 %package unittests
63 Summary: Test Programs for %{name}
64 Group: System/Testing
65
66 %description unittests
67 The %{name}-unittests pacakge contains programs for checking the %{name}.
68
69 %if 0%{?gcov:1}
70 %package gcov
71 Summary:  A System Settings library in Tizen Native API
72 Group:    System/Testing
73
74 %description gcov
75 System Settings library gcov objects
76 %endif
77
78 %define tizen_profile_name mobile
79 %define sys_setting_test_dir  %{_bindir}/sys-settings
80
81 %prep
82 %setup -q
83 cp %{SOURCE1001} ./%{name}.manifest
84
85 %build
86 %if "%{?tizen_profile_name}" == "wearable"
87 export CFLAGS="$CFLAGS -DTIZEN_WEARABLE"
88 export CXXFLAGS="$CXXFLAGS -DTIZEN_WEARABLE"
89 export FFLAGS="$FFLAGS -DTIZEN_WEARABLE"
90 %else
91 export CFLAGS="$CFLAGS -DTIZEN_MOBILE"
92 export CXXFLAGS="$CXXFLAGS -DTIZEN_MOBILE"
93 export FFLAGS="$FFLAGS -DTIZEN_MOBILE"
94 %endif
95
96 %if 0%{?gcov:1}
97 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
98 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
99 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
100 export LDFLAGS+=" -lgcov"
101 %endif
102
103 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
104 %cmake . -DMAJORVER=${MAJORVER} -DFULLVER=%{version} \
105         -DCMAKE_VERBOSE_MAKEFILE=OFF \
106         -DTZ_SYS_DATA=%{TZ_SYS_DATA} \
107         -DTZ_SYS_ETC=%{TZ_SYS_ETC} \
108         -DTZ_SYS_RO_SHARE=%{TZ_SYS_RO_SHARE} \
109         -DTZ_SYS_SHARE=%{TZ_SYS_SHARE} \
110         -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0} \
111         -DTEST_INSTALL_DIR:PATH=%{sys_setting_test_dir} \
112         -DSST_RES_DIR=%{TZ_SYS_GLOBALUSER_DATA}/settings \
113         -DSTDOUT_LOG=%{?stdlog:1}%{!?stdlog:0} \
114 %if 0%{?thread_number}
115         -DN_THREADS=%{thread_number}
116 %else
117         -DN_THREADS=1
118 %endif
119
120 make %{?_smp_mflags}
121
122 %install
123 %make_install
124
125 %if 0%{?gcov:1}
126 find .. -name '*.gcno' | tar cf %{name}-gcov.tar -T -
127 install -d -m 755 %{buildroot}%{_datadir}/gcov/obj
128 tar xf %{name}-gcov.tar -C %{buildroot}%{_datadir}/gcov/obj
129 %endif
130
131 %check
132 bash tests/scripts/vconf_golden_master.sh
133 LD_LIBRARY_PATH=.:tests:libutil LD_PRELOAD=tests/libsys-settings-mock.so tests/sst-gtest-api
134 LD_LIBRARY_PATH=.:tests:libutil LD_PRELOAD=tests/libsys-settings-mock.so tests/sst-gtest-vconf
135 LD_LIBRARY_PATH=.:tests:libutil LD_PRELOAD=tests/libsys-settings-mock.so tests/sst-gtest-font
136 LD_LIBRARY_PATH=.:tests:libutil LD_PRELOAD=tests/libsys-settings-mock.so tests/sst-gtest-interface
137 LD_LIBRARY_PATH=.:tests:libutil LD_PRELOAD=tests/libsys-settings-mock.so tests/sst-gtest-sound
138 LD_LIBRARY_PATH=.:tests:libutil LD_PRELOAD=tests/libsys-settings-mock.so tests/sst-gtest-screen
139 LD_LIBRARY_PATH=.:tests:libutil LD_PRELOAD=tests/libsys-settings-mock.so tests/sst-gtest-time-n-locale
140 LD_LIBRARY_PATH=.:tests:libutil LD_PRELOAD=tests/libsys-settings-mock.so tests/sst-gtest-misc
141 %if 0%{?gcov:1}
142 lcov -c --ignore-errors graph --no-external -b . -d . -o %{name}.info
143 genhtml %{name}.info -o out --legend --show-details
144 %endif
145
146 %post -p /sbin/ldconfig
147 %post util-lib -p /sbin/ldconfig
148 %post unittests
149 bash %{sys_setting_test_dir}/ringtone/ringtone_files.sh create
150 XDG_RUNTIME_DIR=/run %{sys_setting_test_dir}/sst-gtest-api
151 XDG_RUNTIME_DIR=/run %{sys_setting_test_dir}/sst-gtest-vconf
152 XDG_RUNTIME_DIR=/run %{sys_setting_test_dir}/sst-gtest-font
153 XDG_RUNTIME_DIR=/run %{sys_setting_test_dir}/sst-gtest-interface
154 XDG_RUNTIME_DIR=/run %{sys_setting_test_dir}/sst-gtest-sound
155 XDG_RUNTIME_DIR=/run %{sys_setting_test_dir}/sst-gtest-screen
156 XDG_RUNTIME_DIR=/run %{sys_setting_test_dir}/sst-gtest-time-n-locale
157 XDG_RUNTIME_DIR=/run %{sys_setting_test_dir}/sst-gtest-misc
158
159
160 %postun -p /sbin/ldconfig
161 %postun util-lib -p /sbin/ldconfig
162 %postun unittests
163 bash %{sys_setting_test_dir}/ringtone/ringtone_files.sh del
164
165 %files
166 %manifest %{name}.manifest
167 %{_libdir}/lib*settings.so.*
168 %license LICENSE.APLv2
169
170 %files util-lib
171 %manifest %{name}.manifest
172 %{_libdir}/lib*settings-util.so
173 %license LICENSE.APLv2
174
175 %files devel
176 %manifest %{name}.manifest
177 %{_libdir}/lib*settings.so
178 %{_libdir}/pkgconfig/*.pc
179 %{_includedir}/system/*.h
180
181 %files unittests
182 %manifest %{name}.manifest
183 %{sys_setting_test_dir}/*
184 %license LICENSE.APLv2
185
186 %if 0%{?gcov:1}
187 %files gcov
188 %{_datadir}/gcov/*
189 %endif