5225c88d1cd3197684b01352b002b170b953b656
[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(efl-extension)
31 BuildRequires:  pkgconfig(gmock)
32 Requires(post): /sbin/ldconfig
33 Requires(postun): /sbin/ldconfig
34 BuildRequires:  pkgconfig(sqlite3)
35 BuildRequires:  capi-system-info-test
36 BuildRequires:  default-fonts-sdk
37 %if 0%{?gcov:1}
38 BuildRequires:  lcov
39 %endif
40
41 %description
42 System setting api for get,set configuration
43
44 %package util-lib
45 Summary: Utility library for %{name}
46 Group: System/System Info
47 Requires: %{name} = %{version}
48
49 %description util-lib
50 The %{name}-utils pacakge contains an utility library for handling font and image
51
52 %package devel
53 Summary:  A System Settings library in Tizen Native API (Development)
54 Group:    System/System Info
55 Requires: %{name} = %{version}
56 Requires:  pkgconfig(capi-base-common)
57
58 %description devel
59 System setting api for get,set configuration
60
61 %package unittests
62 Summary: Test Programs for %{name}
63 Group: System/Testing
64
65 %description unittests
66 The %{name}-unittests pacakge contains programs for checking the %{name}.
67
68 %if 0%{?gcov:1}
69 %package gcov
70 Summary:  A System Settings library in Tizen Native API
71 Group:    System/Testing
72
73 %description gcov
74 System Settings library gcov objects
75 %endif
76
77 %define tizen_profile_name mobile
78 %define sys_setting_test_dir  %{_bindir}/sys-settings
79
80 %prep
81 %setup -q
82 cp %{SOURCE1001} ./%{name}.manifest
83
84 %build
85 %if "%{?tizen_profile_name}" == "wearable"
86 export CFLAGS="$CFLAGS -DTIZEN_WEARABLE"
87 export CXXFLAGS="$CXXFLAGS -DTIZEN_WEARABLE"
88 export FFLAGS="$FFLAGS -DTIZEN_WEARABLE"
89 %else
90 export CFLAGS="$CFLAGS -DTIZEN_MOBILE"
91 export CXXFLAGS="$CXXFLAGS -DTIZEN_MOBILE"
92 export FFLAGS="$FFLAGS -DTIZEN_MOBILE"
93 %endif
94
95 %if 0%{?gcov:1}
96 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
97 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
98 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
99 export LDFLAGS+=" -lgcov"
100 %endif
101
102 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
103 %cmake . -DMAJORVER=${MAJORVER} -DFULLVER=%{version} \
104         -DCMAKE_VERBOSE_MAKEFILE=OFF \
105         -DTZ_SYS_DATA=%{TZ_SYS_DATA} \
106         -DTZ_SYS_ETC=%{TZ_SYS_ETC} \
107         -DTZ_SYS_RO_SHARE=%{TZ_SYS_RO_SHARE} \
108         -DTZ_SYS_SHARE=%{TZ_SYS_SHARE} \
109         -DSYSCONF_DIR=%{_sysconfdir} \
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 builddir=$(basename $PWD)
127 gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
128 mkdir -p "$gcno_obj_dir"
129 find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
130 %endif
131
132 cat << EOF > run-unittest.sh
133 #!/bin/sh
134 setup() {
135         echo "setup start"
136         if [ -d "conf_example" ]; then
137                 rm -rf ./conf_example
138                 rm -rf ./tests
139         fi
140         ln -s /usr/bin/sys-settings/tests ./tests
141         ln -s /usr/bin/sys-settings/conf_example ./conf_example
142 }
143
144 test_main() {
145         echo "test_main start"
146         /usr/bin/sys-settings/sst-unit-test
147         /usr/bin/sys-settings/sst-unit-test-err-interface
148         /usr/bin/sys-settings/sst-unit-test-err-font
149 }
150
151 teardown() {
152         echo "teardown start"
153         rm -rf ./tests
154         rm -rf ./conf_example
155 }
156
157 main() {
158         setup
159         test_main
160         teardown
161 }
162
163 main "\$*"
164 EOF
165
166 mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
167 install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}/
168
169 %check
170 #bash tests/scripts/vconf_golden_master.sh
171 LD_LIBRARY_PATH=.:tests:libutil tests/sst-unit-test-err-interface
172 LD_LIBRARY_PATH=.:tests:libutil tests/sst-unit-test
173 LD_LIBRARY_PATH=.:tests:libutil tests/sst-unit-test-err-font
174 %if 0%{?gcov:1}
175 lcov -c --ignore-errors mismatch,graph,unused --no-external -b . -d . -o %{name}.info
176 genhtml %{name}.info -o out --legend --show-details
177 %endif
178
179 %post -p /sbin/ldconfig
180 %post util-lib -p /sbin/ldconfig
181
182 %postun -p /sbin/ldconfig
183 %postun util-lib -p /sbin/ldconfig
184
185 %files
186 %manifest %{name}.manifest
187 %{_libdir}/lib*settings.so.*
188 %license LICENSE.APLv2
189
190 %files util-lib
191 %manifest %{name}.manifest
192 %{_libdir}/lib*settings-util.so
193 %license LICENSE.APLv2
194
195 %files devel
196 %manifest %{name}.manifest
197 %{_libdir}/lib*settings.so
198 %{_libdir}/pkgconfig/*.pc
199 %{_includedir}/system/*.h
200
201 %files unittests
202 %manifest %{name}.manifest
203 %{sys_setting_test_dir}/*
204 %{_libdir}/libsys-settings-mock.so
205 %{_bindir}/tizen-unittests/%{name}/run-unittest.sh
206 %license LICENSE.APLv2
207
208 %if 0%{?gcov:1}
209 %files gcov
210 %{_datadir}/gcov/*
211 %endif