Release version 0.8.16
[platform/core/appfw/shortcut.git] / packaging / libshortcut.spec
1 Name: libshortcut
2 Summary: Shortcut add feature supporting library
3 Version: 0.8.16
4 Release: 0
5 Group: Applications/Core Applications
6 License: Apache-2.0
7 Source0: %{name}-%{version}.tar.gz
8 Source1001: %{name}.manifest
9
10 Requires(post): /sbin/ldconfig
11 Requires(postun): /sbin/ldconfig
12
13 BuildRequires: cmake, gettext-tools, coreutils
14 BuildRequires: pkgconfig(glib-2.0)
15 BuildRequires: pkgconfig(dlog)
16 BuildRequires: pkgconfig(db-util)
17 BuildRequires: pkgconfig(sqlite3)
18 BuildRequires: pkgconfig(libxml-2.0)
19 BuildRequires: pkgconfig(vconf)
20 BuildRequires: pkgconfig(capi-base-common)
21 BuildRequires: pkgconfig(aul)
22 BuildRequires: pkgconfig(libtzplatform-config)
23 BuildRequires: pkgconfig(capi-system-info)
24 BuildRequires: pkgconfig(gmock)
25
26 %if 0%{?gcov:1}
27 BuildRequires:  lcov
28 BuildRequires:  zip
29 %endif
30
31 %description
32 [Shortcut] AddToHome feature supporting library for menu/home screen developers.
33
34 %package devel
35 Summary:    AddToHome feature supporting library development files
36 Group:      Development/Libraries
37 Requires:   %{name} = %{version}-%{release}
38
39 %description devel
40 [Shortcut] AddToHome feature supporting library for menu/home screen developers(dev).
41
42 #################################################
43 # shortcut_unittests
44 #################################################
45 %package unittests
46 Summary:    GTest for shortcut API
47 Group:      Development/Libraries
48 Requires:   %{name}
49
50 %description unittests
51 GTest for shortcut API
52
53 #################################################
54 # gcov
55 #################################################
56 %if 0%{?gcov:1}
57 %package gcov
58 Summary:  Shortcut API(gcov)
59 Group:    System/API
60
61 %description gcov
62 gcov objects of an Shortcut library
63 %endif
64
65 %prep
66 %setup -q
67 cp %{SOURCE1001} .
68
69 %build
70 %if 0%{?gcov:1}
71 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
72 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
73 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
74 export LDFLAGS+=" -lgcov"
75 %endif
76
77 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
78 %cmake . \
79         -DSYSCONFDIR=%{_sysconfdir} \
80         -DDB_PATH=%{TZ_SYS_DB}/.shortcut_service.db \
81         -DMAJORVER=${MAJORVER} \
82         -DFULLVER=%{version}
83 make %{?jobs:-j%jobs}
84
85 %check
86 ctest -V
87 %if 0%{?gcov:1}
88 lcov -c --ignore-errors graph --no-external -q -d . -o shortcut.info
89 genhtml shortcut.info -o shortcut.out
90 zip -r shortcut.zip shortcut.out
91 install -m 0644 shortcut.zip %{buildroot}%{_datadir}/gcov/shortcut.zip
92 %endif
93
94 %install
95 rm -rf %{buildroot}
96
97 %make_install
98 mkdir -p %{buildroot}%{TZ_SYS_DB}
99
100 %if 0%{?gcov:1}
101 builddir=$(basename $PWD)
102 gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
103 mkdir -p "$gcno_obj_dir"
104 find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
105 %endif
106
107 cat << EOF > run-unittest.sh
108 #!/bin/sh
109 setup() {
110     echo "setup start"
111 }
112
113 test_main() {
114     echo "test_main start"
115     /usr/bin/shortcut_unittests
116 }
117
118 teardown() {
119     echo "teardown start"
120 }
121
122 main() {
123     setup
124     test_main
125     teardown
126 }
127
128 main "\$*"
129 EOF
130
131 mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
132 install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}/
133
134 %post
135 /sbin/ldconfig
136
137 if [ ! -d %{TZ_SYS_DB} ]
138 then
139         mkdir %{TZ_SYS_DB}
140 fi
141
142 %postun -n %{name} -p /sbin/ldconfig
143
144 %files -n libshortcut
145 %license LICENSE
146 %manifest %{name}.manifest
147 %defattr(-,root,root,-)
148 %{_libdir}/libshortcut.so.*
149 %{_sysconfdir}/package-manager/parserlib/*
150
151 %files devel
152 %manifest %{name}.manifest
153 %defattr(-,root,root,-)
154 %{_includedir}/shortcut/shortcut.h
155 %{_includedir}/shortcut/shortcut_private.h
156 %{_includedir}/shortcut/shortcut_manager.h
157 %{_includedir}/shortcut/shortcut_db.h
158 %{_includedir}/shortcut/shortcut_internal.h
159 %{_includedir}/shortcut/shortcut_error.h
160 %{_libdir}/pkgconfig/shortcut.pc
161 %{_libdir}/libshortcut.so
162
163 #################################################
164 # shortcut_unittests
165 #################################################
166 %files unittests
167 %{_bindir}/shortcut_unittests
168 %{_bindir}/tizen-unittests/%{name}/run-unittest.sh
169
170 #################################################
171 # gcov
172 #################################################
173 %if 0%{?gcov:1}
174 %files gcov
175 %{_datadir}/gcov/*
176 %endif