diff --git a/DEVELOPERS b/DEVELOPERS index ed65c74319..2ad76a80e4 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1265,6 +1265,9 @@ F: configs/orangepi_zero_plus2_defconfig F: configs/pine64_defconfig F: configs/pine64_sopine_defconfig +N: Jakub Skrzypnik +F: package/libglvnd/ + N: James Hilliard F: package/apcupsd/ F: package/exfatprogs/ diff --git a/package/Config.in b/package/Config.in index 85193f7802..edae7e4f62 100644 --- a/package/Config.in +++ b/package/Config.in @@ -331,6 +331,7 @@ comment "Graphic libraries" source "package/freerdp/Config.in" source "package/graphicsmagick/Config.in" source "package/imagemagick/Config.in" + source "package/libglvnd/Config.in" source "package/linux-fusion/Config.in" source "package/lite/Config.in" source "package/mesa3d/Config.in" diff --git a/package/libglvnd/Config.in b/package/libglvnd/Config.in new file mode 100644 index 0000000000..acf6247e94 --- /dev/null +++ b/package/libglvnd/Config.in @@ -0,0 +1,44 @@ +config BR2_PACKAGE_LIBGLVND + bool "libglvnd" + 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_XLIB_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 diff --git a/package/libglvnd/libglvnd.hash b/package/libglvnd/libglvnd.hash new file mode 100644 index 0000000000..15e76ea9e8 --- /dev/null +++ b/package/libglvnd/libglvnd.hash @@ -0,0 +1,7 @@ +# Locally computed +sha256 6332c27f4c792b09a3eb1d7ae18c2d6ff6a0acaf3a746489caf859e659fca2f7 libglvnd-v1.3.2.tar.gz + +# Locally computed hashes for license files +sha256 224534547628a9e5e889d8808385bd38839e6bdb77d89c90ac04dad6891a4f5f README.md +sha256 bebdc0fd27cd37af8406e47af23c113866b7856c3f7349ffcbc672029ec8acf7 src/util/uthash/LICENSE +sha256 f6f207863675ca5a5128fd120b9aef4f4bbab73ffa57e5f771ccffc8e3cc56b7 src/util/cJSON/LICENSE diff --git a/package/libglvnd/libglvnd.mk b/package/libglvnd/libglvnd.mk new file mode 100644 index 0000000000..3df609f6eb --- /dev/null +++ b/package/libglvnd/libglvnd.mk @@ -0,0 +1,53 @@ +################################################################################ +# +# 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))