Mesa (staging/19.1): meson: re-add incorrect pkg-config files with GLVND for backward compatibility

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Sep 27 10:01:50 UTC 2019


Module: Mesa
Branch: staging/19.1
Commit: 299ec57c73515e8f1f1bac05dc714fb8d07313bb
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=299ec57c73515e8f1f1bac05dc714fb8d07313bb

Author: Eric Engestrom <eric.engestrom at intel.com>
Date:   Thu Sep 19 14:18:55 2019 +0100

meson: re-add incorrect pkg-config files with GLVND for backward compatibility

This is a bit counter-intuitive, but the issue is that GLVND is broken
in versions <= 1.1.1, so we need to keep wrongly providing these files
to cover up their mistake, otherwise the rest of the world ends up
broken.

Suggested-by: Dylan Baker <dylan at pnwbakers.com>
Cc: mesa-stable at lists.freedesktop.org
Signed-off-by: Eric Engestrom <eric.engestrom at intel.com>
Reviewed-by: Dylan Baker <dylan at pnwbakers.com>
(cherry picked from commit 93df862b6affb6b8507e40601212a58012bfa873)
[Juan A. Suarez: resolve trivial conflicts]
Signed-off-by: Juan A. Suarez Romero <jasuarez at igalia.com>

Conflicts:
	src/egl/meson.build

---

 meson.build          |  4 ++++
 src/egl/meson.build  |  3 +--
 src/mapi/meson.build |  2 +-
 src/meson.build      | 14 ++++++++++++--
 4 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/meson.build b/meson.build
index d8845dc2f52..9662daf5564 100644
--- a/meson.build
+++ b/meson.build
@@ -1315,6 +1315,10 @@ endif
 dep_glvnd = null_dep
 if with_glvnd
   dep_glvnd = dependency('libglvnd', version : '>= 0.2.0')
+  # GLVND until commit 0dfaea2bcb7cdcc785f9 ("Add pkg-config files for EGL, GL,
+  # GLES, and GLX.") was missing its pkg-config files, forcing every vendor to
+  # provide them and the distro maintainers to resolve the conflict.
+  glvnd_missing_pc_files = dep_glvnd.version().version_compare('< 1.2.0')
   pre_args += '-DUSE_LIBGLVND=1'
 endif
 
diff --git a/src/egl/meson.build b/src/egl/meson.build
index 3a0fd01d244..2c999d28901 100644
--- a/src/egl/meson.build
+++ b/src/egl/meson.build
@@ -175,8 +175,7 @@ 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
-# TODO: in the glvnd case glvnd itself should really be providing this.
-if with_glvnd
+if with_glvnd and glvnd_missing_pc_files
   _egl = '-L${libdir} -lEGL'
 else
   _egl = libegl
diff --git a/src/mapi/meson.build b/src/mapi/meson.build
index 2c79a04f1df..39c1dba7ce0 100644
--- a/src/mapi/meson.build
+++ b/src/mapi/meson.build
@@ -35,7 +35,7 @@ if with_shared_glapi
 else
   libglapi = []
 endif
-if not with_glvnd
+if not with_glvnd or glvnd_missing_pc_files
   if with_gles1
     subdir('es1api')
   endif
diff --git a/src/meson.build b/src/meson.build
index 39b7d044e5c..48be36773ec 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -97,12 +97,22 @@ 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' and not with_glvnd
+if with_glx != 'disabled'
+  # 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
+    _gl = '-L${libdir} -lGL'
+  else
+    _gl = libgl
+  endif
+
   pkg.generate(
     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'],




More information about the mesa-commit mailing list