comment "imx-gpu-viv needs a glibc toolchain with armhf enabled"
	depends on BR2_arm
	depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_ARM_EABIHF

comment "imx-gpu-viv needs a glibc toolchain"
	depends on BR2_aarch64
	depends on !BR2_TOOLCHAIN_USES_GLIBC

config BR2_PACKAGE_IMX_GPU_VIV
	bool "imx-gpu-viv"
	# Pre-built binaries only available for ARM EABIhf
	depends on (BR2_arm && BR2_ARM_EABIHF) || BR2_aarch64
	# Library binaries are linked against libc.so.6
	depends on BR2_TOOLCHAIN_USES_GLIBC
	select BR2_PACKAGE_HAS_LIBEGL
	select BR2_PACKAGE_HAS_LIBGLES
	select BR2_PACKAGE_HAS_LIBOPENVG
	help
	  Userspace libraries for Vivante GPU on i.MX platforms

	  It contains libraries and headers for GLES, OpenCL, and
	  OpenVG. It also contains a DRI plugin for X11. It also
	  contains a plugin for DirectFB-1.4.0, but that doesn't work
	  together with buildroot's DirectFB version.

	  This library is provided by Freescale as-is and doesn't have
	  an upstream.

if BR2_PACKAGE_IMX_GPU_VIV

choice
	prompt "Output option"
	help
	  There are two versions of this library: one for
	  direct framebuffer access, one for X11 rendering.
	  Choose here which version to install.

config BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_X11
	bool "X11"
	depends on BR2_PACKAGE_XORG7
	# The i.MX8 blob doesn't support X11 output
	depends on !BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
	select BR2_PACKAGE_XLIB_LIBXDAMAGE
	select BR2_PACKAGE_XLIB_LIBXEXT
	select BR2_PACKAGE_XLIB_LIBXFIXES

comment "X11 backend needs Xorg package"
	depends on !BR2_PACKAGE_XORG7
	depends on !BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M

config BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_FB
	bool "Framebuffer"
	# The i.MX8 blob doesn't support FB output
	depends on !BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M

config BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL
	bool "Wayland"
	# libdrm needed by gbm_viv.so
	select BR2_PACKAGE_LIBDRM
	select BR2_PACKAGE_WAYLAND
	select BR2_PACKAGE_HAS_LIBEGL_WAYLAND

endchoice

config BR2_PACKAGE_IMX_GPU_VIV_OUTPUT
	string
	default "x11" if BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_X11
	default "fb" if BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_FB
	default "wl" if BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL

config BR2_PACKAGE_PROVIDES_LIBEGL
	default "imx-gpu-viv"

config BR2_PACKAGE_PROVIDES_LIBGLES
	default "imx-gpu-viv"

config BR2_PACKAGE_PROVIDES_LIBOPENVG
	default "imx-gpu-viv"

config BR2_PACKAGE_IMX_GPU_VIV_EXAMPLES
	bool "install examples"
	help
	  Copy the Vivante examples to the target.

	  Warning: examples take approximately 150 MB of disk space.

config BR2_PACKAGE_IMX_GPU_VIV_GMEM_INFO
	bool "install gmem_info tool"
	help
	  Copy the gmem_info tool to the target which provides
	  information about GPU memory consumption.

endif
