Commit fafd20f6 authored by Dylan Baker's avatar Dylan Baker

meson: fix logic for generating .pc files with old glvnd

We want to generate PC files for non-glvnd builds and for builds with
old glvnd, but the current logic doesn't do that, it builds them
unconditionally, and for GLES it builds the shared libraries, which is
also not what we want. This does not generate .pc files for gles1 or
gles2. Which it we weren't doing before either, making this not a
regression but a return to status-quo.o

Closes: mesa/mesa#1838
Fixes: 93df862b
       ("meson: re-add incorrect pkg-config files with GLVND for backward compatibility")
Reviewed-by: Matt Turner's avatarMatt Turner <mattst88@gmail.com>
parent 7e53bebc
Pipeline #66544 passed with stages
in 20 minutes and 52 seconds
......@@ -100,7 +100,7 @@ endif
# shared-glapi is required if at least two OpenGL APIs are being built
if not with_shared_glapi
if ((with_gles1 == 'true' and with_gles2 == 'true') or
if ((with_gles1 == 'true' and with_gles2 == 'true') or
(with_gles1 == 'true' and with_opengl) or
(with_gles2 == 'true' and with_opengl))
error('shared-glapi required for building two or more of OpenGL, OpenGL ES 1.x, OpenGL ES 2.x')
......@@ -397,7 +397,7 @@ endif
if with_glx != 'disabled'
if not (with_platform_x11 and with_any_opengl)
error('Cannot build GLX support without X11 platform support and at least one OpenGL API')
elif with_glx == 'gallium-xlib'
elif with_glx == 'gallium-xlib'
if not with_gallium
error('Gallium-xlib based GLX requires at least one gallium driver')
elif not with_gallium_softpipe
......@@ -405,7 +405,7 @@ if with_glx != 'disabled'
elif with_dri
error('gallium-xlib conflicts with any dri driver')
endif
elif with_glx == 'xlib'
elif with_glx == 'xlib'
if with_dri
error('xlib conflicts with any dri driver')
endif
......@@ -1326,6 +1326,7 @@ else
endif
dep_glvnd = null_dep
glvnd_missing_pc_files = false
if with_glvnd
dep_glvnd = dependency('libglvnd', version : '>= 0.2.0')
# GLVND until commit 0dfaea2bcb7cdcc785f9 ("Add pkg-config files for EGL, GL,
......@@ -1462,7 +1463,7 @@ if with_platform_x11
if with_glx == 'dri' or with_glx == 'gallium-xlib'
dep_glproto = dependency('glproto', version : '>= 1.4.14')
endif
if with_glx == 'dri'
if with_glx == 'dri'
if with_dri_platform == 'drm'
dep_dri2proto = dependency('dri2proto', version : '>= 2.8')
dep_xxf86vm = dependency('xxf86vm')
......
......@@ -176,21 +176,23 @@ libegl = shared_library(
# 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
if with_glvnd and glvnd_missing_pc_files
_egl = '-L${libdir} -lEGL'
else
_egl = libegl
endif
if not with_glvnd or glvnd_missing_pc_files
if glvnd_missing_pc_files
_egl = '-L${libdir} -lEGL'
else
_egl = libegl
endif
pkg.generate(
name : 'egl',
description : 'Mesa EGL Library',
version : meson.project_version(),
libraries : _egl,
libraries_private: gl_priv_libs,
requires_private : gl_priv_reqs,
extra_cflags : gl_pkgconfig_c_flags,
)
pkg.generate(
name : 'egl',
description : 'Mesa EGL Library',
version : meson.project_version(),
libraries : _egl,
libraries_private: gl_priv_libs,
requires_private : gl_priv_reqs,
extra_cflags : gl_pkgconfig_c_flags,
)
endif
if with_tests and prog_nm.found()
if with_glvnd
......
......@@ -35,7 +35,7 @@ if with_shared_glapi
else
libglapi = []
endif
if not with_glvnd or glvnd_missing_pc_files
if not with_glvnd
if with_gles1
subdir('es1api')
endif
......
......@@ -111,12 +111,12 @@ 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'
if with_glx != 'disabled' and (not with_glvnd or glvnd_missing_pc_files)
# 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 and glvnd_missing_pc_files
if glvnd_missing_pc_files
_gl = '-L${libdir} -lGL'
else
_gl = libgl
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment