1818b43611729a8f4e3a758cd49e5ff594e1bb8c
[platform/core/uifw/dali-toolkit.git] / packaging / dali-toolkit.spec
1 Name:       dali2-toolkit
2 Summary:    Dali 3D engine Toolkit
3 Version:    2.1.29
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(dali2-core)
16 BuildRequires:  pkgconfig(dali2-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 Conflicts:  %{name}-resources_1920x1080_rpi
38 %description resources_360x360
39 dali-toolkit default resource files for 360x360
40 Contain po / sounds / common images / style / style images
41
42 %package resources_480x800
43 Summary:    default resource files for 480x800
44 Requires:   %{name} = %{version}-%{release}
45 Conflicts:  %{name}-resources_360x360
46 Conflicts:  %{name}-resources_720x1280
47 Conflicts:  %{name}-resources_1920x1080
48 Conflicts:  %{name}-resources_1920x1080_rpi
49 %description resources_480x800
50 dali-toolkit default resource files for 480x800
51 Contain po / sounds / common images / style / style images
52
53 %package resources_720x1280
54 Summary:    default resource files for 720x1280
55 Requires:   %{name} = %{version}-%{release}
56 Conflicts:  %{name}-resources_360x360
57 Conflicts:  %{name}-resources_480x800
58 Conflicts:  %{name}-resources_1920x1080
59 Conflicts:  %{name}-resources_1920x1080_rpi
60 %description resources_720x1280
61 dali-toolkit default resource files for 720x1280
62 Contain po / sounds / common images / style / style images
63
64 %package resources_1920x1080
65 Summary:    default resource files for 1920x1080
66 Requires:   %{name} = %{version}-%{release}
67 Conflicts:  %{name}-resources_360x360
68 Conflicts:  %{name}-resources_480x800
69 Conflicts:  %{name}-resources_720x1280
70 Conflicts:  %{name}-resources_1920x1080_rpi
71 %description resources_1920x1080
72 dali-toolkit default resource files for 1920x1080
73 Contain po / sounds / common images / style / style images
74
75 %package resources_1920x1080_rpi
76 Summary:    default resource files for 1920x1080 on Raspberry Pi 4
77 Requires:   %{name} = %{version}-%{release}
78 Conflicts:  %{name}-resources_360x360
79 Conflicts:  %{name}-resources_480x800
80 Conflicts:  %{name}-resources_720x1280
81 Conflicts:  %{name}-resources_1920x1080
82 %description resources_1920x1080_rpi
83 dali-toolkit default resource files for 1920x1080 on Raspberry Pi 4
84 Contain po / sounds / common images / style / style images
85
86
87 ##############################
88 # devel
89 ##############################
90 %package devel
91 Summary:    Application development package for Dali 3D engine toolkit
92 Group:      Development/Building
93 Requires:   %{name} = %{version}-%{release}
94
95 %description devel
96 Application development package for Dali 3D engine toolkit - headers and package config
97
98 ##############################
99 # dali-scene-loader
100 ##############################
101 %define dali2_scene_loader dali2-scene-loader
102 %package -n %{dali2_scene_loader}
103 Summary:    DLI scene loading library
104 Group:      System/Libraries
105 License:    Apache-2.0
106 Requires:   dali2-toolkit
107
108 %description -n %{dali2_scene_loader}
109 Provides functionality for loading and displaying DLI format scenes. See README.md for more details.
110
111 %package -n %{dali2_scene_loader}-devel
112 Summary:    Development components for dali-scene-loader
113 Group:      Development/Building
114 Requires:   %{dali2_scene_loader} = %{version}-%{release}
115
116 %description -n %{dali2_scene_loader}-devel
117 Development components for dali-scene-loader.
118
119 %define dali_data_rw_dir            %TZ_SYS_SHARE/dali/
120 %define dali_data_ro_dir            %TZ_SYS_RO_SHARE/dali/
121
122 %define dali_toolkit_image_files    %{dali_data_ro_dir}/toolkit/images/
123 %define dali_toolkit_sound_files    %{dali_data_ro_dir}/toolkit/sounds/
124 %define dali_toolkit_style_files    %{dali_data_ro_dir}/toolkit/styles/
125 %define dev_include_path %{_includedir}
126
127 %define dali_xml_file_dir     %TZ_SYS_RO_PACKAGES
128
129 ##############################
130 # Preparation
131 ##############################
132 %prep
133 %setup -q
134
135 ##############################
136 # Build
137 ##############################
138 %build
139 # PO
140 {
141 cd %{_builddir}/dali2-toolkit-%{version}/dali-toolkit/po
142 for language in *.po
143 do
144   language=${language%.po}
145   msgfmt -o ${language}.mo ${language}.po
146 done
147 } &> /dev/null
148
149 PREFIX="/usr"
150 CXXFLAGS+=" -Wall -g -Os -fPIC -fvisibility-inlines-hidden -fdata-sections -ffunction-sections "
151 LDFLAGS+=" -Wl,--rpath=$PREFIX/lib -Wl,--as-needed -Wl,--gc-sections -Wl,-Bsymbolic-functions "
152
153 %if 0%{?enable_coverage}
154 CXXFLAGS+=" --coverage "
155 LDFLAGS+=" --coverage "
156 %endif
157
158 %ifarch %{arm}
159 CXXFLAGS+=" -D_ARCH_ARM_"
160 %endif
161
162 libtoolize --force
163 cd %{_builddir}/dali2-toolkit-%{version}/build/tizen
164
165 DALI_DATA_RW_DIR="%{dali_data_rw_dir}" ; export DALI_DATA_RW_DIR
166 DALI_DATA_RO_DIR="%{dali_data_ro_dir}" ; export DALI_DATA_RO_DIR
167
168 cmake \
169 %if 0%{?enable_debug}
170       -DCMAKE_BUILD_TYPE=Debug \
171 %endif
172       -DENABLE_TRACE=ON \
173       -DCMAKE_INSTALL_PREFIX=%{_prefix} \
174       -DCMAKE_INSTALL_LIBDIR=%{_libdir} \
175       -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \
176       -DENABLE_I18N=ON
177
178 make %{?jobs:-j%jobs}
179
180 ##############################
181 # Installation
182 ##############################
183 %install
184 rm -rf %{buildroot}
185 cd build/tizen
186
187 pushd %{_builddir}/%{name}-%{version}/build/tizen
188 %make_install
189
190 # PO
191 {
192 cd %{_builddir}/dali2-toolkit-%{version}/dali-toolkit/po
193 for language in *.mo
194 do
195   language=${language%.mo}
196   mkdir -p %{buildroot}/%{_datadir}/locale/${language}/LC_MESSAGES/
197   cp ${language}.mo %{buildroot}/%{_datadir}/locale/${language}/LC_MESSAGES/dali-toolkit.mo
198 done
199 } &> /dev/null
200 popd
201
202 # Remove default style and style images which are for Linux build
203 rm -rf %{buildroot}%{dali_toolkit_style_files}/*
204
205 # Make folder to contain style and style images
206 # After making folder, copy local style and style images to new folder
207 pushd %{_builddir}/%{name}-%{version}
208 mkdir -p %{buildroot}%{dali_toolkit_style_files}/360x360
209 cp -r dali-toolkit/styles/360x360/* %{buildroot}%{dali_toolkit_style_files}/360x360
210 mkdir -p %{buildroot}%{dali_toolkit_style_files}/480x800
211 cp -r dali-toolkit/styles/480x800/* %{buildroot}%{dali_toolkit_style_files}/480x800
212 mkdir -p %{buildroot}%{dali_toolkit_style_files}/720x1280
213 cp -r dali-toolkit/styles/720x1280/* %{buildroot}%{dali_toolkit_style_files}/720x1280
214 mkdir -p %{buildroot}%{dali_toolkit_style_files}/1920x1080
215 cp -r dali-toolkit/styles/1920x1080/* %{buildroot}%{dali_toolkit_style_files}/1920x1080
216 mkdir -p %{buildroot}%{dali_toolkit_style_files}/1920x1080_rpi
217 cp -r dali-toolkit/styles/1920x1080_rpi/* %{buildroot}%{dali_toolkit_style_files}/1920x1080_rpi
218
219 # Copy default feedback theme
220 cp dali-toolkit/styles/default-feedback-theme.json %{buildroot}%{dali_toolkit_style_files}
221 popd
222
223 ##############################
224 # Pre Install
225 ##############################
226
227 %pre resources_360x360
228 case "$1" in
229   2)
230     pushd %{dali_toolkit_style_files}
231     rm -rf ./*
232     popd
233   ;;
234 esac
235
236 %pre resources_480x800
237 case "$1" in
238   2)
239     pushd %{dali_toolkit_style_files}
240     rm -rf ./*
241     popd
242   ;;
243 esac
244
245 %pre resources_720x1280
246 case "$1" in
247   2)
248     pushd %{dali_toolkit_style_files}
249     rm -rf ./*
250     popd
251   ;;
252 esac
253
254 %pre resources_1920x1080
255 case "$1" in
256   2)
257     pushd %{dali_toolkit_style_files}
258     rm -rf ./*
259     popd
260   ;;
261 esac
262
263 %pre resources_1920x1080_rpi
264 case "$1" in
265   2)
266     pushd %{dali_toolkit_style_files}
267     rm -rf ./*
268     popd
269   ;;
270 esac
271
272 ##############################
273 # Post Install
274 ##############################
275 %post
276 /sbin/ldconfig
277 exit 0
278
279 %post resources_360x360
280 pushd %{dali_toolkit_style_files}/360x360
281 for FILE in *; do mv ./"${FILE}" ../"${FILE}"; done
282 popd
283
284 %post resources_480x800
285 pushd %{dali_toolkit_style_files}/480x800
286 for FILE in *; do mv ./"${FILE}" ../"${FILE}"; done
287 popd
288
289 %post resources_720x1280
290 pushd %{dali_toolkit_style_files}/720x1280
291 for FILE in *; do mv ./"${FILE}" ../"${FILE}"; done
292 popd
293
294 %post resources_1920x1080
295 pushd %{dali_toolkit_style_files}/1920x1080
296 for FILE in *; do mv ./"${FILE}" ../"${FILE}"; done
297 popd
298
299 %post resources_1920x1080_rpi
300 pushd %{dali_toolkit_style_files}/1920x1080_rpi
301 for FILE in *; do mv ./"${FILE}" ../"${FILE}"; done
302 popd
303
304 ##############################
305 # Pre Uninstall
306 ##############################
307
308 %preun resources_360x360
309 case "$1" in
310   0)
311     %preun resources_360x360
312     pushd %{dali_toolkit_style_files}
313     mv images ./360x360
314     mv dali-toolkit-default-theme.json ./360x360
315     popd
316   ;;
317 esac
318
319 %preun resources_480x800
320 case "$1" in
321   0)
322     %preun resources_480x800
323     pushd %{dali_toolkit_style_files}
324     mv images ./480x800
325     mv dali-toolkit-default-theme.json ./480x800
326     popd
327   ;;
328 esac
329
330 %preun resources_720x1280
331 case "$1" in
332   0)
333     %preun resources_720x1280
334     pushd %{dali_toolkit_style_files}
335     mv images ./720x1280
336     mv dali-toolkit-default-theme.json ./720x1280
337     popd
338   ;;
339 esac
340
341 %preun resources_1920x1080
342 case "$1" in
343   0)
344     %preun resources_1920x1080
345     pushd %{dali_toolkit_style_files}
346     mv images ./1920x1080
347     mv dali-toolkit-default-theme.json ./1920x1080
348     popd
349   ;;
350 esac
351
352 %preun resources_1920x1080_rpi
353 case "$1" in
354   0)
355     %preun resources_1920x1080_rpi
356     pushd %{dali_toolkit_style_files}
357     mv images ./1920x1080_rpi
358     mv dali-toolkit-default-theme.json ./1920x1080_rpi
359     popd
360   ;;
361 esac
362
363 ##############################
364 # Post Uninstall
365 ##############################
366 %postun
367 /sbin/ldconfig
368 exit 0
369
370 %postun resources_360x360
371 case "$1" in
372   0)
373     pushd %{dali_toolkit_style_files}
374     rm -rf *
375     popd
376   ;;
377 esac
378
379 %postun resources_480x800
380 case "$1" in
381   0)
382     pushd %{dali_toolkit_style_files}
383     rm -rf *
384     popd
385   ;;
386 esac
387
388 %postun resources_720x1280
389 case "$1" in
390   0)
391     pushd %{dali_toolkit_style_files}
392     rm -rf *
393     popd
394   ;;
395 esac
396
397 %postun resources_1920x1080
398 case "$1" in
399   0)
400     pushd %{dali_toolkit_style_files}
401     rm -rf *
402     popd
403   ;;
404 esac
405
406 %postun resources_1920x1080_rpi
407 case "$1" in
408   0)
409     pushd %{dali_toolkit_style_files}
410     rm -rf *
411     popd
412   ;;
413 esac
414
415 ##############################
416 # Files in Binary Packages
417 ##############################
418 %files
419 %if 0%{?enable_dali_smack_rules}
420 %manifest dali-toolkit.manifest-smack
421 %else
422 %manifest dali-toolkit.manifest
423 %endif
424 %defattr(-,root,root,-)
425 %{_libdir}/libdali2-toolkit.so*
426 %license LICENSE
427
428 %files devel
429 %defattr(-,root,root,-)
430 %{dev_include_path}/dali-toolkit/*
431 %{_libdir}/pkgconfig/dali2-toolkit.pc
432 %{_bindir}/dali-shader-generator
433
434 %files resources_360x360
435 %manifest dali-toolkit-resources.manifest
436 %defattr(-,root,root,-)
437 %{dali_toolkit_image_files}/*
438 %{dali_toolkit_sound_files}/*
439 %{dali_toolkit_style_files}/360x360/*
440 %{dali_toolkit_style_files}/default-feedback-theme.json
441 %{_datadir}/locale/*/LC_MESSAGES/*
442
443 %files resources_480x800
444 %manifest dali-toolkit-resources.manifest
445 %defattr(-,root,root,-)
446 %{dali_toolkit_image_files}/*
447 %{dali_toolkit_sound_files}/*
448 %{dali_toolkit_style_files}/480x800/*
449 %{dali_toolkit_style_files}/default-feedback-theme.json
450 %{_datadir}/locale/*/LC_MESSAGES/*
451
452 %files resources_720x1280
453 %manifest dali-toolkit-resources.manifest
454 %defattr(-,root,root,-)
455 %{dali_toolkit_image_files}/*
456 %{dali_toolkit_sound_files}/*
457 %{dali_toolkit_style_files}/720x1280/*
458 %{dali_toolkit_style_files}/default-feedback-theme.json
459 %{_datadir}/locale/*/LC_MESSAGES/*
460
461 %files resources_1920x1080
462 %manifest dali-toolkit-resources.manifest
463 %defattr(-,root,root,-)
464 %{dali_toolkit_image_files}/*
465 %{dali_toolkit_sound_files}/*
466 %{dali_toolkit_style_files}/1920x1080/*
467 %{dali_toolkit_style_files}/default-feedback-theme.json
468 %{_datadir}/locale/*/LC_MESSAGES/*
469
470 %files resources_1920x1080_rpi
471 %manifest dali-toolkit-resources.manifest
472 %defattr(-,root,root,-)
473 %{dali_toolkit_image_files}/*
474 %{dali_toolkit_sound_files}/*
475 %{dali_toolkit_style_files}/1920x1080_rpi/*
476 %{dali_toolkit_style_files}/default-feedback-theme.json
477 %{_datadir}/locale/*/LC_MESSAGES/*
478
479 %files -n %{dali2_scene_loader}
480 %if 0%{?enable_dali_smack_rules}
481 %manifest dali-scene-loader.manifest-smack
482 %else
483 %manifest dali-scene-loader.manifest
484 %endif
485 %defattr(-,root,root,-)
486 %{_libdir}/lib%{dali2_scene_loader}.so
487 %license LICENSE
488
489 %files -n %{dali2_scene_loader}-devel
490 %defattr(-,root,root,-)
491 %{_includedir}/dali-scene-loader/public-api/*
492 %{_libdir}/pkgconfig/dali2-scene-loader.pc