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'],