Fix lcov option
[platform/core/api/media-key.git] / packaging / capi-system-media-key.spec
1 Name:       capi-system-media-key
2 Summary:    A System Information library in SLP C API
3 Version:    0.2.7
4 Release:    6
5 Group:      System/API
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8 Source1001:     capi-system-media-key.manifest
9 BuildRequires:  cmake
10 BuildRequires:  pkgconfig(dlog)
11 BuildRequires:  pkgconfig(capi-base-common)
12 BuildRequires:  pkgconfig(ecore)
13 BuildRequires:  pkgconfig(ecore-input)
14 BuildRequires:  pkgconfig(evas)
15 BuildRequires:  pkgconfig(ecore-wl2)
16 BuildRequires:  pkgconfig(gmock)
17 BuildRequires:  pkgconfig(glib-2.0)
18
19 %if 0%{?gcov:1}
20 BuildRequires:  lcov
21 BuildRequires:  zip
22 %endif
23
24 %description
25 %{summary}.
26
27 %package devel
28 Summary:  A Media Key library in SLP C API (Development)
29 Group:    System/API
30 Requires: %{name} = %{version}
31
32 %description devel
33 %devel_desc
34
35 %package unittests
36 Summary:    %{name} unittests binary
37
38 %description unittests
39 unittests binary
40
41 %if 0%{?gcov:1}
42 %package gcov
43 Summary:  A media key library(gcov)
44 Group:    System/API
45
46 %description gcov
47 gcov objects of an media key library
48 %endif
49
50 %prep
51 %setup -q
52 cp %{SOURCE1001} .
53
54 %build
55 %if 0%{?gcov:1}
56 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
57 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
58 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
59 export LDFLAGS+=" -lgcov"
60 %endif
61
62 export CFLAGS+=" -DEFL_BETA_API_SUPPORT "
63 export CXXFLAGS+=" -DEFL_BETA_API_SUPPORT "
64 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
65 %cmake -DFULLVER=%{version} -DLIB_INSTALL_DIR=%{_libdir} \
66         -DMAJORVER=${MAJORVER} \
67         -DBIN_INSTALL_DIR:PATH=%{_bindir} \
68         .
69
70 make %{?jobs:-j%jobs}
71
72 %install
73 %make_install
74
75 %if 0%{?gcov:1}
76 builddir=$(basename $PWD)
77 gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
78 mkdir -p "$gcno_obj_dir"
79 find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
80 %endif
81
82 cat << EOF > run-unittest.sh
83 #!/bin/sh
84 setup() {
85     echo "setup start"
86 }
87
88 test_main() {
89     echo "test_main start"
90     /usr/bin/media-key-unittests
91 }
92
93 teardown() {
94     echo "teardown start"
95 }
96
97 main() {
98     setup
99     test_main
100     teardown
101 }
102
103 main "\$*"
104 EOF
105
106 mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
107 install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}/
108
109 %check
110 (cd tests/media-key_unittests && LD_LIBRARY_PATH=../../src ctest -V)
111 %if 0%{?gcov:1}
112 lcov -c --ignore-errors mismatch,graph,unused --no-external -q -d . -o media_key.info
113 genhtml media_key.info -o media_key.out
114 zip -r media_key.zip media_key.out
115 install -m 0644 media_key.zip %{buildroot}%{_datadir}/gcov/obj/
116 %endif
117
118 %post -p /sbin/ldconfig
119
120 %postun -p /sbin/ldconfig
121
122 %files
123 %manifest %{name}.manifest
124 %license LICENSE
125 %{_libdir}/libcapi-system-media-key.so.*
126
127 %files devel
128 %manifest %{name}.manifest
129 %{_includedir}/system/media_key.h
130 %{_libdir}/pkgconfig/*.pc
131 %{_libdir}/libcapi-system-media-key.so
132
133 %files unittests
134 %{_bindir}/media-key-unittests
135 %{_bindir}/tizen-unittests/%{name}/run-unittest.sh
136
137 %if 0%{?gcov:1}
138 %files gcov
139 %{_datadir}/gcov/obj/*
140 %endif