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
	# 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 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.

# Library binaries are linked against libdrm.so.2 and libwayland,
# except framebuffer output on ARM
config BR2_PACKAGE_IMX_GPU_VIV_USES_WAYLAND
	bool
	select BR2_PACKAGE_LIBDRM
	select BR2_PACKAGE_WAYLAND

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 wayland rendering.
	  Choose here which version to install.

config BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_FB
	bool "Framebuffer"
	# Yes, the ARM64 framebuffer libraries link against
	# libdrm/libwayland.
	select BR2_PACKAGE_IMX_GPU_VIV_USES_WAYLAND if BR2_aarch64

config BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL
	bool "Wayland"
	select BR2_PACKAGE_IMX_GPU_VIV_USES_WAYLAND

endchoice

config BR2_PACKAGE_IMX_GPU_VIV_OUTPUT
	string
	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"

config BR2_PACKAGE_IMX_GPU_VIV_PLATFORM
	string
	default "mx8mn" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
	default "mx8mp" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP
	default "mx8mq" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
	default "mx8qm" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
	default "mx8qxp" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X

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
