xref: /OK3568_Linux_fs/buildroot/package/webkitgtk/webkitgtk.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun################################################################################
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# webkitgtk
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun################################################################################
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunWEBKITGTK_VERSION = 2.32.4
8*4882a593SmuzhiyunWEBKITGTK_SITE = https://www.webkitgtk.org/releases
9*4882a593SmuzhiyunWEBKITGTK_SOURCE = webkitgtk-$(WEBKITGTK_VERSION).tar.xz
10*4882a593SmuzhiyunWEBKITGTK_INSTALL_STAGING = YES
11*4882a593SmuzhiyunWEBKITGTK_LICENSE = LGPL-2.1+, BSD-2-Clause
12*4882a593SmuzhiyunWEBKITGTK_LICENSE_FILES = \
13*4882a593Smuzhiyun	Source/WebCore/LICENSE-APPLE \
14*4882a593Smuzhiyun	Source/WebCore/LICENSE-LGPL-2.1
15*4882a593SmuzhiyunWEBKITGTK_CPE_ID_VENDOR = webkitgtk
16*4882a593SmuzhiyunWEBKITGTK_DEPENDENCIES = host-ruby host-python3 host-gperf \
17*4882a593Smuzhiyun	enchant harfbuzz icu jpeg libgcrypt libgtk3 libsecret libsoup \
18*4882a593Smuzhiyun	libtasn1 libxml2 libxslt openjpeg sqlite webp woff2
19*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS = \
20*4882a593Smuzhiyun	-DENABLE_API_TESTS=OFF \
21*4882a593Smuzhiyun	-DENABLE_GAMEPAD=OFF \
22*4882a593Smuzhiyun	-DENABLE_GEOLOCATION=OFF \
23*4882a593Smuzhiyun	-DENABLE_GTKDOC=OFF \
24*4882a593Smuzhiyun	-DENABLE_INTROSPECTION=OFF \
25*4882a593Smuzhiyun	-DENABLE_MINIBROWSER=ON \
26*4882a593Smuzhiyun	-DENABLE_SPELLCHECK=ON \
27*4882a593Smuzhiyun	-DPORT=GTK \
28*4882a593Smuzhiyun	-DSILENCE_CROSS_COMPILATION_NOTICES=ON \
29*4882a593Smuzhiyun	-DUSE_LIBNOTIFY=OFF \
30*4882a593Smuzhiyun	-DUSE_LIBHYPHEN=OFF \
31*4882a593Smuzhiyun	-DUSE_OPENJPEG=ON \
32*4882a593Smuzhiyun	-DUSE_WOFF2=ON \
33*4882a593Smuzhiyun	-DUSE_WPE_RENDERER=OFF
34*4882a593Smuzhiyun
35*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_WEBKITGTK_SANDBOX),y)
36*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += \
37*4882a593Smuzhiyun	-DENABLE_BUBBLEWRAP_SANDBOX=ON \
38*4882a593Smuzhiyun	-DBWRAP_EXECUTABLE=/usr/bin/bwrap \
39*4882a593Smuzhiyun	-DDBUS_PROXY_EXECUTABLE=/usr/bin/xdg-dbus-proxy
40*4882a593SmuzhiyunWEBKITGTK_DEPENDENCIES += libseccomp
41*4882a593Smuzhiyunelse
42*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += -DENABLE_BUBBLEWRAP_SANDBOX=OFF
43*4882a593Smuzhiyunendif
44*4882a593Smuzhiyun
45*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_WEBKITGTK_MULTIMEDIA),y)
46*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += \
47*4882a593Smuzhiyun	-DENABLE_VIDEO=ON \
48*4882a593Smuzhiyun	-DENABLE_WEB_AUDIO=ON
49*4882a593SmuzhiyunWEBKITGTK_DEPENDENCIES += gstreamer1 gst1-libav gst1-plugins-base
50*4882a593Smuzhiyunelse
51*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += \
52*4882a593Smuzhiyun	-DENABLE_VIDEO=OFF \
53*4882a593Smuzhiyun	-DENABLE_WEB_AUDIO=OFF
54*4882a593Smuzhiyunendif
55*4882a593Smuzhiyun
56*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_WEBKITGTK_WEBDRIVER),y)
57*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += -DENABLE_WEBDRIVER=ON
58*4882a593Smuzhiyunelse
59*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += -DENABLE_WEBDRIVER=OFF
60*4882a593Smuzhiyunendif
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun# Only one target platform can be built, assume X11 > Wayland
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun# GTK3-X11 target gives OpenGL from newer libgtk3 versions
65*4882a593Smuzhiyun# Consider this better than EGL + maybe GLESv2 since both can't be built
66*4882a593Smuzhiyun# 2D CANVAS acceleration requires OpenGL proper with cairo-gl
67*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBGTK3_X11),y)
68*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += \
69*4882a593Smuzhiyun	-DENABLE_ACCELERATED_2D_CANVAS=ON \
70*4882a593Smuzhiyun	-DENABLE_GLES2=OFF \
71*4882a593Smuzhiyun	-DENABLE_GRAPHICS_CONTEXT_GL=ON \
72*4882a593Smuzhiyun	-DENABLE_X11_TARGET=ON
73*4882a593SmuzhiyunWEBKITGTK_DEPENDENCIES += libgl \
74*4882a593Smuzhiyun	xlib_libXcomposite xlib_libXdamage xlib_libXrender xlib_libXt
75*4882a593Smuzhiyun# It can use libgtk2 for npapi plugins
76*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBGTK2),y)
77*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += -DENABLE_PLUGIN_PROCESS_GTK2=ON
78*4882a593SmuzhiyunWEBKITGTK_DEPENDENCIES += libgtk2
79*4882a593Smuzhiyunelse
80*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += -DENABLE_PLUGIN_PROCESS_GTK2=OFF
81*4882a593Smuzhiyunendif
82*4882a593Smuzhiyunelse # !X11
83*4882a593Smuzhiyun# GTK3-BROADWAY/WAYLAND needs at least EGL
84*4882a593SmuzhiyunWEBKITGTK_DEPENDENCIES += libegl
85*4882a593Smuzhiyun# GLESv2 support is optional though
86*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_HAS_LIBGLES),y)
87*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += \
88*4882a593Smuzhiyun	-DENABLE_GLES2=ON \
89*4882a593Smuzhiyun	-DENABLE_GRAPHICS_CONTEXT_GL=ON
90*4882a593SmuzhiyunWEBKITGTK_DEPENDENCIES += libgles
91*4882a593Smuzhiyunelse
92*4882a593Smuzhiyun# Disable general OpenGL (shading) if there's no GLESv2
93*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += \
94*4882a593Smuzhiyun	-DENABLE_GLES2=OFF \
95*4882a593Smuzhiyun	-DENABLE_GRAPHICS_CONTEXT_GL=OFF
96*4882a593Smuzhiyunendif
97*4882a593Smuzhiyun# We must explicitly state the wayland target
98*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBGTK3_WAYLAND),y)
99*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += -DENABLE_WAYLAND_TARGET=ON
100*4882a593Smuzhiyunendif
101*4882a593Smuzhiyunendif
102*4882a593Smuzhiyun
103*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_WEBKITGTK_USE_GSTREAMER_GL),y)
104*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=ON
105*4882a593Smuzhiyunelse
106*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=OFF
107*4882a593Smuzhiyunendif
108*4882a593Smuzhiyun
109*4882a593Smuzhiyunifeq ($(BR2_INIT_SYSTEMD),y)
110*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += -DUSE_SYSTEMD=ON
111*4882a593SmuzhiyunWEBKITGTK_DEPENDENCIES += systemd
112*4882a593Smuzhiyunelse
113*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += -DUSE_SYSTEMD=OFF
114*4882a593Smuzhiyunendif
115*4882a593Smuzhiyun
116*4882a593Smuzhiyun# JIT is not supported for MIPS r6, but the WebKit build system does not
117*4882a593Smuzhiyun# have a check for these processors. The same goes for ARMv5 and ARMv6.
118*4882a593Smuzhiyun# Disable JIT forcibly here and use the CLoop interpreter instead.
119*4882a593Smuzhiyun#
120*4882a593Smuzhiyun# Also, we have to disable the sampling profiler, which does NOT work
121*4882a593Smuzhiyun# with ENABLE_C_LOOP.
122*4882a593Smuzhiyun#
123*4882a593Smuzhiyun# Upstream bugs: https://bugs.webkit.org/show_bug.cgi?id=191258
124*4882a593Smuzhiyun#                https://bugs.webkit.org/show_bug.cgi?id=172765
125*4882a593Smuzhiyun#
126*4882a593Smuzhiyunifeq ($(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV6)$(BR2_MIPS_CPU_MIPS32R6)$(BR2_MIPS_CPU_MIPS64R6),y)
127*4882a593SmuzhiyunWEBKITGTK_CONF_OPTS += -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON -DENABLE_SAMPLING_PROFILER=OFF
128*4882a593Smuzhiyunendif
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun$(eval $(cmake-package))
131