1config BR2_PACKAGE_LIBGLVND
2	bool "libglvnd"
3	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # __sync_*_4 intrisics
4	depends on !BR2_STATIC_LIBS # dlfcn.h
5	depends on BR2_TOOLCHAIN_HAS_THREADS
6	help
7	  The GL Vendor-Neutral Dispatch library
8
9	  libglvnd is a vendor-neutral dispatch layer for arbitrating
10	  OpenGL API calls between multiple vendors. It allows multiple
11	  drivers from different vendors to coexist on the same
12	  filesystem, and determines which vendor to dispatch each API
13	  call to at runtime.
14
15	  Both GLX and EGL are supported, in any combination with OpenGL
16	  and OpenGL ES.
17
18if BR2_PACKAGE_LIBGLVND
19
20# The following symbols should be selected by the libglvnd-aware
21# GL/EGL/GLES providers.
22config BR2_PACKAGE_LIBGLVND_DISPATCH_GL
23	bool
24	depends on BR2_PACKAGE_XORG7 # libx11, libXext, xorgproto
25	select BR2_PACKAGE_XLIB_LIBX11
26	select BR2_PACKAGE_XLIB_LIBXEXT
27	select BR2_PACKAGE_XORGPROTO
28	select BR2_PACKAGE_HAS_LIBGL
29
30config BR2_PACKAGE_LIBGLVND_DISPATCH_EGL
31	bool
32	select BR2_PACKAGE_HAS_LIBEGL
33
34config BR2_PACKAGE_LIBGLVND_DISPATCH_GLES
35	bool
36	select BR2_PACKAGE_HAS_LIBGLES
37
38config BR2_PACKAGE_PROVIDES_LIBGL
39	default "libglvnd" if BR2_PACKAGE_LIBGLVND_DISPATCH_GL
40
41config BR2_PACKAGE_PROVIDES_LIBEGL
42	default "libglvnd" if BR2_PACKAGE_LIBGLVND_DISPATCH_EGL
43
44config BR2_PACKAGE_PROVIDES_LIBGLES
45	default "libglvnd" if BR2_PACKAGE_LIBGLVND_DISPATCH_GLES
46
47endif
48
49comment "libglvnd needs a toolchain w/ dynamic library, threads"
50	depends on BR2_TOOLCHAIN_HAS_SYNC_4
51	depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
52