summaryrefslogtreecommitdiff
path: root/packaging/minicontrol.spec
blob: c965ff3ed81112226b2fff2a61d131473bad82a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
Name:       minicontrol
Summary:    Library packaes for minicontrol
Version:    0.1.17
Release:    1
Group:      Application Framework/Other
License:    Apache-2.0
Source0:    %{name}-%{version}.tar.gz
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(elementary)
BuildRequires: pkgconfig(evas)
BuildRequires: pkgconfig(ecore-evas)
BuildRequires: pkgconfig(dlog)
BuildRequires: pkgconfig(bundle)
BuildRequires: pkgconfig(capi-system-info)
BuildRequires: pkgconfig(gmock)
BuildRequires: cmake
Requires(post): /sbin/ldconfig
requires(postun): /sbin/ldconfig

%if 0%{?gcov:1}
BuildRequires: lcov
BuildRequires: zip
%endif

%description
Minicontrol is a small control panel on notification panel or lock screen. This package supports to develop minicontrols.

%prep
%setup -q

%package devel
Summary:    Minicontrol library (devel)
Group:      Development/Libraries
Requires:   %{name} = %{version}

%description devel
Minicontrol library (devel).

%package unittests
Summary:    %{name} unittests binary

%description unittests
unittests binary

%if 0%{?gcov:1}
%package gcov
Summary:  Minicontrol Library(gcov)
Group:    Application Framework/Other

%description gcov
gcov objects of Minicontrol Library
%endif

%build
%if 0%{?gcov:1}
export CFLAGS+=" -fprofile-arcs -ftest-coverage"
export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
export FFLAGS+=" -fprofile-arcs -ftest-coverage"
export LDFLAGS+=" -lgcov"
%endif

export LDFLAGS+=" -Wl,--rpath=%{_prefix}/lib -Wl,--as-needed"
LDFLAGS="$LDFLAGS"

MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
%if %{with wayland}
%cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DHAVE_WAYLAND=On -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DBIN_INSTALL_DIR:PATH=%{_bindir}
%else
%cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DHAVE_X11=On -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DBIN_INSTALL_DIR:PATH=%{_bindir}
%endif
make %{?jobs:-j%jobs}

%install
%make_install

%if 0%{?gcov:1}
builddir=$(basename $PWD)
gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
mkdir -p "$gcno_obj_dir"
find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
%endif

cat << EOF > run-unittest.sh
#!/bin/sh
setup() {
    echo "setup start"
}

test_main() {
    echo "test_main start"
    /usr/bin/minicontrol-unittest
}

teardown() {
    echo "teardown start"
}

main() {
    setup
    test_main
    teardown
}

main "\$*"
EOF

mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}/

%check
(cd unittests && LD_LIBRARY_PATH=../ ctest -V)
%if 0%{?gcov:1}
lcov -c --ignore-errors mismatch,graph,unused --no-external -q -d . -o minicontrol.info
genhtml minicontrol.info -o minicontrol.out
zip -r minicontrol.zip minicontrol.out
install -m 0644 minicontrol.zip %{buildroot}%{_datadir}/gcov/obj/
%endif

%post
/sbin/ldconfig

%postun -p /sbin/ldconfig

%files
%manifest minicontrol.manifest
%defattr(-,root,root,-)
%{_libdir}/libminicontrol-provider.so.*
%{_libdir}/libminicontrol-viewer.so.*
%{_libdir}/libminicontrol-monitor.so.*
%license LICENSE

%files devel
%defattr(-,root,root,-)
%{_includedir}/%{name}/*.h
%{_libdir}/pkgconfig/minicontrol-provider.pc
%{_libdir}/pkgconfig/minicontrol-monitor.pc
%{_libdir}/pkgconfig/minicontrol-viewer.pc
%{_libdir}/libminicontrol-provider.so
%{_libdir}/libminicontrol-viewer.so
%{_libdir}/libminicontrol-monitor.so

%files unittests
%{_bindir}/minicontrol-unittest
%{_bindir}/tizen-unittests/%{name}/run-unittest.sh

%if 0%{?gcov:1}
%files gcov
%{_datadir}/gcov/obj/*
%endif