Merge "Check NULL return value in builder-impl.cpp" into devel/master
[platform/core/uifw/dali-toolkit.git] / packaging / dali-toolkit.spec
1 Name:       dali-toolkit
2 Summary:    Dali 3D engine Toolkit
3 Version:    1.3.19
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
13 %if 0%{?tizen_version_major} < 4
14 %define disable_cxx03_build 1
15 %endif
16
17 BuildRequires:  pkgconfig
18 BuildRequires:  pkgconfig(dlog)
19 BuildRequires:  pkgconfig(dali-core)
20 %if !0%{?disable_cxx03_build}
21 BuildRequires:  pkgconfig(dali-core-cxx03)
22 %endif
23 BuildRequires: gettext
24
25 # dali-toolkit only need to know the interfaces(APIs) of dali-adaptor(the devel package).
26 # It doesn't need to know which adaptor will be used by applications.
27 # Applications or dali-addon will decide which one they will use.
28 BuildRequires:  dali-adaptor-devel
29 %if !0%{?disable_cxx03_build}
30 BuildRequires:  dali-adaptor-devel-cxx03
31 %endif
32
33 #need libtzplatform-config for directory if tizen version is 3.x
34
35 %if 0%{?tizen_version_major} >= 3
36 BuildRequires:  pkgconfig(libtzplatform-config)
37 %endif
38
39 #############################
40 # profile setup
41 #############################
42
43 %if "%{tizen_version_major}" == "2" && 0%{?tizen_profile_name:1}
44 %define profile %{tizen_profile_name}
45 %endif
46
47 %description
48 Dali 3D engine Toolkit - a set of controls that provide
49 user interface functionality.
50
51 ##############################
52 # resource
53 ##############################
54 %package resources_360x360
55 Summary:    default resource files for 360x360
56 Requires:   %{name} = %{version}-%{release}
57 Conflicts:  %{name}-resources_480x800
58 Conflicts:  %{name}-resources_720x1280
59 Conflicts:  %{name}-resources_1920x1080
60 %description resources_360x360
61 dali-toolkit default resource files for 360x360
62 Contain po / sounds / common images / style / style images
63
64 %package resources_480x800
65 Summary:    default resource files for 480x800
66 Requires:   %{name} = %{version}-%{release}
67 Conflicts:  %{name}-resources_360x360
68 Conflicts:  %{name}-resources_720x1280
69 Conflicts:  %{name}-resources_1920x1080
70 %description resources_480x800
71 dali-toolkit default resource files for 480x800
72 Contain po / sounds / common images / style / style images
73
74 %package resources_720x1280
75 Summary:    default resource files for 720x1280
76 Requires:   %{name} = %{version}-%{release}
77 Conflicts:  %{name}-resources_360x360
78 Conflicts:  %{name}-resources_480x800
79 Conflicts:  %{name}-resources_1920x1080
80 %description resources_720x1280
81 dali-toolkit default resource files for 720x1280
82 Contain po / sounds / common images / style / style images
83
84 %package resources_1920x1080
85 Summary:    default resource files for 1920x1080
86 Requires:   %{name} = %{version}-%{release}
87 Conflicts:  %{name}-resources_360x360
88 Conflicts:  %{name}-resources_480x800
89 Conflicts:  %{name}-resources_720x1280
90 %description resources_1920x1080
91 dali-toolkit default resource files for 1920x1080
92 Contain po / sounds / common images / style / style images
93
94 %if !0%{?disable_cxx03_build}
95 %package cxx03
96 Summary:        Dali 3D engine Toolkit with cxx03
97 Provides:       %{name}-cxx03 = %{version}-%{release}
98
99 %description cxx03
100 Dali 3D engine Toolkit with cxx03
101 %endif
102
103 ##############################
104 # devel
105 ##############################
106 %package devel
107 Summary:    Application development package for Dali 3D engine toolkit
108 Group:      Development/Building
109 Requires:   %{name} = %{version}-%{release}
110
111 %description devel
112 Application development package for Dali 3D engine toolkit - headers and package config
113
114 ##############################
115 # Preparation
116 ##############################
117 %prep
118 %setup -q
119
120 #Use TZ_PATH when tizen version is 3.x
121
122 %if "%{tizen_version_major}" == "2"
123 %define dali_data_rw_dir            /opt/usr/share/dali/
124 %define dali_data_ro_dir            /usr/share/dali/
125 %else
126 %define dali_data_rw_dir            %TZ_SYS_SHARE/dali/
127 %define dali_data_ro_dir            %TZ_SYS_RO_SHARE/dali/
128 %endif
129
130 %define dali_toolkit_image_files    %{dali_data_ro_dir}/toolkit/images/
131 %define dali_toolkit_sound_files    %{dali_data_ro_dir}/toolkit/sounds/
132 %define dali_toolkit_style_files    %{dali_data_ro_dir}/toolkit/styles/
133 %define dev_include_path %{_includedir}
134
135 # PO
136 {
137 cd %{_builddir}/dali-toolkit-%{version}/dali-toolkit/po
138 for language in *.po
139 do
140   language=${language%.po}
141   msgfmt -o ${language}.mo ${language}.po
142 done
143 } &> /dev/null
144
145 ##############################
146 # Build
147 ##############################
148 %build
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 libtoolize --force
159 cd %{_builddir}/dali-toolkit-%{version}/build/tizen
160 autoreconf --install
161 DALI_DATA_RW_DIR="%{dali_data_rw_dir}" ; export DALI_DATA_RW_DIR
162 DALI_DATA_RO_DIR="%{dali_data_ro_dir}" ; export DALI_DATA_RO_DIR
163
164 %configure --enable-profile=TIZEN \
165 %if 0%{?enable_debug}
166            --enable-debug \
167 %endif
168 %if 0%{?enable_trace}
169       --enable-trace \
170 %endif
171            --enable-i18n=yes \
172            --enable-rename-so=no
173
174 make %{?jobs:-j%jobs}
175
176 pushd %{_builddir}/%{name}-%{version}/build/tizen
177 %make_install DALI_DATA_RW_DIR="%{dali_data_rw_dir}" DALI_DATA_RO_DIR="%{dali_data_ro_dir}"
178 popd
179
180 pushd %{buildroot}%{_libdir}
181 for FILE in libdali-toolkit-cxx11.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE"; done
182 mv pkgconfig/dali-toolkit.pc %{_builddir}/%{name}-%{version}/build/tizen/dali-toolkit.pc
183 popd
184
185 %if !0%{?disable_cxx03_build}
186 make clean
187
188 libtoolize --force
189 cd %{_builddir}/dali-toolkit-%{version}/build/tizen
190 autoreconf --install
191
192 DALI_DATA_RW_DIR="%{dali_data_rw_dir}" ; export DALI_DATA_RW_DIR
193 DALI_DATA_RO_DIR="%{dali_data_ro_dir}" ; export DALI_DATA_RO_DIR
194
195 %configure --enable-profile=TIZEN \
196            --enable-cxx03-abi=yes \
197 %if 0%{?enable_debug}
198            --enable-debug \
199 %endif
200 %if 0%{?enable_trace}
201       --enable-trace \
202 %endif
203            --enable-i18n=yes \
204            --enable-rename-so=no
205
206 make %{?jobs:-j%jobs}
207 %endif
208
209 ##############################
210 # Installation
211 ##############################
212 %install
213 rm -rf %{buildroot}
214 pushd %{_builddir}/%{name}-%{version}/build/tizen
215 %make_install DALI_DATA_RW_DIR="%{dali_data_rw_dir}" DALI_DATA_RO_DIR="%{dali_data_ro_dir}"
216
217 for FILE in libdali-toolkit-cxx11.so*; do mv "$FILE" "%{buildroot}%{_libdir}/$FILE"; done
218 mv dali-toolkit.pc %{buildroot}%{_libdir}/pkgconfig/dali-toolkit.pc
219
220 # PO
221 {
222 cd %{_builddir}/dali-toolkit-%{version}/dali-toolkit/po
223 for language in *.mo
224 do
225   language=${language%.mo}
226   mkdir -p %{buildroot}/%{_datadir}/locale/${language}/LC_MESSAGES/
227   cp ${language}.mo %{buildroot}/%{_datadir}/locale/${language}/LC_MESSAGES/dali-toolkit.mo
228 done
229 } &> /dev/null
230 popd
231
232 #############################
233 #rename
234 #############################
235 pushd  %{buildroot}%{_libdir}
236 rm -rf libdali-toolkit.so
237 rm -rf libdali-toolkit-cxx11.so
238 %if !0%{?disable_cxx03_build}
239 ln -s libdali-toolkit.so.0.0.* libdali-toolkit-cxx03.so
240 %endif
241 ln -s libdali-toolkit-cxx11.so.0.0.* libdali-toolkit.so
242 popd
243
244 # Remove default style and style images which are for Linux build
245 rm -rf %{buildroot}%{dali_toolkit_style_files}/*
246
247 # Make folder to contain style and style images
248 # After making folder, copy local style and style images to new folder
249 mkdir -p %{buildroot}%{dali_toolkit_style_files}/360x360
250 cp -r dali-toolkit/styles/360x360/* %{buildroot}%{dali_toolkit_style_files}/360x360
251 mkdir -p %{buildroot}%{dali_toolkit_style_files}/480x800
252 cp -r dali-toolkit/styles/480x800/* %{buildroot}%{dali_toolkit_style_files}/480x800
253 mkdir -p %{buildroot}%{dali_toolkit_style_files}/720x1280
254 cp -r dali-toolkit/styles/720x1280/* %{buildroot}%{dali_toolkit_style_files}/720x1280
255 mkdir -p %{buildroot}%{dali_toolkit_style_files}/1920x1080
256 cp -r dali-toolkit/styles/1920x1080/* %{buildroot}%{dali_toolkit_style_files}/1920x1080
257
258 # Copy default feedback theme
259 cp dali-toolkit/styles/default-feedback-theme.json %{buildroot}%{dali_toolkit_style_files}
260
261 ##############################
262 # Pre Install
263 ##############################
264
265 %pre resources_360x360
266 case "$1" in
267   2)
268     pushd %{dali_toolkit_style_files}
269     rm -rf ./*
270     popd
271   ;;
272 esac
273
274 %pre resources_480x800
275 case "$1" in
276   2)
277     pushd %{dali_toolkit_style_files}
278     rm -rf ./*
279     popd
280   ;;
281 esac
282
283 %pre resources_720x1280
284 case "$1" in
285   2)
286     pushd %{dali_toolkit_style_files}
287     rm -rf ./*
288     popd
289   ;;
290 esac
291
292 %pre resources_1920x1080
293 case "$1" in
294   2)
295     pushd %{dali_toolkit_style_files}
296     rm -rf ./*
297     popd
298   ;;
299 esac
300
301 ##############################
302 # Post Install
303 ##############################
304 %post
305 /sbin/ldconfig
306 exit 0
307
308 %post resources_360x360
309 pushd %{dali_toolkit_style_files}/360x360
310 for FILE in *; do mv ./"${FILE}" ../"${FILE}"; done
311 popd
312
313 %post resources_480x800
314 pushd %{dali_toolkit_style_files}/480x800
315 for FILE in *; do mv ./"${FILE}" ../"${FILE}"; done
316 popd
317
318 %post resources_720x1280
319 pushd %{dali_toolkit_style_files}/720x1280
320 for FILE in *; do mv ./"${FILE}" ../"${FILE}"; done
321 popd
322
323 %post resources_1920x1080
324 pushd %{dali_toolkit_style_files}/1920x1080
325 for FILE in *; do mv ./"${FILE}" ../"${FILE}"; done
326 popd
327
328 ##############################
329 # Pre Uninstall
330 ##############################
331
332 %preun resources_360x360
333 case "$1" in
334   0)
335     %preun resources_360x360
336     pushd %{dali_toolkit_style_files}
337     mv images ./360x360
338     mv dali-toolkit-default-theme.json ./360x360
339     popd
340   ;;
341 esac
342
343 %preun resources_480x800
344 case "$1" in
345   0)
346     %preun resources_480x800
347     pushd %{dali_toolkit_style_files}
348     mv images ./480x800
349     mv dali-toolkit-default-theme.json ./480x800
350     popd
351   ;;
352 esac
353
354 %preun resources_720x1280
355 case "$1" in
356   0)
357     %preun resources_720x1280
358     pushd %{dali_toolkit_style_files}
359     mv images ./720x1280
360     mv dali-toolkit-default-theme.json ./720x1280
361     popd
362   ;;
363 esac
364
365 %preun resources_1920x1080
366 case "$1" in
367   0)
368     %preun resources_1920x1080
369     pushd %{dali_toolkit_style_files}
370     mv images ./1920x1080
371     mv dali-toolkit-default-theme.json ./1920x1080
372     popd
373   ;;
374 esac
375
376 ##############################
377 # Post Uninstall
378 ##############################
379 %postun
380 /sbin/ldconfig
381 exit 0
382
383 %postun resources_360x360
384 case "$1" in
385   0)
386     pushd %{dali_toolkit_style_files}
387     rm -rf *
388     popd
389   ;;
390 esac
391
392 %postun resources_480x800
393 case "$1" in
394   0)
395     pushd %{dali_toolkit_style_files}
396     rm -rf *
397     popd
398   ;;
399 esac
400
401 %postun resources_720x1280
402 case "$1" in
403   0)
404     pushd %{dali_toolkit_style_files}
405     rm -rf *
406     popd
407   ;;
408 esac
409
410 %postun resources_1920x1080
411 case "$1" in
412   0)
413     pushd %{dali_toolkit_style_files}
414     rm -rf *
415     popd
416   ;;
417 esac
418
419 ##############################
420 # Files in Binary Packages
421 ##############################
422 %files
423 %if 0%{?enable_dali_smack_rules}
424 %manifest dali-toolkit.manifest-smack
425 %else
426 %manifest dali-toolkit.manifest
427 %endif
428 %defattr(-,root,root,-)
429 %{_libdir}/libdali-toolkit-cxx11.so.*
430 %{_libdir}/libdali-toolkit.so
431 %license LICENSE
432
433 %if !0%{?disable_cxx03_build}
434 %files cxx03
435 %if 0%{?enable_dali_smack_rules}
436 %manifest dali-toolkit.manifest-smack
437 %else
438 %manifest dali-toolkit.manifest
439 %endif
440 %defattr(-,root,root,-)
441 %{_libdir}/libdali-toolkit.so.*
442 %{_libdir}/libdali-toolkit-cxx03.so
443 %license LICENSE
444 %endif
445
446 %files devel
447 %defattr(-,root,root,-)
448 %{dev_include_path}/dali-toolkit/*
449 %{_libdir}/pkgconfig/dali-toolkit.pc
450
451 %files resources_360x360
452 %manifest dali-toolkit-resources.manifest
453 %defattr(-,root,root,-)
454 %{dali_toolkit_image_files}/*
455 %{dali_toolkit_sound_files}/*
456 %{dali_toolkit_style_files}/360x360/*
457 %{dali_toolkit_style_files}/default-feedback-theme.json
458 %{_datadir}/locale/*/LC_MESSAGES/*
459
460 %files resources_480x800
461 %manifest dali-toolkit-resources.manifest
462 %defattr(-,root,root,-)
463 %{dali_toolkit_image_files}/*
464 %{dali_toolkit_sound_files}/*
465 %{dali_toolkit_style_files}/480x800/*
466 %{dali_toolkit_style_files}/default-feedback-theme.json
467 %{_datadir}/locale/*/LC_MESSAGES/*
468
469 %files resources_720x1280
470 %manifest dali-toolkit-resources.manifest
471 %defattr(-,root,root,-)
472 %{dali_toolkit_image_files}/*
473 %{dali_toolkit_sound_files}/*
474 %{dali_toolkit_style_files}/720x1280/*
475 %{dali_toolkit_style_files}/default-feedback-theme.json
476 %{_datadir}/locale/*/LC_MESSAGES/*
477
478 %files resources_1920x1080
479 %manifest dali-toolkit-resources.manifest
480 %defattr(-,root,root,-)
481 %{dali_toolkit_image_files}/*
482 %{dali_toolkit_sound_files}/*
483 %{dali_toolkit_style_files}/1920x1080/*
484 %{dali_toolkit_style_files}/default-feedback-theme.json
485 %{_datadir}/locale/*/LC_MESSAGES/*