diff --git a/include/meson.build b/include/meson.build index a2fbb73561a6033a272595874c6becc7f33bd4c1..a64d9373a9295e2b21496007a3812245a4d489f4 100644 --- a/include/meson.build +++ b/include/meson.build @@ -22,52 +22,77 @@ inc_include = include_directories('.') inc_d3d9 = include_directories('D3D9') inc_haikugl = include_directories('HaikuGL') -if with_gles1 - install_headers( - 'GLES/egl.h', 'GLES/gl.h', 'GLES/glext.h', 'GLES/glplatform.h', - subdir : 'GLES', - ) -endif - -if with_gles2 - install_headers( - 'GLES2/gl2.h', 'GLES2/gl2ext.h', 'GLES2/gl2platform.h', - subdir : 'GLES2', - ) - install_headers( - 'GLES3/gl3.h', 'GLES3/gl31.h', 'GLES3/gl32.h', 'GLES3/gl3ext.h', - 'GLES3/gl3platform.h', - subdir : 'GLES3', - ) -endif - -if with_gles1 or with_gles2 or with_opengl or with_egl - install_headers('KHR/khrplatform.h', subdir : 'KHR') +if not glvnd_has_headers_and_pc_files + if with_gles1 or with_gles2 or with_opengl or with_egl + install_headers('KHR/khrplatform.h', subdir : 'KHR') + endif + + if with_gles1 + install_headers( + 'GLES/egl.h', + 'GLES/gl.h', + 'GLES/glext.h', + 'GLES/glplatform.h', + subdir : 'GLES', + ) + endif + + if with_gles2 + install_headers( + 'GLES2/gl2.h', + 'GLES2/gl2ext.h', + 'GLES2/gl2platform.h', + subdir : 'GLES2', + ) + install_headers( + 'GLES3/gl3.h', + 'GLES3/gl31.h', + 'GLES3/gl32.h', + 'GLES3/gl3ext.h', + 'GLES3/gl3platform.h', + subdir : 'GLES3', + ) + endif + + if with_opengl + install_headers( + 'GL/gl.h', + 'GL/glcorearb.h', + 'GL/glext.h', + subdir : 'GL', + ) + endif + + if with_glx != 'disabled' + install_headers( + 'GL/glx.h', + 'GL/glxext.h', + subdir : 'GL') + endif + + if with_egl + install_headers( + 'EGL/egl.h', + 'EGL/eglext.h', + 'EGL/eglplatform.h', + subdir : 'EGL', + ) + endif endif -if with_opengl +# Non-upstream headers +if with_egl install_headers( - 'GL/gl.h', 'GL/glext.h', 'GL/glcorearb.h', - subdir : 'GL', + 'EGL/eglmesaext.h', + 'EGL/eglextchromium.h', + subdir : 'EGL', ) endif -if with_glx != 'disabled' - install_headers('GL/glx.h', 'GL/glxext.h', subdir : 'GL') -endif - if with_osmesa != 'none' install_headers('GL/osmesa.h', subdir : 'GL') endif -if with_egl - install_headers( - 'EGL/eglext.h', 'EGL/egl.h', 'EGL/eglextchromium.h', 'EGL/eglmesaext.h', - 'EGL/eglplatform.h', - subdir : 'EGL', - ) -endif - if with_dri install_headers('GL/internal/dri_interface.h', subdir : 'GL/internal') endif diff --git a/meson.build b/meson.build index 20c40f1d22178f965928564c7a2b12712690765b..28a2e6803c6e1f0c836fad1b939773f9bc08a94f 100644 --- a/meson.build +++ b/meson.build @@ -1328,13 +1328,12 @@ else endif dep_glvnd = null_dep -glvnd_missing_pc_files = false +glvnd_has_headers_and_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, - # 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') + # GLVND before 1.2 was missing its pkg-config and header files, forcing every + # vendor to provide them and the distro maintainers to resolve the conflict. + glvnd_has_headers_and_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 7d738e2ebd11fb4e086c1a876d211652cb68b5de..9c2c055c3eb07f8852345e0bf3e58d61920492de 100644 --- a/src/egl/meson.build +++ b/src/egl/meson.build @@ -176,8 +176,8 @@ 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 not with_glvnd or glvnd_missing_pc_files - if glvnd_missing_pc_files +if not with_glvnd or not glvnd_has_headers_and_pc_files + if not glvnd_has_headers_and_pc_files _egl = '-L${libdir} -lEGL' else _egl = libegl diff --git a/src/meson.build b/src/meson.build index 10b2772f907d5bbf041353ff965fb901823c6169..15fa52be57c4f84c081e694be8b834de5a8d43ef 100644 --- a/src/meson.build +++ b/src/meson.build @@ -112,12 +112,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' and (not with_glvnd or glvnd_missing_pc_files) +if with_glx != 'disabled' and (not with_glvnd or not glvnd_has_headers_and_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 glvnd_missing_pc_files + if not glvnd_has_headers_and_pc_files _gl = '-L${libdir} -lGL' else _gl = libgl