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
	# Library binaries are linked against libdrm.so.2, except framebuffer
	# output on ARM
	select BR2_PACKAGE_LIBDRM if !(BR2_arm && BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_FB)
	select BR2_PACKAGE_HAS_LIBEGL
	select BR2_PACKAGE_HAS_LIBGLES
	# gbm is only available in the aarch64 blobs
	select BR2_PACKAGE_HAS_LIBGBM if BR2_aarch64
	select BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF if BR2_aarch64
	select BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT if BR2_aarch64
	select BR2_PACKAGE_HAS_LIBOPENCL
	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"
	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 "wayland" 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_LIBOPENCL
	default "imx-gpu-viv"

config BR2_PACKAGE_PROVIDES_LIBOPENVG
	default "imx-gpu-viv"

if BR2_aarch64

config BR2_PACKAGE_PROVIDES_LIBGBM
	default "imx-gpu-viv"

endif

config BR2_PACKAGE_IMX_GPU_VIV_EXAMPLES
	bool "install examples"
	# example binaries are linked against libstdc++.so.6
	depends on BR2_INSTALL_LIBSTDCPP
	help
	  Copy the Vivante examples to the target.

	  Warning: examples take approximately 150 MB of disk space.

comment "imx-gpu-viv-examples need a toolchain w/ C++ support"
	depends on !BR2_INSTALL_LIBSTDCPP

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
