2495414adabd583afff6af8ee8c8fba862737dc9
[platform/core/uifw/mmi-framework.git] / packaging / mmi.spec
1 Name:           mmi
2 Version:        2.0.1
3 Release:        0
4 Summary:        Multi-modal Interaction Framework
5 License:        MIT
6 URL:            http://www.tizen.org
7 Source:         %{name}-%{version}.tar.xz
8 Source1004:     %{name}.manifest
9
10 BuildRequires:  meson
11 BuildRequires:  tidl
12 BuildRequires:  pkgconfig(libtzplatform-config)
13 BuildRequires:  pkgconfig(bundle)
14 BuildRequires:  pkgconfig(gio-2.0)
15 BuildRequires:  pkgconfig(glib-2.0)
16 BuildRequires:  pkgconfig(dlog)
17 BuildRequires:  pkgconfig(rpc-port)
18 BuildRequires:  pkgconfig(ecore)
19 BuildRequires:  pkgconfig(vconf)
20 BuildRequires:  pkgconfig(libxml-2.0)
21
22 #Build dependencies for tests
23 BuildRequires:  pkgconfig(gmock)
24
25 %if 0%{?gcov:1}
26 BuildRequires:  lcov
27 BuildRequires:  zip
28 %endif
29
30 %description
31 MMI(Multi-modal Interaction) Framework
32
33 %package plugins
34 Summary:        Plugins for MMI Framework
35 Group:          System/Libraries
36 %description plugins
37 Plugins for MMI Framework
38
39 %package cli
40 Summary:        CLI for MMI Framework
41 Group:          System/Libraries
42 %description cli
43 CLI for MMI Framework
44
45 %package devel
46 Summary:        Development package for MMI Framework
47 Group:          Development/Libraries
48 Requires:       %{name} = %{version}-%{release}
49 Requires:       pkgconfig(rpc-port)
50 %description devel
51 Development package for MMI Framework
52
53 %if 0%{?gcov:1}
54 %package gcov
55 Summary:        MMI Framework (gcov)
56 %description gcov
57 MMI Framework gcov objects
58 %endif
59
60 %package tests
61 Summary:        Testcases for MMI Framework
62 Group:          System/Libraries
63 %description tests
64 Testcases for testing MMI Framework APIs
65
66 %prep
67 %setup -q
68 cp %{SOURCE1004} .
69
70 #generate mmi-proxy using TIDL Compiler
71 tidlc -p -l C -i tidl/mmi.tidl -o mmi_proxy
72 mv mmi_proxy.* src/mmi
73 tidlc -s -l C -i tidl/mmi.tidl -o mmi_stub
74 mv mmi_stub.* src/mmi-manager
75
76 %build
77 %if 0%{?gcov:1}
78 CFLAGS+=" -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV"
79 CXXFLAGS+=" -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV"
80 LDFLAGS+=" -lgcov"
81 %endif
82
83 meson setup --prefix=/usr \
84         --bindir %{_bindir} \
85         --libdir %{_libdir} \
86         --datadir %{_datadir} \
87         builddir
88 meson configure -Dplatform_option=tizen builddir
89 ninja -C builddir all
90
91 %install
92 DESTDIR=%{buildroot} ninja -C builddir install
93
94 %if 0%{?gcov:1}
95 builddir=$(basename $PWD)
96 gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
97 mkdir -p "$gcno_obj_dir"
98 find ./builddir/tests/ -name '*.gcno' -exec rm {} \;
99 find ./builddir/plugins/ -name '*.gcno' -exec rm {} \;
100 find ./builddir/src/mmi-cli/ -name '*.gcno' -exec rm {} \;
101 find . -name '*proxy*.gcno' -exec rm {} \;
102 find . -name '*_stub*.gcno' -exec rm {} \;
103 find . -name '*tidl*.gcno' -exec rm {} \;
104 find . -name '*-port-instance*.gcno' -exec rm {} \;
105 find . -name 'mmi-data-gateway*.gcno' -exec rm {} \;
106 find . -name 'mmi-node-controller*.gcno' -exec rm {} \;
107 find . -name 'mmi-signal*.gcno' -exec rm {} \;
108 find . -name 'mmi-workflow-script*.gcno' -exec rm {} \;
109 find . -name 'mmi-plugin*.gcno' -exec rm {} \;
110 find . -name 'mmi-workflow-output-event*.gcno' -exec rm {} \;
111 find ./builddir/meson-private/ -name '*.gcno' -exec rm {} \;
112 find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
113 %endif
114
115 %check
116 %if "%{_mmi_test_enable}" == "true"
117 ninja -C builddir test
118 %if 0%{?gcov:1}
119 lcov -c --ignore-errors graph --no-external -q -d . -o gcov.info
120 genhtml gcov.info
121 %endif
122 %endif
123
124 %post
125 /sbin/ldconfig
126 echo %{_bindir}/mmi-manager
127 chsmack -e "System" %{_bindir}/mmi-manager
128
129 %postun -p /sbin/ldconfig
130
131 %files
132 %manifest %{name}.manifest
133 %defattr(-,root,root,-)
134 %license COPYING
135 %{_libdir}/*.so*
136 %{_bindir}/mmi-manager
137 %{_datadir}/packages/mmi-manager.xml
138
139 %files plugins
140 %manifest %{name}.manifest
141 %defattr(-,root,root,-)
142 %license COPYING
143 %{_datadir}/mmi/plugins/*.so*
144 %{_datadir}/mmi/scripts/*.mws
145
146 %files cli
147 %manifest %{name}.manifest
148 %defattr(-,root,root,-)
149 %license COPYING
150 %{_bindir}/mmi-cli
151 %{_bindir}/mmi-cli-node-tester
152 #%{TZ_SYS_RO_SHARE}/mmi/configs/mmi-config.xml
153
154 %files devel
155 %manifest %{name}.manifest
156 %defattr(-,root,root,-)
157 %license COPYING
158 %{_includedir}/mmi*.h
159 %{_libdir}/pkgconfig/*
160
161 %if 0%{?gcov:1}
162 %files gcov
163 %{_datadir}/gcov/obj/*
164 %endif
165
166 %files tests
167 %defattr(-,root,root,-)
168 %license COPYING
169 %{_bindir}/mmi-tests
170 %{_bindir}/mmi-manager-tests