Apply gcov automation
[platform/core/api/wifi-aware.git] / packaging / capi-network-wifi-aware.spec
1 Name:       capi-network-wifi-aware
2 Summary:    An Wi-Fi Aware libraries in Native API
3 Version:    0.2.0
4 Release:    1
5 Group:      Network & Connectivity/API
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8 Source1:        %{name}.manifest
9
10 BuildRequires:  cmake
11 BuildRequires:  pkgconfig(gobject-2.0)
12 BuildRequires:  pkgconfig(glib-2.0)
13 BuildRequires:  pkgconfig(gio-2.0)
14 BuildRequires:  pkgconfig(dlog)
15 BuildRequires:  pkgconfig(capi-base-common)
16 BuildRequires:  pkgconfig(capi-system-info)
17 BuildRequires:  pkgconfig(cynara-client)
18 BuildRequires:  pkgconfig(gmock)
19 %if 0%{?gcov:1}
20 BuildRequires:  gtest-devel
21 BuildRequires:  lcov
22 %endif
23
24 Requires(post): /sbin/ldconfig
25 Requires(postun): /sbin/ldconfig
26
27 %description
28 Wi-Fi Aware library in Tizen C API
29
30 %package devel
31 Summary:  Wi-Fi Aware in Native API (Development)
32 Group:      Development/Libraries
33 Requires:   %{name} = %{version}-%{release}
34 Requires: capi-base-common-devel
35
36 %description devel
37 An Wi-Fi Aware library in Tizen CAPI (Shared Library) (Development)
38
39 %package test
40 Summary:    Wi-Fi Aware - Wi-Fi Aware test binaries
41
42 %description test
43 Test Application for Wi-Fi Aware
44
45 %package cts-verifier
46 summary:        cts-verifier command app
47
48 %description cts-verifier
49 cts-verifier command app
50
51 %if 0%{?gcov:1}
52 %package gcov
53 Summary:        Coverage Data of %{name}
54
55 %description gcov
56 The %{name}-gcov package contains gcov objects
57 %endif
58
59 %package unittests
60 Summary:    %{name} unittests binary
61
62 %description unittests
63 unittests binary
64
65 %prep
66 %setup -q
67 chmod 644 %{SOURCE0}
68 cp %{SOURCE1} ./%{name}.manifest
69
70 %ifarch %{arm}
71 export ARCH=arm
72 %else
73 export ARCH=i586
74 %endif
75
76 %build
77 %if 0%{?gcov:1}
78 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
79 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
80 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
81 %endif
82
83 %if 0%{?sec_build_binary_debug_enable}
84 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
85 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
86 %endif
87
88
89 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
90 %cmake . \
91         -DCMAKE_BUILD_TYPE=%{?build_type} \
92         -DCMAKE_VERBOSE_MAKEFILE=ON \
93         -DLIB_DIR:PATH=%{_libdir} \
94         -DBIN_DIR:PATH=%{_bindir} \
95         -DINCLUDE_DIR:PATH=%{_includedir} \
96         -DLOCAL_STATE_DIR:PATH=%{_localstatedir} \
97         -DDATA_ROOT_DIR:PATH=%{_datadir} \
98         -DFULLVER=%{version} \
99         -DMAJORVER=${MAJORVER}
100 make %{?jobs:-j%jobs}
101
102 %install
103 rm -rf %{buildroot}
104 %make_install
105
106 %if 0%{?gcov:1}
107 builddir=$(basename $PWD)
108 gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
109 mkdir -p "$gcno_obj_dir"
110 find . -name '*.gcno' ! -path '*/cts-verifier/*' ! -path '*/nan-test/*' -exec cp --parents '{}' "$gcno_obj_dir" ';'
111 %endif
112
113 cat << EOF > run-unittest.sh
114 #!/bin/sh
115 setup() {
116     echo "setup start"
117 }
118
119 test_main() {
120     echo "test_main start"
121     /usr/bin/wifi-aware-unittest
122 }
123
124 teardown() {
125     echo "teardown start"
126 }
127
128 main() {
129     setup
130     test_main
131     teardown
132 }
133
134 main "\$*"
135 EOF
136
137 mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
138 install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}/
139
140
141 %check
142 export LD_LIBRARY_PATH=./src/:./tests/unittest/mocks/
143 LD_PRELOAD=./tests/unittest/mocks/libwifi-aware-mock.so ./tests/unittest/wifi-aware-unittest
144 %if 0%{?gcov:1}
145 lcov -c --ignore-errors graph --no-external -b . -d . -o %{name}.info
146 genhtml %{name}.info -o out --legend --show-details
147 %endif
148
149 %post -p /sbin/ldconfig
150
151 %postun -p /sbin/ldconfig
152
153
154 %files
155 %manifest %{name}.manifest
156 %license LICENSE
157 %defattr(-,root,root,-)
158 %{_libdir}/*.so.*
159
160 %files devel
161 %defattr(-,root,root,-)
162 %{_libdir}/pkgconfig/*.pc
163 %{_includedir}/network/*.h
164 %{_libdir}/*.so
165
166 %files test
167 %manifest %{name}.manifest
168 %attr(755,root,root) %{_bindir}/wifi-aware-test
169 %attr(755,root,root) %{_bindir}/wifi-aware-publish-test
170 %attr(755,root,root) %{_bindir}/wifi-aware-subscribe-test
171 %attr(755,root,root) %{_bindir}/wifi-aware-publish-matching-filter-test
172 %attr(755,root,root) %{_bindir}/wifi-aware-subscribe-matching-filter-test
173
174 %files cts-verifier
175 %attr(755,root,root) %{_bindir}/cts-verifier
176
177 %if 0%{?gcov:1}
178 %files gcov
179 %{_datadir}/gcov/obj/*
180 %endif
181
182 %files unittests
183 %{_bindir}/wifi-aware-unittest
184 %{_bindir}/tizen-unittests/%{name}/run-unittest.sh