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