Use Cmake by default
[platform/core/uifw/dali-toolkit.git] / packaging / dali-toolkit.spec
1 Name:       dali-toolkit
2 Summary:    Dali 3D engine Toolkit
3 Version:    1.4.39
4 Release:    1
5 Group:      System/Libraries
6 License:    Apache-2.0 and BSD-3-Clause and MIT
7 URL:        https://review.tizen.org/git/?p=platform/core/uifw/dali-toolkit.git;a=summary
8 Source0:    %{name}-%{version}.tar.gz
9
10 Requires(post): /sbin/ldconfig
11 Requires(postun): /sbin/ldconfig
12 BuildRequires:  cmake
13 BuildRequires:  pkgconfig
14 BuildRequires:  pkgconfig(dlog)
15 BuildRequires:  pkgconfig(dali-core)
16 BuildRequires:  pkgconfig(dali-adaptor)
17 BuildRequires:  gettext
18 BuildRequires:  pkgconfig(libtzplatform-config)
19
20 #############################
21 # profile setup
22 #############################
23
24 %description
25 Dali 3D engine Toolkit - a set of controls that provide
26 user interface functionality.
27
28 ##############################
29 # resource
30 ##############################
31 %package resources_360x360
32 Summary:    default resource files for 360x360
33 Requires:   %{name} = %{version}-%{release}
34 Conflicts:  %{name}-resources_480x800
35 Conflicts:  %{name}-resources_720x1280
36 Conflicts:  %{name}-resources_1920x1080
37 %description resources_360x360
38 dali-toolkit default resource files for 360x360
39 Contain po / sounds / common images / style / style images
40
41 %package resources_480x800
42 Summary:    default resource files for 480x800
43 Requires:   %{name} = %{version}-%{release}
44 Conflicts:  %{name}-resources_360x360
45 Conflicts:  %{name}-resources_720x1280
46 Conflicts:  %{name}-resources_1920x1080
47 %description resources_480x800
48 dali-toolkit default resource files for 480x800
49 Contain po / sounds / common images / style / style images
50
51 %package resources_720x1280
52 Summary:    default resource files for 720x1280
53 Requires:   %{name} = %{version}-%{release}
54 Conflicts:  %{name}-resources_360x360
55 Conflicts:  %{name}-resources_480x800
56 Conflicts:  %{name}-resources_1920x1080
57 %description resources_720x1280
58 dali-toolkit default resource files for 720x1280
59 Contain po / sounds / common images / style / style images
60
61 %package resources_1920x1080
62 Summary:    default resource files for 1920x1080
63 Requires:   %{name} = %{version}-%{release}
64 Conflicts:  %{name}-resources_360x360
65 Conflicts:  %{name}-resources_480x800
66 Conflicts:  %{name}-resources_720x1280
67 %description resources_1920x1080
68 dali-toolkit default resource files for 1920x1080
69 Contain po / sounds / common images / style / style images
70
71 ##############################
72 # devel
73 ##############################
74 %package devel
75 Summary:    Application development package for Dali 3D engine toolkit
76 Group:      Development/Building
77 Requires:   %{name} = %{version}-%{release}
78
79 %description devel
80 Application development package for Dali 3D engine toolkit - headers and package config
81
82 ##############################
83 # Preparation
84 ##############################
85 %prep
86 %setup -q
87
88 %define dali_data_rw_dir            %TZ_SYS_SHARE/dali/
89 %define dali_data_ro_dir            %TZ_SYS_RO_SHARE/dali/
90
91 %define dali_toolkit_image_files    %{dali_data_ro_dir}/toolkit/images/
92 %define dali_toolkit_sound_files    %{dali_data_ro_dir}/toolkit/sounds/
93 %define dali_toolkit_style_files    %{dali_data_ro_dir}/toolkit/styles/
94 %define dev_include_path %{_includedir}
95
96 # PO
97 {
98 cd %{_builddir}/dali-toolkit-%{version}/dali-toolkit/po
99 for language in *.po
100 do
101   language=${language%.po}
102   msgfmt -o ${language}.mo ${language}.po
103 done
104 } &> /dev/null
105
106 ##############################
107 # Build
108 ##############################
109 %build
110 PREFIX="/usr"
111 CXXFLAGS+=" -Wall -g -Os -fPIC -fvisibility-inlines-hidden -fdata-sections -ffunction-sections "
112 LDFLAGS+=" -Wl,--rpath=$PREFIX/lib -Wl,--as-needed -Wl,--gc-sections -Wl,-Bsymbolic-functions "
113
114 %if 0%{?enable_coverage}
115 CXXFLAGS+=" --coverage "
116 LDFLAGS+=" --coverage "
117 %endif
118
119 libtoolize --force
120 cd %{_builddir}/dali-toolkit-%{version}/build/tizen
121
122 DALI_DATA_RW_DIR="%{dali_data_rw_dir}" ; export DALI_DATA_RW_DIR
123 DALI_DATA_RO_DIR="%{dali_data_ro_dir}" ; export DALI_DATA_RO_DIR
124
125 cmake \
126 %if 0%{?enable_debug}
127       -DCMAKE_BUILD_TYPE=Debug \
128 %endif
129 %if 0%{?enable_trace}
130       -DENABLE_TRACE=ON \
131 %endif
132       -DCMAKE_INSTALL_PREFIX=%{_prefix} \
133       -DCMAKE_INSTALL_LIBDIR=%{_libdir} \
134       -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \
135       -DENABLE_I18N=ON
136
137 make %{?jobs:-j%jobs}
138
139 ##############################
140 # Installation
141 ##############################
142 %install
143 rm -rf %{buildroot}
144 cd build/tizen
145
146 pushd %{_builddir}/%{name}-%{version}/build/tizen
147 %make_install
148
149 # PO
150 {
151 cd %{_builddir}/dali-toolkit-%{version}/dali-toolkit/po
152 for language in *.mo
153 do
154   language=${language%.mo}
155   mkdir -p %{buildroot}/%{_datadir}/locale/${language}/LC_MESSAGES/
156   cp ${language}.mo %{buildroot}/%{_datadir}/locale/${language}/LC_MESSAGES/dali-toolkit.mo
157 done
158 } &> /dev/null
159 popd
160
161 # Create links to ensure linking with cxx11 library is preserved
162 pushd  %{buildroot}%{_libdir}
163 ln -sf libdali-toolkit.so libdali-toolkit-cxx11.so
164 ln -sf libdali-toolkit.so libdali-toolkit-cxx11.so.0
165 ln -sf libdali-toolkit.so libdali-toolkit-cxx11.so.0.0.0
166 popd
167
168 # Remove default style and style images which are for Linux build
169 rm -rf %{buildroot}%{dali_toolkit_style_files}/*
170
171 # Make folder to contain style and style images
172 # After making folder, copy local style and style images to new folder
173 pushd %{_builddir}/%{name}-%{version}
174 mkdir -p %{buildroot}%{dali_toolkit_style_files}/360x360
175 cp -r dali-toolkit/styles/360x360/* %{buildroot}%{dali_toolkit_style_files}/360x360
176 mkdir -p %{buildroot}%{dali_toolkit_style_files}/480x800
177 cp -r dali-toolkit/styles/480x800/* %{buildroot}%{dali_toolkit_style_files}/480x800
178 mkdir -p %{buildroot}%{dali_toolkit_style_files}/720x1280
179 cp -r dali-toolkit/styles/720x1280/* %{buildroot}%{dali_toolkit_style_files}/720x1280
180 mkdir -p %{buildroot}%{dali_toolkit_style_files}/1920x1080
181 cp -r dali-toolkit/styles/1920x1080/* %{buildroot}%{dali_toolkit_style_files}/1920x1080
182
183 # Copy default feedback theme
184 cp dali-toolkit/styles/default-feedback-theme.json %{buildroot}%{dali_toolkit_style_files}
185 popd
186
187 ##############################
188 # Pre Install
189 ##############################
190
191 %pre resources_360x360
192 case "$1" in
193   2)
194     pushd %{dali_toolkit_style_files}
195     rm -rf ./*
196     popd
197   ;;
198 esac
199
200 %pre resources_480x800
201 case "$1" in
202   2)
203     pushd %{dali_toolkit_style_files}
204     rm -rf ./*
205     popd
206   ;;
207 esac
208
209 %pre resources_720x1280
210 case "$1" in
211   2)
212     pushd %{dali_toolkit_style_files}
213     rm -rf ./*
214     popd
215   ;;
216 esac
217
218 %pre resources_1920x1080
219 case "$1" in
220   2)
221     pushd %{dali_toolkit_style_files}
222     rm -rf ./*
223     popd
224   ;;
225 esac
226
227 ##############################
228 # Post Install
229 ##############################
230 %post
231 /sbin/ldconfig
232 exit 0
233
234 %post resources_360x360
235 pushd %{dali_toolkit_style_files}/360x360
236 for FILE in *; do mv ./"${FILE}" ../"${FILE}"; done
237 popd
238
239 %post resources_480x800
240 pushd %{dali_toolkit_style_files}/480x800
241 for FILE in *; do mv ./"${FILE}" ../"${FILE}"; done
242 popd
243
244 %post resources_720x1280
245 pushd %{dali_toolkit_style_files}/720x1280
246 for FILE in *; do mv ./"${FILE}" ../"${FILE}"; done
247 popd
248
249 %post resources_1920x1080
250 pushd %{dali_toolkit_style_files}/1920x1080
251 for FILE in *; do mv ./"${FILE}" ../"${FILE}"; done
252 popd
253
254 ##############################
255 # Pre Uninstall
256 ##############################
257
258 %preun resources_360x360
259 case "$1" in
260   0)
261     %preun resources_360x360
262     pushd %{dali_toolkit_style_files}
263     mv images ./360x360
264     mv dali-toolkit-default-theme.json ./360x360
265     popd
266   ;;
267 esac
268
269 %preun resources_480x800
270 case "$1" in
271   0)
272     %preun resources_480x800
273     pushd %{dali_toolkit_style_files}
274     mv images ./480x800
275     mv dali-toolkit-default-theme.json ./480x800
276     popd
277   ;;
278 esac
279
280 %preun resources_720x1280
281 case "$1" in
282   0)
283     %preun resources_720x1280
284     pushd %{dali_toolkit_style_files}
285     mv images ./720x1280
286     mv dali-toolkit-default-theme.json ./720x1280
287     popd
288   ;;
289 esac
290
291 %preun resources_1920x1080
292 case "$1" in
293   0)
294     %preun resources_1920x1080
295     pushd %{dali_toolkit_style_files}
296     mv images ./1920x1080
297     mv dali-toolkit-default-theme.json ./1920x1080
298     popd
299   ;;
300 esac
301
302 ##############################
303 # Post Uninstall
304 ##############################
305 %postun
306 /sbin/ldconfig
307 exit 0
308
309 %postun resources_360x360
310 case "$1" in
311   0)
312     pushd %{dali_toolkit_style_files}
313     rm -rf *
314     popd
315   ;;
316 esac
317
318 %postun resources_480x800
319 case "$1" in
320   0)
321     pushd %{dali_toolkit_style_files}
322     rm -rf *
323     popd
324   ;;
325 esac
326
327 %postun resources_720x1280
328 case "$1" in
329   0)
330     pushd %{dali_toolkit_style_files}
331     rm -rf *
332     popd
333   ;;
334 esac
335
336 %postun resources_1920x1080
337 case "$1" in
338   0)
339     pushd %{dali_toolkit_style_files}
340     rm -rf *
341     popd
342   ;;
343 esac
344
345 ##############################
346 # Files in Binary Packages
347 ##############################
348 %files
349 %if 0%{?enable_dali_smack_rules}
350 %manifest dali-toolkit.manifest-smack
351 %else
352 %manifest dali-toolkit.manifest
353 %endif
354 %defattr(-,root,root,-)
355 %{_libdir}/libdali-toolkit-cxx11.so*
356 %{_libdir}/libdali-toolkit.so*
357 %license LICENSE
358
359 %files devel
360 %defattr(-,root,root,-)
361 %{dev_include_path}/dali-toolkit/*
362 %{_libdir}/pkgconfig/dali-toolkit.pc
363
364 %files resources_360x360
365 %manifest dali-toolkit-resources.manifest
366 %defattr(-,root,root,-)
367 %{dali_toolkit_image_files}/*
368 %{dali_toolkit_sound_files}/*
369 %{dali_toolkit_style_files}/360x360/*
370 %{dali_toolkit_style_files}/default-feedback-theme.json
371 %{_datadir}/locale/*/LC_MESSAGES/*
372
373 %files resources_480x800
374 %manifest dali-toolkit-resources.manifest
375 %defattr(-,root,root,-)
376 %{dali_toolkit_image_files}/*
377 %{dali_toolkit_sound_files}/*
378 %{dali_toolkit_style_files}/480x800/*
379 %{dali_toolkit_style_files}/default-feedback-theme.json
380 %{_datadir}/locale/*/LC_MESSAGES/*
381
382 %files resources_720x1280
383 %manifest dali-toolkit-resources.manifest
384 %defattr(-,root,root,-)
385 %{dali_toolkit_image_files}/*
386 %{dali_toolkit_sound_files}/*
387 %{dali_toolkit_style_files}/720x1280/*
388 %{dali_toolkit_style_files}/default-feedback-theme.json
389 %{_datadir}/locale/*/LC_MESSAGES/*
390
391 %files resources_1920x1080
392 %manifest dali-toolkit-resources.manifest
393 %defattr(-,root,root,-)
394 %{dali_toolkit_image_files}/*
395 %{dali_toolkit_sound_files}/*
396 %{dali_toolkit_style_files}/1920x1080/*
397 %{dali_toolkit_style_files}/default-feedback-theme.json
398 %{_datadir}/locale/*/LC_MESSAGES/*