meson: allow egl_native_platform to be specified

After commit f8dc22bf61, it was no longer possible to have explicitly
enabled platforms with surfaceless being the EGL native platform.  This
fixes that by adding -Degl-native-platform.

Fixes: f8dc22bf61 ("meson: drop deprecated EGL platform build options")
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11992>
This commit is contained in:
Chia-I Wu 2021-07-20 17:52:47 -07:00 committed by Marge Bot
parent 384181921c
commit 47946855f1
2 changed files with 30 additions and 6 deletions

View File

@ -358,12 +358,6 @@ with_platform_wayland = _platforms.contains('wayland')
with_platform_haiku = _platforms.contains('haiku')
with_platform_windows = _platforms.contains('windows')
if _platforms.length() != 0
egl_native_platform = _platforms[0]
else
egl_native_platform = 'surfaceless'
endif
with_glx = get_option('glx')
if with_glx == 'auto'
if with_platform_android
@ -458,6 +452,26 @@ else
with_egl = false
endif
if with_egl
_platforms += 'surfaceless'
if with_gbm and not with_platform_android
_platforms += 'drm'
endif
endif
egl_native_platform = get_option('egl-native-platform')
if egl_native_platform.contains('auto')
if _platforms.length() != 0
egl_native_platform = _platforms[0]
else
egl_native_platform = 'surfaceless'
endif
endif
if with_egl and not _platforms.contains(egl_native_platform)
error('-Degl-native-platform does not specify an enabled platform')
endif
# Android uses emutls for versions <= P/28. For USE_ELF_TLS we need ELF TLS.
use_elf_tls = false
if (not ['freebsd', 'openbsd', 'haiku'].contains(host_machine.system()) and

View File

@ -27,6 +27,16 @@ option(
],
description : 'window systems to support. If this is set to `auto`, all platforms applicable will be enabled.'
)
option(
'egl-native-platform',
type : 'combo',
value : 'auto',
choices : [
'auto', 'x11', 'wayland', 'haiku', 'android', 'windows',
'surfaceless', 'drm',
],
description : 'the window system EGL assumes for EGL_DEFAULT_DISPLAY',
)
option(
'android-stub',
type : 'boolean',