3 %{!?profile:%define profile mobile}
5 %define _manifestdir %{TZ_SYS_RW_PACKAGES}
6 %define _desktop_icondir %{TZ_SYS_SHARE}/icons/default/small
8 %define crosswalk_extensions tizen-extensions-crosswalk
10 %define crosswalk_extensions_path %{_libdir}/%{crosswalk_extensions}
15 License: Apache-2.0 and BSD-2.0 and MIT
16 Group: Development/Libraries
17 Summary: Tizen Web APIs implemented
18 Source0: %{name}-%{version}.tar.gz
20 %ifarch %{arm} aarch64
22 %define tizen_is_emulator 0
25 %define tizen_is_emulator 1
28 ####################################################################
29 # Mobile Profile : Redwood(SM-Z910F), KIRAN(Z130H) #
30 ####################################################################
31 %if "%{?profile}" == "mobile"
33 %define tizen_privilege_engine CYNARA
35 %define tizen_feature_account_support 1
36 %define tizen_feature_alarm_support 1
37 %define tizen_feature_app_control_settings_support 1
38 %define tizen_feature_application_support 1
39 %define tizen_feature_archive_support 1
40 %define tizen_feature_badge_support 1
41 %if 0%{?tizen_is_emulator}
42 %define tizen_feature_bluetooth_support 0
44 %define tizen_feature_bluetooth_support 1
46 %define tizen_feature_bookmark_support 1
47 %define tizen_feature_calendar_support 1
48 %define tizen_feature_contact_support 1
49 %define tizen_feature_content_support 1
50 %define tizen_feature_datacontrol_support 1
51 %define tizen_feature_datasync_support 0
52 %define tizen_feature_download_support 1
53 %define tizen_feature_exif_support 1
54 %define tizen_feature_filesystem_support 1
55 %define tizen_feature_fm_radio_support 1
56 %if 0%{?tizen_is_emulator}
57 %define tizen_feature_ham_support 1
59 %define tizen_feature_ham_support 0
61 %define tizen_feature_location_batch 0
62 %define tizen_feature_key_manager_support 0
63 %define tizen_feature_media_controller_support 1
64 %if 0%{?tizen_is_emulator}
65 %define tizen_feature_media_key_support 0
67 %define tizen_feature_media_key_support 1
69 %define tizen_feature_message_port_support 1
70 %define tizen_feature_messaging_support 1
72 %if 0%{?model_build_feature_nfc}
73 %define tizen_feature_nfc_emulation_support 0
74 %define tizen_feature_nfc_support 1
76 %define tizen_feature_nfc_emulation_support 0
77 %define tizen_feature_nfc_support 0
79 %define tizen_feature_notification_support 1
80 %define tizen_feature_package_support 1
81 %define tizen_feature_power_support 1
82 %define tizen_feature_push_support 1
83 %if 0%{?tizen_is_emulator}
84 %define tizen_feature_se_support 0
86 %define tizen_feature_se_support 0
88 %define tizen_feature_sensor_support 1
89 %define tizen_feature_sound_support 1
90 %define tizen_feature_system_info_support 1
91 %define tizen_feature_system_setting_support 1
92 %if 0%{?tizen_is_emulator}
93 %define tizen_feature_telephony_support 0
95 %define tizen_feature_telephony_support 0
97 %define tizen_feature_time_support 1
98 %define tizen_feature_web_setting_support 1
99 %if 0%{?tizen_is_emulator}
100 %define tizen_feature_wi_fi_support 0
102 %define tizen_feature_wi_fi_support 1
104 %define tizen_feature_inputdevice_support 1
106 %if 0%{?tizen_feature_telephony_support}
107 %define tizen_feature_callhistory_support 1
108 %define tizen_feature_nbs_support 1
110 %define tizen_feature_callhistory_support 0
111 %define tizen_feature_nbs_support 0
114 %endif # tizen_profile_mobile
116 ####################################################################
117 # Wearable Profile : B2 #
118 ####################################################################
119 %if "%{?profile}" == "wearable"
121 %define tizen_privilege_engine CYNARA
123 # Account API is optional in Tizen Wearable Profile.
124 %define tizen_feature_account_support 0
126 %define tizen_feature_alarm_support 1
127 %define tizen_feature_app_control_settings_support 1
128 %define tizen_feature_application_support 1
130 # Archive API is optional in Tizen Wearable Profile.
131 %define tizen_feature_archive_support 1
133 # Badge API is mandatory in Tizen Wearable Profile.
134 %define tizen_feature_badge_support 1
136 %define tizen_feature_bluetooth_support 1
138 # Bookmark API is optional in Tizen Wearable Profile.
139 %define tizen_feature_bookmark_support 0
141 # Calendar API is mandatory in Tizen Wearable Profile.
142 %define tizen_feature_calendar_support 0
143 %define tizen_feature_contact_support 0
144 %define tizen_feature_content_support 1
145 %define tizen_feature_datacontrol_support 0
146 %define tizen_feature_datasync_support 0
147 %if 0%{?tizen_is_emulator}
148 %define tizen_feature_download_support 1
150 %define tizen_feature_download_support 0
152 %define tizen_feature_exif_support 1
153 %define tizen_feature_filesystem_support 1
154 %define tizen_feature_fm_radio_support 0
155 %define tizen_feature_ham_support 1
156 %define tizen_feature_location_batch 0
157 %define tizen_feature_media_controller_support 1
159 # MediayKey API is optional in Tizen Wearable Profile.
160 # tizen.org/feature/network.bluetooth.audio.media is required for MediayKey API
161 %if 0%{?tizen_is_emulator}
162 %define tizen_feature_media_key_support 0
164 %define tizen_feature_media_key_support 1
166 %define tizen_feature_key_manager_support 0
167 %define tizen_feature_message_port_support 1
168 %define tizen_feature_messaging_support 0
170 %if 0%{?model_build_feature_nfc}
171 %define tizen_feature_nfc_emulation_support 0
172 %define tizen_feature_nfc_support 1
174 %define tizen_feature_nfc_emulation_support 0
175 %define tizen_feature_nfc_support 0
177 %define tizen_feature_notification_support 1
178 %define tizen_feature_package_support 1
179 %define tizen_feature_power_support 1
180 %define tizen_feature_push_support 1
181 %if 0%{?model_build_feature_smartcard }
182 %define tizen_feature_se_support 1
184 %define tizen_feature_se_support 0
186 %define tizen_feature_sensor_support 1
187 %define tizen_feature_sound_support 1
188 %define tizen_feature_system_info_support 1
189 %define tizen_feature_system_setting_support 1
190 %define tizen_feature_telephony_support 0
191 %define tizen_feature_time_support 1
192 %define tizen_feature_web_setting_support 0
193 %define tizen_feature_wi_fi_support 1
194 %define tizen_feature_inputdevice_support 1
196 #- telephony related APIs
197 # CallHistory API is optional in Tizen Wearable Profile.
198 # NetworkBearerSelection API is optional in Tizen Wearable Profile.
199 %if 0%{?tizen_feature_telephony_support}
200 %define tizen_feature_callhistory_support 1
201 %define tizen_feature_nbs_support 1
203 %define tizen_feature_callhistory_support 0
204 %define tizen_feature_nbs_support 0
207 %endif # tizen_profile_wearable
209 ####################################################################
211 ####################################################################
212 %if "%{?profile}" == "tv"
214 %define tizen_privilege_engine CYNARA
216 %define tizen_feature_account_support 0
217 %define tizen_feature_alarm_support 1
218 %define tizen_feature_app_control_settings_support 0
219 %define tizen_feature_application_support 1
220 %define tizen_feature_archive_support 1
221 %define tizen_feature_badge_support 0
222 %define tizen_feature_bluetooth_support 0
223 %define tizen_feature_bookmark_support 0
224 %define tizen_feature_calendar_support 0
225 %define tizen_feature_callhistory_support 0
226 %define tizen_feature_contact_support 0
227 %define tizen_feature_content_support 1
228 %define tizen_feature_datacontrol_support 0
229 %define tizen_feature_datasync_support 0
230 %define tizen_feature_download_support 1
231 %define tizen_feature_exif_support 1
232 %define tizen_feature_filesystem_support 1
233 %define tizen_feature_fm_radio_support 0
234 %define tizen_feature_ham_support 0
235 %define tizen_feature_key_manager_support 0
236 %define tizen_feature_media_controller_support 1
237 %define tizen_feature_media_key_support 1
238 %define tizen_feature_message_port_support 1
239 %define tizen_feature_messaging_support 0
240 %define tizen_feature_nbs_support 0
241 %define tizen_feature_nfc_emulation_support 0
242 %define tizen_feature_nfc_support 0
243 %define tizen_feature_notification_support 0
244 %define tizen_feature_package_support 1
245 %define tizen_feature_power_support 0
246 %define tizen_feature_push_support 0
247 %define tizen_feature_se_support 0
248 %define tizen_feature_sensor_support 0
249 %define tizen_feature_sound_support 0
250 %define tizen_feature_system_info_support 1
251 %define tizen_feature_system_setting_support 0
252 %define tizen_feature_telephony_support 0
253 %define tizen_feature_time_support 1
254 %define tizen_feature_web_setting_support 1
255 %define tizen_feature_wi_fi_support 1
256 %define tizen_feature_inputdevice_support 1
258 %endif # tizen_profile_tv
261 BuildRequires: pkgconfig(appcore-common)
262 BuildRequires: pkgconfig(dlog)
263 BuildRequires: pkgconfig(evas)
264 BuildRequires: pkgconfig(gio-unix-2.0)
265 BuildRequires: pkgconfig(gio-2.0)
266 BuildRequires: pkgconfig(glib-2.0)
267 BuildRequires: pkgconfig(libudev)
268 BuildRequires: pkgconfig(minizip)
269 BuildRequires: pkgconfig(zlib)
270 BuildRequires: pkgconfig(pkgmgr)
271 BuildRequires: pkgconfig(pkgmgr-info)
272 BuildRequires: pkgconfig(vconf)
273 BuildRequires: pkgconfig(ecore)
274 BuildRequires: pkgconfig(icu-i18n)
275 BuildRequires: pkgconfig(aul)
276 BuildRequires: pkgconfig(storage)
277 BuildRequires: python
278 BuildRequires: pkgconfig(capi-base-common)
279 BuildRequires: pkgconfig(capi-system-info)
280 BuildRequires: pkgconfig(capi-system-runtime-info)
281 BuildRequires: pkgconfig(capi-network-connection)
282 BuildRequires: pkgconfig(capi-system-device)
283 BuildRequires: pkgconfig(capi-system-system-settings)
284 BuildRequires: pkgconfig(capi-network-bluetooth)
285 BuildRequires: pkgconfig(capi-network-wifi)
286 BuildRequires: pkgconfig(tapi)
287 BuildRequires: pkgconfig(libpcrecpp)
288 BuildRequires: pkgconfig(capi-appfw-application)
289 BuildRequires: pkgconfig(capi-appfw-app-manager)
290 BuildRequires: pkgconfig(capi-appfw-package-manager)
291 BuildRequires: pkgconfig(capi-content-media-content)
292 BuildRequires: pkgconfig(capi-media-metadata-extractor)
293 BuildRequires: pkgconfig(libtzplatform-config)
296 %define display_type wayland
297 BuildRequires: pkgconfig(wayland-client)
299 %define display_type x11
300 BuildRequires: pkgconfig(x11)
301 BuildRequires: pkgconfig(xrandr)
304 %if "%{?tizen_privilege_engine}" == "ACE"
305 BuildRequires: pkgconfig(security-privilege-checker)
308 %if "%{?tizen_privilege_engine}" == "CYNARA"
309 BuildRequires: pkgconfig(cynara-client)
310 BuildRequires: pkgconfig(libsmack)
313 %if 0%{?tizen_feature_account_support}
314 BuildRequires: pkgconfig(accounts-svc)
317 %if 0%{?tizen_feature_alarm_support}
318 BuildRequires: pkgconfig(capi-appfw-alarm)
319 BuildRequires: pkgconfig(alarm-service)
322 %if 0%{?tizen_feature_bookmark_support}
323 BuildRequires: pkgconfig(capi-web-bookmark)
324 BuildRequires: pkgconfig(bookmark-adaptor)
327 %if 0%{?tizen_feature_datacontrol_support}
328 BuildRequires: pkgconfig(capi-data-control)
331 %if 0%{?tizen_feature_download_support}
332 BuildRequires: pkgconfig(capi-web-url-download)
335 %if 0%{?tizen_feature_ham_support}
336 BuildRequires: pkgconfig(motion)
337 BuildRequires: pkgconfig(capi-system-sensor)
338 BuildRequires: pkgconfig(capi-location-manager)
341 %if 0%{?tizen_feature_power_support}
342 BuildRequires: pkgconfig(deviced)
345 %if 0%{?tizen_feature_power_support}
346 BuildRequires: pkgconfig(capi-appfw-application)
349 %if 0%{?tizen_feature_push_support}
350 BuildRequires: pkgconfig(push)
353 %if 0%{?tizen_feature_key_manager_support}
354 BuildRequires: pkgconfig(key-manager)
357 %if 0%{?tizen_feature_media_controller_support}
358 BuildRequires: pkgconfig(capi-media-controller)
361 %if 0%{?tizen_feature_messaging_support}
362 BuildRequires: pkgconfig(ecore-file)
363 BuildRequires: pkgconfig(email-service)
364 BuildRequires: pkgconfig(msg-service)
365 BuildRequires: pkgconfig(db-util)
368 %if 0%{?tizen_feature_badge_support}
369 BuildRequires: pkgconfig(badge)
372 %if 0%{?tizen_feature_calendar_support}
373 BuildRequires: pkgconfig(calendar-service2)
376 %if 0%{?tizen_feature_contact_support}
377 BuildRequires: pkgconfig(contacts-service2)
380 %if 0%{?tizen_feature_callhistory_support}
381 BuildRequires: pkgconfig(contacts-service2)
384 %if 0%{?tizen_feature_exif_support}
385 BuildRequires: pkgconfig(libexif)
388 %if 0%{?tizen_feature_nfc_support}
389 BuildRequires: pkgconfig(capi-network-nfc)
392 %if 0%{?tizen_feature_fm_radio_support}
393 BuildRequires: pkgconfig(capi-media-radio)
396 %if 0%{?tizen_feature_se_support}
397 BuildRequires: pkgconfig(smartcard-service)
398 BuildRequires: pkgconfig(smartcard-service-common)
401 %if 0%{?tizen_feature_message_port_support}
402 BuildRequires: pkgconfig(capi-message-port)
405 %if 0%{?tizen_feature_notification_support}
406 BuildRequires: pkgconfig(notification)
409 %if 0%{?tizen_feature_sound_support}
410 BuildRequires: pkgconfig(capi-media-sound-manager)
413 %if 0%{?tizen_feature_sensor_support}
414 BuildRequires: pkgconfig(capi-system-sensor)
417 %if 0%{?tizen_feature_media_key_support}
418 BuildRequires: pkgconfig(capi-system-media-key)
422 Tizen Web APIs implemented.
425 Summary: webapi-plugins development headers
426 Group: Development/Libraries
427 Requires: %{name} = %{version}
430 webapi-plugins development headers
437 export GYP_GENERATORS='ninja'
438 GYP_OPTIONS="--depth=. -Dtizen=1 -Dextension_build_type=Debug -Dextension_host_os=%{profile} -Dprivilege_engine=%{tizen_privilege_engine}"
439 GYP_OPTIONS="$GYP_OPTIONS -Ddisplay_type=%{display_type}"
440 GYP_OPTIONS="$GYP_OPTIONS -Dcrosswalk_extensions_path=%{crosswalk_extensions_path}"
443 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_is_emulator=%{?tizen_is_emulator}"
444 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_account_support=%{?tizen_feature_account_support}"
445 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_alarm_support=%{?tizen_feature_alarm_support}"
446 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_app_control_settings_support=%{?tizen_feature_app_control_settings_support}"
447 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_application_support=%{?tizen_feature_application_support}"
448 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_archive_support=%{?tizen_feature_archive_support}"
449 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_badge_support=%{?tizen_feature_badge_support}"
450 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_bluetooth_support=%{?tizen_feature_bluetooth_support}"
451 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_bookmark_support=%{?tizen_feature_bookmark_support}"
452 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_calendar_support=%{?tizen_feature_calendar_support}"
453 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_callhistory_support=%{?tizen_feature_callhistory_support}"
454 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_contact_support=%{?tizen_feature_contact_support}"
455 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_content_support=%{?tizen_feature_content_support}"
456 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_datacontrol_support=%{?tizen_feature_datacontrol_support}"
457 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_datasync_support=%{?tizen_feature_datasync_support}"
458 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_download_support=%{?tizen_feature_download_support}"
459 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_exif_support=%{?tizen_feature_exif_support}"
460 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_filesystem_support=%{?tizen_feature_filesystem_support}"
461 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_fm_radio_support=%{?tizen_feature_fm_radio_support}"
462 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_ham_support=%{?tizen_feature_ham_support}"
463 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_location_batch=%{?tizen_feature_location_batch}"
464 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_key_manager_support=%{?tizen_feature_key_manager_support}"
465 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_media_controller_support=%{?tizen_feature_media_controller_support}"
466 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_media_key_support=%{?tizen_feature_media_key_support}"
467 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_message_port_support=%{?tizen_feature_message_port_support}"
468 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_messaging_support=%{?tizen_feature_messaging_support}"
469 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nbs_support=%{?tizen_feature_nbs_support}"
470 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nfc_emulation_support=%{?tizen_feature_nfc_emulation_support}"
471 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_nfc_support=%{?tizen_feature_nfc_support}"
472 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_notification_support=%{?tizen_feature_notification_support}"
473 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_package_support=%{?tizen_feature_package_support}"
474 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_power_support=%{?tizen_feature_power_support}"
475 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_push_support=%{?tizen_feature_push_support}"
476 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sap_support=%{?tizen_feature_sap_support}"
477 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sensor_support=%{?tizen_feature_sensor_support}"
478 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_se_support=%{?tizen_feature_se_support}"
479 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_sound_support=%{?tizen_feature_sound_support}"
480 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_system_info_support=%{?tizen_feature_system_info_support}"
481 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_system_setting_support=%{?tizen_feature_system_setting_support}"
482 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_telephony_support=%{?tizen_feature_telephony_support}"
483 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_time_support=%{?tizen_feature_time_support}"
484 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_inputdevice_support=%{?tizen_feature_inputdevice_support}"
485 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_web_setting_support=%{?tizen_feature_web_setting_support}"
486 GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_wi_fi_support=%{?tizen_feature_wi_fi_support}"
488 ./tools/gyp/gyp $GYP_OPTIONS src/tizen-wrt.gyp
490 ninja -C out/Default %{?_smp_mflags}
493 mkdir -p %{buildroot}/usr/share/license
494 cp LICENSE %{buildroot}/usr/share/license/%{name}
495 cat LICENSE.BSD-2.0 >> %{buildroot}/usr/share/license/%{name}
498 mkdir -p %{buildroot}%{crosswalk_extensions_path}
499 install -p -m 644 out/Default/libtizen*.so %{buildroot}%{crosswalk_extensions_path}
502 mkdir -p %{buildroot}%{_libdir}/pkgconfig
503 sed -i s,__LIB_DIR__,%{crosswalk_extensions_path},g packaging/%{name}.pc.in
504 sed -i s,__INCLUDE_DIR__,%{_includedir}/%{name}/src,g packaging/%{name}.pc.in
505 cp packaging/%{name}.pc.in %{buildroot}%{_libdir}/pkgconfig/%{name}.pc
506 mkdir -p %{buildroot}%{_includedir}/%{name}/src/common
507 install -p -m 644 src/common/*.h %{buildroot}%{_includedir}/%{name}/src/common
508 install -p -m 644 src/common/*.gypi %{buildroot}%{_includedir}/%{name}/src/common
509 install -p -m 644 src/common/XW_Extension.cc %{buildroot}%{_includedir}/%{name}/src/common
510 mkdir -p %{buildroot}%{_includedir}/%{name}/tools
511 install -p -m 644 tools/generate_api.py %{buildroot}%{_includedir}/%{name}/tools
512 install -p -m 644 tools/mergejs.py %{buildroot}%{_includedir}/%{name}/tools
513 install -p -m 644 tools/js_minimize.py %{buildroot}%{_includedir}/%{name}/tools
514 cp -a tools/gyp %{buildroot}%{_includedir}/%{name}/tools/gyp
515 cp -a tools/slimit %{buildroot}%{_includedir}/%{name}/tools/slimit
516 cp -a out/Default/desc_gentool %{buildroot}%{_includedir}/%{name}/tools/desc_gentool
518 # execute desc_gentool
519 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{crosswalk_extensions_path} out/Default/desc_gentool \
520 %{crosswalk_extensions_path} \
521 %{buildroot}%{crosswalk_extensions_path} > plugins.json
523 # temporary plugins description for lazy loading
524 install -p -m 644 plugins.json %{buildroot}%{crosswalk_extensions_path}/plugins.json
528 %{crosswalk_extensions_path}/libtizen*.so
529 %{crosswalk_extensions_path}/plugins.json
530 %{_datadir}/license/%{name}
531 %manifest webapi-plugins.manifest
535 %{_libdir}/pkgconfig/*