1################################################################################
2#
3# wpewebkit
4#
5################################################################################
6
7# The middle number is even for stable releases, odd for development ones.
8WPEWEBKIT_VERSION = 2.44.2
9WPEWEBKIT_SITE = https://wpewebkit.org/releases
10WPEWEBKIT_SOURCE = wpewebkit-$(WPEWEBKIT_VERSION).tar.xz
11WPEWEBKIT_INSTALL_STAGING = YES
12WPEWEBKIT_LICENSE = LGPL-2.1+, BSD-2-Clause
13WPEWEBKIT_LICENSE_FILES = \
14	Source/WebCore/LICENSE-APPLE \
15	Source/WebCore/LICENSE-LGPL-2.1
16WPEWEBKIT_CPE_ID_VENDOR = wpewebkit
17WPEWEBKIT_CPE_ID_PRODUCT = wpe_webkit
18WPEWEBKIT_DEPENDENCIES = host-gperf host-python3 host-ruby host-unifdef \
19	harfbuzz cairo icu jpeg libepoxy libgcrypt libgles libsoup3 libtasn1 \
20	libpng libxslt wayland-protocols webp wpebackend-fdo
21
22WPEWEBKIT_CMAKE_BACKEND = ninja
23
24WPEWEBKIT_CONF_OPTS = \
25	-DPORT=WPE \
26	-DENABLE_API_TESTS=OFF \
27	-DENABLE_DOCUMENTATION=OFF \
28	-DENABLE_INTROSPECTION=OFF \
29	-DENABLE_MINIBROWSER=OFF \
30	-DENABLE_WEB_RTC=OFF \
31	-DUSE_ATK=OFF \
32	-DUSE_AVIF=OFF
33
34ifeq ($(BR2_PACKAGE_WPEWEBKIT_SANDBOX),y)
35WPEWEBKIT_CONF_OPTS += \
36	-DENABLE_BUBBLEWRAP_SANDBOX=ON \
37	-DBWRAP_EXECUTABLE=/usr/bin/bwrap \
38	-DDBUS_PROXY_EXECUTABLE=/usr/bin/xdg-dbus-proxy
39WPEWEBKIT_DEPENDENCIES += libseccomp
40else
41WPEWEBKIT_CONF_OPTS += -DENABLE_BUBBLEWRAP_SANDBOX=OFF
42endif
43
44ifeq ($(BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA),y)
45WPEWEBKIT_CONF_OPTS += \
46	-DENABLE_VIDEO=ON \
47	-DENABLE_WEB_AUDIO=ON \
48	-DENABLE_WEB_CODECS=ON
49WPEWEBKIT_DEPENDENCIES += gstreamer1 gst1-libav gst1-plugins-base
50else
51WPEWEBKIT_CONF_OPTS += \
52	-DENABLE_VIDEO=OFF \
53	-DENABLE_WEB_AUDIO=OFF \
54	-DENABLE_WEB_CODECS=OFF
55endif
56
57ifeq ($(BR2_PACKAGE_WPEWEBKIT_MEDIA_STREAM),y)
58WPEWEBKIT_CONF_OPTS += -DENABLE_MEDIA_STREAM=ON
59WPEWEBKIT_DEPENDENCIES += gst1-plugins-bad
60else
61WPEWEBKIT_CONF_OPTS += -DENABLE_MEDIA_STREAM=OFF
62endif
63
64ifeq ($(BR2_PACKAGE_WPEWEBKIT_USE_GSTREAMER_GL),y)
65WPEWEBKIT_CONF_OPTS += -DUSE_GSTREAMER_GL=ON
66else
67WPEWEBKIT_CONF_OPTS += -DUSE_GSTREAMER_GL=OFF
68endif
69
70ifeq ($(BR2_PACKAGE_WPEWEBKIT_WEBDRIVER),y)
71WPEWEBKIT_CONF_OPTS += -DENABLE_WEBDRIVER=ON
72else
73WPEWEBKIT_CONF_OPTS += -DENABLE_WEBDRIVER=OFF
74endif
75
76ifeq ($(BR2_PACKAGE_LCMS2),y)
77WPEWEBKIT_CONF_OPTS += -DUSE_LCMS=ON
78WPEWEBKIT_DEPENDENCIES += lcms2
79else
80WPEWEBKIT_CONF_OPTS += -DUSE_LCMS=OFF
81endif
82
83ifeq ($(BR2_PACKAGE_LIBBACKTRACE),y)
84WPEWEBKIT_CONF_OPTS += -DUSE_LIBBACKTRACE=ON
85WPEWEBKIT_DEPENDENCIES += libbacktrace
86else
87WPEWEBKIT_CONF_OPTS += -DUSE_LIBBACKTRACE=OFF
88endif
89
90ifeq ($(BR2_PACKAGE_WOFF2),y)
91WPEWEBKIT_CONF_OPTS += -DUSE_WOFF2=ON
92WPEWEBKIT_DEPENDENCIES += woff2
93else
94WPEWEBKIT_CONF_OPTS += -DUSE_WOFF2=OFF
95endif
96
97ifeq ($(BR2_PACKAGE_LIBJXL),y)
98WPEWEBKIT_CONF_OPTS += -DUSE_JPEGXL=ON
99WPEWEBKIT_DEPENDENCIES += libjxl
100else
101WPEWEBKIT_CONF_OPTS += -DUSE_JPEGXL=OFF
102endif
103
104ifeq ($(BR2_INIT_SYSTEMD),y)
105WPEWEBKIT_CONF_OPTS += -DENABLE_JOURNALD_LOG=ON
106WPEWEBKIT_DEPENDENCIES += systemd
107else
108WPEWEBKIT_CONF_OPTS += -DENABLE_JOURNALD_LOG=OFF
109endif
110
111ifeq ($(BR2_PACKAGE_HAS_LIBGBM),y)
112WPEWEBKIT_CONF_OPTS += -DUSE_GBM=ON
113WPEWEBKIT_DEPENDENCIES += libgbm
114else
115WPEWEBKIT_CONF_OPTS += -DUSE_GBM=OFF
116endif
117
118# JIT is not supported for MIPS r6, but the WebKit build system does not
119# have a check for these processors. The same goes for ARMv5 and ARMv6.
120# Disable JIT forcibly here and use the CLoop interpreter instead.
121#
122# Also, we have to disable the sampling profiler and WebAssembly, which
123# do NOT work with ENABLE_C_LOOP.
124#
125# Upstream bugs: https://bugs.webkit.org/show_bug.cgi?id=191258
126#                https://bugs.webkit.org/show_bug.cgi?id=172765
127#                https://bugs.webkit.org/show_bug.cgi?id=265218
128#
129ifeq ($(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV6)$(BR2_MIPS_CPU_MIPS32R6)$(BR2_MIPS_CPU_MIPS64R6),y)
130WPEWEBKIT_CONF_OPTS += \
131	-DENABLE_JIT=OFF \
132	-DENABLE_C_LOOP=ON \
133	-DENABLE_SAMPLING_PROFILER=OFF \
134	-DENABLE_WEBASSEMBLY=OFF
135endif
136
137$(eval $(cmake-package))
138