meson: Fix GL and EGL pkg-config files with glvnd

Currently meson will generate a pkg-config that links to EGL_mesa (or
GLX_mesa), but this isn't correct, it should always link to EGL or GL.
Probably the "right" solution is to have glvnd itself provide the pkg
config files for GL and EGL, but that also means that glvnd needs to
provide many of the header files, which makes it a more involved job.

Fixes: a47c525f32 ("meson: build glx")
Fixes: 035ec7a2bb ("meson: Add support for EGL glvnd")
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
This commit is contained in:
Dylan Baker 2018-02-20 10:36:44 -08:00 committed by Daniel Stone
parent 6160bf97db
commit 5c460337fd
2 changed files with 21 additions and 2 deletions

View File

@ -174,11 +174,21 @@ libegl = shared_library(
version : egl_lib_version,
)
# If using glvnd the pkg-config header should not point to EGL_mesa, it should
# point to EGL. glvnd is only available on unix like platforms so adding -l
# should be safe here
# TODO: in the glvnd case glvnd itself should really be providing this.
if with_glvnd
_egl = '-L${libdir} -lEGL'
else
_egl = libegl
endif
pkg.generate(
name : 'egl',
description : 'Mesa EGL Library',
version : meson.project_version(),
libraries : libegl,
libraries : _egl,
libraries_private: gl_priv_libs,
requires_private : gl_priv_reqs,
extra_cflags : gl_pkgconfig_c_flags,

View File

@ -82,6 +82,15 @@ if with_gallium
subdir('gallium')
endif
# If using glvnd the pkg-config header should not point to GL_mesa, it should
# point to GL. glvnd is only available on unix like platforms so adding -l
# should be safe here
# TODO: in the glvnd case glvnd itself should really be providing this.
if with_glvnd
_gl = '-L${libdir} -lGL'
else
_gl = libgl
endif
# This must be after at least mesa, glx, and gallium, since libgl will be
# defined in one of those subdirs depending on the glx provider.
if with_glx != 'disabled'
@ -89,7 +98,7 @@ if with_glx != 'disabled'
name : 'gl',
description : 'Mesa OpenGL Library',
version : meson.project_version(),
libraries : libgl,
libraries : _gl,
libraries_private : gl_priv_libs,
requires_private : gl_priv_reqs,
variables : ['glx_tls=yes'],