config BR2_PACKAGE_LIBGLVND
	bool "libglvnd"
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # __sync_*_4 intrisics
	depends on !BR2_STATIC_LIBS # dlfcn.h
	depends on BR2_TOOLCHAIN_HAS_THREADS
	help
	  The GL Vendor-Neutral Dispatch library

	  libglvnd is a vendor-neutral dispatch layer for arbitrating
	  OpenGL API calls between multiple vendors. It allows multiple
	  drivers from different vendors to coexist on the same
	  filesystem, and determines which vendor to dispatch each API
	  call to at runtime.

	  Both GLX and EGL are supported, in any combination with OpenGL
	  and OpenGL ES.

if BR2_PACKAGE_LIBGLVND

# The following symbols should be selected by the libglvnd-aware
# GL/EGL/GLES providers.
config BR2_PACKAGE_LIBGLVND_DISPATCH_GL
	bool
	depends on BR2_PACKAGE_XORG7 # libx11, libXext, xorgproto
	select BR2_PACKAGE_XLIB_LIBX11
	select BR2_PACKAGE_XLIB_LIBXEXT
	select BR2_PACKAGE_XORGPROTO
	select BR2_PACKAGE_HAS_LIBGL

config BR2_PACKAGE_LIBGLVND_DISPATCH_EGL
	bool
	select BR2_PACKAGE_HAS_LIBEGL

config BR2_PACKAGE_LIBGLVND_DISPATCH_GLES
	bool
	select BR2_PACKAGE_HAS_LIBGLES

config BR2_PACKAGE_PROVIDES_LIBGL
	default "libglvnd" if BR2_PACKAGE_LIBGLVND_DISPATCH_GL

config BR2_PACKAGE_PROVIDES_LIBEGL
	default "libglvnd" if BR2_PACKAGE_LIBGLVND_DISPATCH_EGL

config BR2_PACKAGE_PROVIDES_LIBGLES
	default "libglvnd" if BR2_PACKAGE_LIBGLVND_DISPATCH_GLES

endif

comment "libglvnd needs a toolchain w/ dynamic library, threads"
	depends on BR2_TOOLCHAIN_HAS_SYNC_4
	depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
