config BR2_PACKAGE_GLSLSANDBOX_PLAYER
	bool "glslsandbox-player"
	depends on BR2_PACKAGE_HAS_LIBEGL
	depends on BR2_PACKAGE_HAS_LIBGLES
	# Doesn't really depend on threads, but this makes sure we have at least
	# one native windowing system available, and is good enough in practice.
	depends on BR2_TOOLCHAIN_HAS_THREADS
	help
	  GLSL Sandbox standalone player allow one to run and render
	  (most of) nice shaders available online on the
	  http://glslsandbox.com/ website, but without the need of an
	  Internet connection, a web browser or any of its
	  dependencies. Instead, the only requirement of
	  glslsandbox-player is a working EGL and GLESv2 libraries.

	  This package is useful for stressing and testing GLES shader
	  compiler in GPU drivers.

	  https://github.com/jolivain/glslsandbox-player

if BR2_PACKAGE_GLSLSANDBOX_PLAYER

config BR2_PACKAGE_GLSLSANDBOX_PLAYER_PNG
	bool "Enable PNG support"
	select BR2_PACKAGE_LIBPNG
	help
	  Enable PNG texture loading support

config BR2_PACKAGE_GLSLSANDBOX_PLAYER_TESTING
	bool "Enable testing"
	help
	  Generate and install test suite on target

config BR2_PACKAGE_GLSLSANDBOX_PLAYER_SCRIPTS
	bool "Install scripts"
	depends on !BR2_PACKAGE_PYTHON # python3
	depends on !BR2_STATIC_LIBS # python3
	depends on BR2_TOOLCHAIN_HAS_THREADS # python3
	depends on BR2_USE_MMU # bash, python3
	depends on BR2_USE_WCHAR # python3
	select BR2_PACKAGE_BASH # runtime
	select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS if BR2_PACKAGE_BUSYBOX # bash
	select BR2_PACKAGE_COREUTILS # runtime (timeout)
	select BR2_PACKAGE_LIBCURL_CURL # runtime
	select BR2_PACKAGE_IMAGEMAGICK # runtime
	select BR2_PACKAGE_JPEG # runtime
	select BR2_PACKAGE_LIBCURL # runtime
	select BR2_PACKAGE_LIBOPENSSL_BIN if BR2_PACKAGE_LIBOPENSSL # runtime
	select BR2_PACKAGE_LIBRESSL_BIN if BR2_PACKAGE_LIBRESSL # runtime
	select BR2_PACKAGE_MAKE # runtime
	select BR2_PACKAGE_OPENSSL # runtime
	select BR2_PACKAGE_PYTHON3 # runtime
	help
	  Install additional helper scripts

choice
	prompt "Native windowing system"
	default BR2_PACKAGE_GLSLSANDBOX_PLAYER_MALI  if BR2_PACKAGE_SUNXI_MALI_MAINLINE
	default BR2_PACKAGE_GLSLSANDBOX_PLAYER_MALI_T76X if BR2_PACKAGE_MALI_T76X
	default BR2_PACKAGE_GLSLSANDBOX_PLAYER_RPI   if BR2_PACKAGE_RPI_USERLAND
	default BR2_PACKAGE_GLSLSANDBOX_PLAYER_SDL2  if BR2_PACKAGE_SDL2_OPENGLES
	default BR2_PACKAGE_GLSLSANDBOX_PLAYER_TISGX if BR2_PACKAGE_TI_SGX_UM
	default BR2_PACKAGE_GLSLSANDBOX_PLAYER_VIVFB if BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_FB
	default BR2_PACKAGE_GLSLSANDBOX_PLAYER_WL    if BR2_PACKAGE_WAYLAND
	default BR2_PACKAGE_GLSLSANDBOX_PLAYER_X11   if BR2_PACKAGE_XORG7
	help
	  Select the native windowing system you wish to use.

config BR2_PACKAGE_GLSLSANDBOX_PLAYER_KMS
	bool "KMS/DRM/GBM"
	depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm
	select BR2_PACKAGE_LIBDRM

config BR2_PACKAGE_GLSLSANDBOX_PLAYER_MALI
	bool "Allwinner ARM/Mali Frame Buffer"
	depends on BR2_PACKAGE_SUNXI_MALI_MAINLINE

config BR2_PACKAGE_GLSLSANDBOX_PLAYER_MALI_T76X
	bool "ARM/Mali T76x Frame Buffer"
	depends on BR2_PACKAGE_MALI_T76X

config BR2_PACKAGE_GLSLSANDBOX_PLAYER_RPI
	bool "RaspberryPI Frame Buffer"
	depends on BR2_PACKAGE_RPI_USERLAND

config BR2_PACKAGE_GLSLSANDBOX_PLAYER_SDL2
	bool "SDL2"
	depends on BR2_PACKAGE_SDL2_OPENGLES

config BR2_PACKAGE_GLSLSANDBOX_PLAYER_TISGX
	bool "TI/SGX Frame Buffer"
	depends on BR2_PACKAGE_TI_SGX_UM

config BR2_PACKAGE_GLSLSANDBOX_PLAYER_VIVFB
	bool "Vivante Frame Buffer"
	depends on BR2_PACKAGE_IMX_GPU_VIV

config BR2_PACKAGE_GLSLSANDBOX_PLAYER_WL
	bool "Wayland"
	depends on BR2_PACKAGE_WAYLAND

config BR2_PACKAGE_GLSLSANDBOX_PLAYER_X11
	bool "X11"
	depends on BR2_PACKAGE_XORG7
	select BR2_PACKAGE_XLIB_LIBX11

endchoice

if BR2_PACKAGE_GLSLSANDBOX_PLAYER_WL
config BR2_PACKAGE_GLSLSANDBOX_PLAYER_WL_IVI
	bool "Wayland IVI shell support"
endif

endif

comment "glslsandbox-player needs a toolchain w/ threads and an openGL ES and EGL driver"
	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
		!BR2_PACKAGE_HAS_LIBEGL || !BR2_PACKAGE_HAS_LIBGLES
