package/wpewebkit: new package

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Reviewed-by: Adrian Perez de Castro <aperez@igalia.com>
[Thomas:
 - add missing depends on BR2_HOST_GCC_AT_LEAST_4_8
 - improve comments on depends on
 - add missing "comment" for toolchain dependencies
 - add missing "depends on BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS" on the
   Config.in comment
 - add missing "select BR2_PACKAGE_WAYLAND", which is needed to select
   BR2_PACKAGE_WAYLAND_PROTOCOLS
 - fix typoes in the JIT enabling code that was using
   WEBKITGTK_CONF_OPTS instead of WPEWEBKIT_CONF_OPTS]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Francois Perrad 2019-02-05 21:41:51 +01:00 committed by Thomas Petazzoni
parent 82f1c43aa4
commit 5de3ceff2c
5 changed files with 197 additions and 0 deletions

View file

@ -72,6 +72,7 @@ F: package/libwpe/
F: package/webkitgtk/
F: package/woff2/
F: package/wpebackend-fdo/
F: package/wpewebkit/
N: Adrien Gallouët <adrien@gallouet.fr>
F: package/bird/
@ -849,6 +850,7 @@ F: package/sdl2_mixer/
F: package/sdl2_net/
F: package/tekui/
F: package/wpebackend-fdo/
F: package/wpewebkit/
F: package/wsapi-fcgi/
F: package/wsapi-xavante/
F: utils/scancpan

View file

@ -1322,6 +1322,7 @@ menu "Graphics"
source "package/webp/Config.in"
source "package/woff2/Config.in"
source "package/wpebackend-fdo/Config.in"
source "package/wpewebkit/Config.in"
source "package/zbar/Config.in"
source "package/zxing-cpp/Config.in"
endmenu

125
package/wpewebkit/Config.in Normal file
View file

@ -0,0 +1,125 @@
config BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS
bool
# ARM needs BLX, so v5t+, BE completely untested so disabled
default y if BR2_arm && !BR2_ARM_CPU_ARMV4
default y if BR2_aarch64 || BR2_aarch64_be
default y if BR2_i386 || BR2_x86_64
# Disabled on MIPS big endian due to sigbus
default y if BR2_mipsel || BR2_mips64el
# Disabled on PowerPC pending runtime testing
# Disabled on SuperH because of segfault
depends on BR2_USE_MMU # libglib2
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt
config BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS_JIT
bool
# ARM needs NEON for JIT.
default y if BR2_ARM_CPU_HAS_NEON
# AArch64 is supported upstream but not well tested on big-endian mode.
default y if BR2_aarch64
# i386 & x86_64 don't have any special requirements.
default y if BR2_i386
default y if BR2_x86_64
# JIT is known not to work on MIPS64.
# Plain MIPS32 (pre R2) is not well tested and likely broken, and R6
# is unsupported, see https://bugs.webkit.org/show_bug.cgi?id=191258
# The MIPS support is completely untested in big-endian mode.
default y if BR2_mipsel && BR2_MIPS_CPU_MIPS32R2
default y if BR2_mipsel && BR2_MIPS_CPU_MIPS32R5
comment "wpewebkit needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 4.8, host gcc >= 4.8"
depends on BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS
depends on !BR2_BINFMT_FLAT
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR \
|| !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS \
|| !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || BR2_HOST_GCC_AT_LEAST_4_8
comment "wpewebkit needs an OpenGL ES w/ EGL backend"
depends on BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS
depends on !BR2_BINFMT_FLAT
depends on !BR2_PACKAGE_HAS_LIBGLES || !BR2_PACKAGE_HAS_LIBEGL
config BR2_PACKAGE_WPEWEBKIT
bool "wpewebkit"
depends on !BR2_STATIC_LIBS # wayland
depends on !BR2_BINFMT_FLAT # icu
depends on BR2_INSTALL_LIBSTDCPP # harfbuzz, icu
depends on BR2_TOOLCHAIN_HAS_THREADS # wayland, icu, libsoup
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # icu
depends on BR2_HOST_GCC_AT_LEAST_4_8 # icu
depends on BR2_USE_WCHAR # icu, libsoup
depends on BR2_PACKAGE_HAS_LIBGLES # libepoxy
depends on BR2_PACKAGE_HAS_LIBEGL # libepoxy
depends on BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS
select BR2_PACKAGE_CAIRO
select BR2_PACKAGE_CAIRO_PNG
select BR2_PACKAGE_HARFBUZZ
select BR2_PACKAGE_ICU
select BR2_PACKAGE_JPEG
select BR2_PACKAGE_LIBEPOXY
select BR2_PACKAGE_LIBGCRYPT
select BR2_PACKAGE_LIBPNG
select BR2_PACKAGE_LIBSOUP
select BR2_PACKAGE_LIBTASN1
select BR2_PACKAGE_LIBXSLT
select BR2_PACKAGE_WAYLAND
select BR2_PACKAGE_WAYLAND_PROTOCOLS
select BR2_PACKAGE_WEBP
select BR2_PACKAGE_WEBP_DEMUX
select BR2_PACKAGE_WPEBACKEND_FDO
help
WPE (Web Platform for Embedded) port of the WebKit engine,
to allow embedders to create simple and performant systems
based on Web platform technologies.
https://wpewebkit.org/
if BR2_PACKAGE_WPEWEBKIT
config BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA
bool "multimedia support"
select BR2_PACKAGE_GSTREAMER1
select BR2_PACKAGE_GST1_PLUGINS_BAD
select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSDEMUX
select BR2_PACKAGE_GST1_PLUGINS_BASE
select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA
select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP
select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOCONVERT
select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORESAMPLE
select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_PLAYBACK
select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERT
select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOSCALE
select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VOLUME
select BR2_PACKAGE_GST1_PLUGINS_GOOD
select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ISOMP4
select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MATROSKA
select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTSP
select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VPX
select BR2_PACKAGE_GST1_LIBAV
help
This option pulls in all of the required dependencies
to enable multimedia (video/audio) support.
if BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA
config BR2_PACKAGE_WPEWEBKIT_USE_GSTREAMER_GL
bool "use gstreamer-gl"
default y
depends on BR2_PACKAGE_GST1_PLUGINS_BASE_HAS_LIB_OPENGL
select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GL
help
Use the GStreamer GL elements for handling video content.
This is recommended as it improves performance of video
playback. In some target configurations incorrect rendering
might be produced, and disabling this option may help.
endif
config BR2_PACKAGE_WPEWEBKIT_WEBDRIVER
bool "WebDriver support"
help
Enable support for WebDriver. This will build and install the
WebKitWebDriver program in the target.
endif

