config BR2_PACKAGE_WEBKITGTK_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
	# RISC-V needs the g/imafd ISA.
	default y if BR2_riscv && BR2_RISCV_ISA_RVI \
		&& BR2_RISCV_ISA_RVM && BR2_RISCV_ISA_RVA \
		&& BR2_RISCV_ISA_RVF && BR2_RISCV_ISA_RVD
	# 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

comment "webkitgtk needs libgtk3 or libgtk4 and a toolchain w/ C++, wchar, NPTL, dynamic library, gcc >= 11, host gcc >= 7"
	depends on BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS
	depends on !BR2_BINFMT_FLAT
	depends on (!BR2_PACKAGE_LIBGTK3 && !BR2_PACKAGE_LIBGTK4) || \
		!BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
		!BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_11 || \
		!BR2_HOST_GCC_AT_LEAST_7
	depends on BR2_USE_MMU

config BR2_PACKAGE_WEBKITGTK
	bool "webkitgtk"
	depends on !BR2_STATIC_LIBS # wayland
	depends on !BR2_BINFMT_FLAT # icu
	depends on BR2_PACKAGE_HAS_LIBEGL
	depends on BR2_HOST_GCC_AT_LEAST_7 # icu
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_11
	depends on BR2_USE_WCHAR # icu, libsoup3
	depends on BR2_PACKAGE_LIBGTK3 || BR2_PACKAGE_LIBGTK4
	depends on BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS
	select BR2_PACKAGE_CAIRO
	select BR2_PACKAGE_CAIRO_PNG
	select BR2_PACKAGE_ENCHANT
	select BR2_PACKAGE_HARFBUZZ
	select BR2_PACKAGE_ICU
	select BR2_PACKAGE_JPEG
	select BR2_PACKAGE_LIBEPOXY
	select BR2_PACKAGE_LIBGCRYPT
	select BR2_PACKAGE_LIBSECRET
	select BR2_PACKAGE_LIBSOUP3
	select BR2_PACKAGE_LIBTASN1
	select BR2_PACKAGE_LIBXML2
	select BR2_PACKAGE_LIBXSLT
	select BR2_PACKAGE_SQLITE
	select BR2_PACKAGE_WEBP
	select BR2_PACKAGE_WEBP_DEMUX
	select BR2_PACKAGE_WEBP_MUX
	select BR2_PACKAGE_WOFF2
	select BR2_PACKAGE_XLIB_LIBXCOMPOSITE if BR2_PACKAGE_WEBKITGTK_X11
	select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_WEBKITGTK_X11
	select BR2_PACKAGE_XLIB_LIBXRENDER if BR2_PACKAGE_WEBKITGTK_X11
	select BR2_PACKAGE_XLIB_LIBXT if BR2_PACKAGE_WEBKITGTK_X11
	help
	  WebKit is an open source, standards compliant web browser
	  engine.

	  http://www.webkitgtk.org/

if BR2_PACKAGE_WEBKITGTK

comment "webkitgtk X11 target needs the X11 GDK backend"
	depends on !BR2_PACKAGE_LIBGTK3_X11 && !BR2_PACKAGE_LIBGTK4_X11

config BR2_PACKAGE_WEBKITGTK_X11
	bool "enable x11 target"
	default y
	depends on BR2_PACKAGE_LIBGTK3_X11 || BR2_PACKAGE_LIBGTK4_X11

comment "webkitgtk Wayland target needs the Wayland GDK backend"
	depends on !BR2_PACKAGE_LIBGTK3_WAYLAND && !BR2_PACKAGE_LIBGTK4_WAYLAND

config BR2_PACKAGE_WEBKITGTK_WAYLAND
	bool "enable wayland target"
	default y
	depends on BR2_PACKAGE_LIBGTK3_WAYLAND || BR2_PACKAGE_LIBGTK4_WAYLAND

config BR2_PACKAGE_WEBKITGTK_SANDBOX
	bool "sandboxing support"
	depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS # libseccomp
	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 # libseccomp
	select BR2_PACKAGE_BUBBLEWRAP # runtime
	select BR2_PACKAGE_XDG_DBUS_PROXY # runtime
	select BR2_PACKAGE_LIBSECCOMP
	help
	  Enable sandboxing of the processes used for network operation,
	  disk access, and Web content rendering.

comment "sandboxing support needs a toolchain w/ headers >= 3.12"
	depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12

config BR2_PACKAGE_WEBKITGTK_HTTPS
	bool "HTTPS support"
	depends on !BR2_STATIC_LIBS # libsoup3 -> glib-networking, gnutls
	select BR2_PACKAGE_CA_CERTIFICATES # runtime
	select BR2_PACKAGE_LIBSOUP3_SSL
	help
	  Enable HTTPS protocol support.

comment "webkitgtk https support needs a toolchain w/ dynamic library"
	depends on BR2_STATIC_LIBS

config BR2_PACKAGE_WEBKITGTK_MULTIMEDIA
	bool "multimedia support"
	select BR2_PACKAGE_GSTREAMER1
	select BR2_PACKAGE_GST1_PLUGINS_BAD
	select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DEBUGUTILS
	select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSDEMUX
	select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SUBENC
	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_VIDEOCONVERTSCALE
	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VOLUME
	select BR2_PACKAGE_GST1_PLUGINS_GOOD
	select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUDIOFX
	select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUTODETECT
	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_WEBKITGTK_MULTIMEDIA

config BR2_PACKAGE_WEBKITGTK_USE_GSTREAMER_GL
	bool "use gstreamer-gl"
	default y
	depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_PLATFORM
	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_WEBKITGTK_WEBDRIVER
	bool "WebDriver support"
	help
	  Enable support for WebDriver. This will build and install the
	  WebKitWebDriver program in the target.

config BR2_PACKAGE_WEBKITGTK_MINIBROWSER
	bool "MiniBrowser"
	help
	  Example browser application included with WebKitGTK.

endif
