meson: Fix GL and EGL pkg-config files with glvnd
authorDylan Baker <dylan@pnwbakers.com>
Tue, 20 Feb 2018 18:36:44 +0000 (10:36 -0800)
committerDaniel Stone <daniels@collabora.com>
Fri, 23 Feb 2018 13:30:28 +0000 (13:30 +0000)
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: a47c525f3281a27 ("meson: build glx")
Fixes: 035ec7a2bb2d5e4 ("meson: Add support for EGL glvnd")
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
src/egl/meson.build
src/meson.build

index cf9320aecb246488f75a3d159ce96f937bd81777..abf6085573761f0f55c4bf429fbc8ae0a4569e10 100644 (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,
index 4d5637f0aaf092b181edc959306c965b715e74ff..b2c045fce10b38c8f79aebd48a6eef98b403b2b3 100644 (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'],