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
	# 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 "wpewebkit needs a toolchain w/ C++, wchar, NPTL, dynamic library, gcc >= 11, host gcc >= 7"
	depends on BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS
	depends on !BR2_BINFMT_FLAT
	depends on !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

comment "wpewebkit needs an OpenGL ES w/ EGL-capable Wayland 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_HOST_GCC_AT_LEAST_7 # icu
	depends on BR2_INSTALL_LIBSTDCPP # harfbuzz, icu
	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_HAS_LIBGLES # libepoxy
	depends on BR2_PACKAGE_HAS_LIBEGL # libepoxy
	depends on BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS
	select BR2_HOST_CMAKE_AT_LEAST_3_20
	select BR2_PACKAGE_CAIRO if BR2_ENDIAN = "BIG"
	select BR2_PACKAGE_CAIRO_PNG if BR2_ENDIAN = "BIG"
	select BR2_PACKAGE_FONTCONFIG if BR2_ENDIAN = "LITTLE"
	select BR2_PACKAGE_FREETYPE if BR2_ENDIAN = "LITTLE"
	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_LIBSOUP3
	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_WEBP_MUX
	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_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 asccess, and Web content rendering.

comment "sandboxing supports 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_WPEWEBKIT_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_WPEWEBKIT_MULTIMEDIA

config BR2_PACKAGE_WPEWEBKIT_MEDIA_STREAM
	bool "media-stream support"
	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEORATE
	help
	  This option enables media-stream support.

config BR2_PACKAGE_WPEWEBKIT_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_WPEWEBKIT_WEBDRIVER
	bool "WebDriver support"
	help
	  Enable support for WebDriver. This will build and install the
	  WebKitWebDriver program in the target.

endif
