-%define _manifestdir /opt/share/packages
-%define _desktop_icondir /opt/share/icons/default/small
+%bcond_with wayland
+
+%define _manifestdir %{TZ_SYS_RW_PACKAGES}
+%define _desktop_icondir %{TZ_SYS_SHARE}/icons/default/small
%define _bluetooth_demo_package tizen-extensions-crosswalk-bluetooth-demo
%define _examples_package tizen-extensions-crosswalk-examples
%define _system_info_demo_package tizen-extensions-crosswalk-system-info-demo
+%define _audiosystem_demo_package tizen-extensions-crosswalk-audiosystem-demo
Name: tizen-extensions-crosswalk
-Version: 0.26
+Version: 0.79
Release: 0
-License: BSD-3-Clause
+License: BSD-3-Clause and Apache-2.0
Group: Development/Libraries
Summary: Tizen Web APIs implemented using Crosswalk
URL: https://github.com/otcshare/tizen-extensions-crosswalk
Source0: %{name}-%{version}.tar.gz
-Source1: %{name}
+Source1: %{name}.in
Source2: %{name}.png
Source3: %{_bluetooth_demo_package}
Source4: %{_examples_package}
Source5: %{_system_info_demo_package}
+Source6: %{_audiosystem_demo_package}
Source1001: %{name}.manifest
+BuildRequires: ninja
BuildRequires: pkgconfig(appcore-common)
BuildRequires: pkgconfig(bluez)
BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(capi-appfw-app-manager)
+BuildRequires: pkgconfig(capi-appfw-package-manager)
BuildRequires: pkgconfig(capi-network-bluetooth)
BuildRequires: pkgconfig(capi-network-connection)
BuildRequires: pkgconfig(capi-system-device)
BuildRequires: pkgconfig(capi-system-runtime-info)
BuildRequires: pkgconfig(capi-system-sensor)
BuildRequires: pkgconfig(capi-system-system-settings)
+BuildRequires: pkgconfig(libtzplatform-config)
+%if "%{profile}" == "ivi"
+BuildRequires: pkgconfig(automotive-message-broker)
+%endif
+# For IVI, it doesn't need sim package.
+%if "%{profile}" == "mobile"
BuildRequires: pkgconfig(capi-telephony-sim)
+BuildRequires: pkgconfig(contacts-service2)
+BuildRequires: pkgconfig(libpcrecpp)
+%endif
BuildRequires: pkgconfig(capi-web-favorites)
BuildRequires: pkgconfig(capi-web-url-download)
+BuildRequires: pkgconfig(capi-content-media-content)
BuildRequires: pkgconfig(dbus-glib-1)
# Evas.h is required by capi-web-favorites.
BuildRequires: pkgconfig(evas)
+BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(tapi)
BuildRequires: pkgconfig(libudev)
+BuildRequires: pkgconfig(libpulse) >= 5.0
BuildRequires: pkgconfig(message-port)
BuildRequires: pkgconfig(notification)
+BuildRequires: pkgconfig(pkgmgr)
BuildRequires: pkgconfig(pkgmgr-info)
BuildRequires: pkgconfig(pmapi)
-BuildRequires: pkgconfig(tapi)
BuildRequires: pkgconfig(vconf)
+%if %{with wayland}
+BuildRequires: pkgconfig(wayland-client)
+%else
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xrandr)
+%endif
BuildRequires: python
Requires: crosswalk
+# For Content API
+Requires: media-thumbnail-server
%description
Tizen Web APIs implemented using Crosswalk.
%description -n %{_system_info_demo_package}
Tizen Web APIs system info demo implementation using Crosswalk.
+%package -n %{_audiosystem_demo_package}
+Summary: Sample volume control applicaiton
+Group: Development/Libraries
+Requires: %{name}
+
+%description -n %{_audiosystem_demo_package}
+Sample Tizen volume control application that demonstrates the Tizen AudioSystem API usage.
+
%prep
%setup -q
cp %{SOURCE1001} .
+cp %{SOURCE1} .
cp %{SOURCE2} .
cp %{SOURCE3} .
cp %{SOURCE4} .
cp %{SOURCE5} .
+sed "s|@LIB_INSTALL_DIR@|%{_libdir}|g" %{name}.in > %{name}
+
%build
-export GYP_GENERATORS='make'
-./tools/gyp/gyp \
---depth=. \
--Dextension_build_type=Debug \
--Dextension_host_os=mobile \
-tizen-wrt.gyp
+export GYP_GENERATORS='ninja'
+GYP_OPTIONS="--depth=. -Dtizen=1 -Dextension_build_type=Debug -Dextension_host_os=%{profile}"
-make %{?_smp_mflags}
+%if %{with wayland}
+GYP_OPTIONS="$GYP_OPTIONS -Ddisplay_type=wayland"
+%else
+GYP_OPTIONS="$GYP_OPTIONS -Ddisplay_type=x11"
+%endif
+
+./tools/gyp/gyp $GYP_OPTIONS tizen-wrt.gyp
+
+ninja -C out/Default %{?_smp_mflags}
%install
# Binary wrapper.
-install -m 755 -D %{SOURCE1} %{buildroot}%{_bindir}/%{name}
+install -m 755 -D %{name} %{buildroot}%{_bindir}/%{name}
install -m 755 -D %{SOURCE3} %{buildroot}%{_bindir}/%{_bluetooth_demo_package}
install -m 755 -D %{SOURCE4} %{buildroot}%{_bindir}/%{_examples_package}
install -m 755 -D %{SOURCE5} %{buildroot}%{_bindir}/%{_system_info_demo_package}
+install -m 755 -D %{SOURCE6} %{buildroot}%{_bindir}/%{_audiosystem_demo_package}
# Extensions.
mkdir -p %{buildroot}%{_libdir}/%{name}
install -p -m 644 demos/system_info/js/*.js %{buildroot}%{_datarootdir}/%{name}/demos/system_info/js
install -p -m 644 demos/system_info/images/*.png %{buildroot}%{_datarootdir}/%{name}/demos/system_info/images
+# Demos - audiosystem api
+mkdir -p %{buildroot}%{_datarootdir}/%{name}/demos/audiosystem
+mkdir -p %{buildroot}%{_datarootdir}/%{name}/demos/audiosystem/css
+mkdir -p %{buildroot}%{_datarootdir}/%{name}/demos/audiosystem/css/ui-lightness
+mkdir -p %{buildroot}%{_datarootdir}/%{name}/demos/audiosystem/css/ui-lightness/images
+mkdir -p %{buildroot}%{_datarootdir}/%{name}/demos/audiosystem/js
+mkdir -p %{buildroot}%{_datarootdir}/%{name}/demos/audiosystem/images
+
+install -p -m 644 demos/audiosystem/*.html %{buildroot}%{_datarootdir}/%{name}/demos/audiosystem
+install -p -m 644 demos/audiosystem/css/*.css %{buildroot}%{_datarootdir}/%{name}/demos/audiosystem/css
+install -p -m 644 demos/audiosystem/css/ui-lightness/*.css %{buildroot}%{_datarootdir}/%{name}/demos/audiosystem/css/ui-lightness
+install -p -m 644 demos/audiosystem/css/ui-lightness/images/* %{buildroot}%{_datarootdir}/%{name}/demos/audiosystem/css/ui-lightness/images
+install -p -m 644 demos/audiosystem/js/*.js %{buildroot}%{_datarootdir}/%{name}/demos/audiosystem/js
+install -p -m 644 demos/audiosystem/images/*.png %{buildroot}%{_datarootdir}/%{name}/demos/audiosystem/images
+
# register to the package manager
install -m 644 -D %{_examples_package}.xml %{buildroot}%{_manifestdir}/%{_examples_package}.xml
install -m 644 -D %{_bluetooth_demo_package}.xml %{buildroot}%{_manifestdir}/%{_bluetooth_demo_package}.xml
install -m 644 -D %{_system_info_demo_package}.xml %{buildroot}%{_manifestdir}/%{_system_info_demo_package}.xml
+install -m 644 -D %{_audiosystem_demo_package}.xml %{buildroot}%{_manifestdir}/%{_audiosystem_demo_package}.xml
install -p -D %{name}.png %{buildroot}%{_desktop_icondir}/%{_examples_package}.png
install -p -D %{name}.png %{buildroot}%{_desktop_icondir}/%{_bluetooth_demo_package}.png
install -p -D %{name}.png %{buildroot}%{_desktop_icondir}/%{_system_info_demo_package}.png
+install -p -D %{name}.png %{buildroot}%{_desktop_icondir}/%{_audiosystem_demo_package}.png
%files
# TODO(rakuco): This causes problems on 2.1 when creating the package.
%{_datarootdir}/%{name}/demos/system_info/css/*.css
%{_datarootdir}/%{name}/demos/system_info/js/*.js
%{_datarootdir}/%{name}/demos/system_info/images/*.png
+
+%files -n %{_audiosystem_demo_package}
+%{_bindir}/%{_audiosystem_demo_package}
+%{_manifestdir}/%{_audiosystem_demo_package}.xml
+%{_desktop_icondir}/%{_audiosystem_demo_package}.png
+%{_datarootdir}/%{name}/demos/audiosystem/index.html
+%{_datarootdir}/%{name}/demos/audiosystem/css/*.css
+%{_datarootdir}/%{name}/demos/audiosystem/css/ui-lightness/*.css
+%{_datarootdir}/%{name}/demos/audiosystem/css/ui-lightness/images/*
+%{_datarootdir}/%{name}/demos/audiosystem/js/*.js
+%{_datarootdir}/%{name}/demos/audiosystem/images/*