View file

@ -0,0 +1,8 @@
# From https://wpewebkit.org/releases/wpewebkit-2.22.3.tar.xz.sums
md5 6d0c693ea49a93fc9e701cf784245ea5 wpewebkit-2.22.3.tar.xz
sha1 d8a22bec787f38939c7922dc43bf27c9144cef74 wpewebkit-2.22.3.tar.xz
sha256 241f177cded1a4ba3088716650eaaac25588878882170789b3c630ac45dbb2fa wpewebkit-2.22.3.tar.xz
# Hashes for license files:
sha256 0b5d3a7cc325942567373b0ecd757d07c132e0ebd7c97bfc63f7e1a76094edb4 Source/WebCore/LICENSE-APPLE
sha256 f2b3bd09663381deb99721109d22b47af1213bb43007a8b56a06c6375c8050ce Source/WebCore/LICENSE-LGPL-2.1

View file

@ -0,0 +1,61 @@
################################################################################
#
# wpewebkit
#
################################################################################
WPEWEBKIT_VERSION = 2.22.3
WPEWEBKIT_SITE = http://www.wpewebkit.org/releases
WPEWEBKIT_SOURCE = wpewebkit-$(WPEWEBKIT_VERSION).tar.xz
WPEWEBKIT_INSTALL_STAGING = YES
WPEWEBKIT_LICENSE = LGPL-2.1+, BSD-2-Clause
WPEWEBKIT_LICENSE_FILES = \
Source/WebCore/LICENSE-APPLE \
Source/WebCore/LICENSE-LGPL-2.1
WPEWEBKIT_DEPENDENCIES = host-gperf host-python host-ruby \
harfbuzz cairo icu jpeg libepoxy libgcrypt libgles libsoup libtasn1 \
libpng libxslt wayland-protocols webp wpebackend-fdo
WPEWEBKIT_CONF_OPTS = \
-DPORT=WPE \
-DENABLE_API_TESTS=OFF \
-DENABLE_MINIBROWSER=OFF
ifeq ($(BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS_JIT),y)
WPEWEBKIT_CONF_OPTS += -DENABLE_JIT=ON
else
WPEWEBKIT_CONF_OPTS += -DENABLE_JIT=OFF
endif
ifeq ($(BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA),y)
WPEWEBKIT_CONF_OPTS += \
-DENABLE_VIDEO=ON \
-DENABLE_WEB_AUDIO=ON
WPEWEBKIT_DEPENDENCIES += gstreamer1 gst1-libav gst1-plugins-base gst1-plugins-good
else
WPEWEBKIT_CONF_OPTS += \
-DENABLE_VIDEO=OFF \
-DENABLE_WEB_AUDIO=OFF
endif
ifeq ($(BR2_PACKAGE_WPEWEBKIT_USE_GSTREAMER_GL),y)
WPEWEBKIT_CONF_OPTS += -DUSE_GSTREAMER_GL=ON
WPEWEBKIT_DEPENDENCIES += gst1-plugins-bad
else
WPEWEBKIT_CONF_OPTS += -DUSE_GSTREAMER_GL=OFF
endif
ifeq ($(BR2_PACKAGE_WPEWEBKIT_WEBDRIVER),y)
WPEWEBKIT_CONF_OPTS += -DENABLE_WEBDRIVER=ON
else
WPEWEBKIT_CONF_OPTS += -DENABLE_WEBDRIVER=OFF
endif
ifeq ($(BR2_PACKAGE_WOFF2),y)
WPEWEBKIT_CONF_OPTS += -DUSE_WOFF2=ON
WPEWEBKIT_DEPENDENCIES += woff2
else
WPEWEBKIT_CONF_OPTS += -DUSE_WOFF2=OFF
endif
$(eval $(cmake-package))