kumquat-buildroot/package/libglvnd/libglvnd.mk
Jakub Skrzypnik 0378e2e5d9 package/libglvnd: new package
libglvnd is the GL Vendor-Neutral Dispatch library, used to dispatch
GL calls across multiple GL implementations at runtime.

Full GL support, as usual, requires (parts of) the X11 stack: libX11,
libXext, and xorgproto (for glproto). However, with just libX11, it is
possible to do EGL on X11. EGL and GLES have no dependencies.

Note: x11 and glx are 'features', so need to be 'enabled' or 'disabled'
(or 'auto', but we don't care in Buildroot), while egl and gles1/2 are
'booleans', so need to be 'true' or 'false'.

When an actual provider for GL, EGL, or GLES is enabled, so must the
corresponding flavour be enabled in libglvnd. Conversely, when there is
no actual provider, the corresponding support must be disabled in
libglvnd. So we make each flavour selectable with hidden options, which
actual providers will have to select.

The license for libglvnd itself is a custom license by NVidia. It is
pretty close to MIT, but it's different (although Debian does classify
it as MIT); SPDX has no identifier for that license either. As such, we
choose to just identify it as 'libglvnd license', and let users deal
that with their legal department. Additionally, libglvnd bundles some
code from other projects, so we list them explicitly as well.

Signed-off-by: Jakub Skrzypnik <jskrzypnik@novomatic-tech.com>
[yann.morin.1998@free.fr:
  - provide help text
  - don't force X11 libraries, split them between X11 and full GL
  - make each flavour selectable
  - fix make check-package issues
  - fix and complete licensing information
  - bump to 1.3.2
  - expand commit log
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-01-09 17:47:05 +01:00

54 lines
1.3 KiB
Makefile

################################################################################
#
# libglvnd
#
################################################################################
LIBGLVND_VERSION = 1.3.2
LIBGLVND_SOURCE = libglvnd-v$(LIBGLVND_VERSION).tar.gz
LIBGLVND_SITE = https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v$(LIBGLVND_VERSION)
LIBGLVND_LICENSE = \
libglvnd license, \
Apache-2.0 (Khronos headers), \
MIT (Xorg; mesa; cJSON), \
BSD-1=Clause (uthash)
LIBGLVND_LICENSE_FILES = \
README.md \
src/util/uthash/LICENSE \
src/util/cJSON/LICENSE
LIBGLVND_INSTALL_STAGING = YES
ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y)
LIBGLVND_DEPENDENCIES += xlib_libX11
LIBGLVND_CONF_OPTS += -Dx11=enabled
else
LIBGLVND_CONF_OPTS += -Dx11=disabled
endif
ifeq ($(BR2_PACKAGE_LIBGLVND_DISPATCH_GL),y)
LIBGLVND_DEPENDENCIES += xlib_libXext xorgproto
LIBGLVND_CONF_OPTS += -Dglx=enabled
LIBGLVND_PROVIDES += libgl
else
LIBGLVND_CONF_OPTS += -Dglx=disabled
endif
ifeq ($(BR2_PACKAGE_LIBGLVND_DISPATCH_EGL),y)
LIBGLVND_CONF_OPTS = -Degl=true
LIBGLVND_PROVIDES += libegl
else
LIBGLVND_CONF_OPTS = -Degl=false
endif
ifeq ($(BR2_PACKAGE_LIBGLVND_DISPATCH_GLES),y)
LIBGLVND_CONF_OPTS = -Dgles1=true -Dgles2=true
LIBGLVND_PROVIDES += libgles
else
LIBGLVND_CONF_OPTS = -Dgles1=false -Dgles2=false
endif
$(eval $(meson-package))