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>
(cherry picked from commit 47946855f1)
This commit is contained in:
Chia-I Wu 2021-07-20 17:52:47 -07:00 committed by Dylan Baker
parent 08781845fe
commit 5a49aee6b3
3 changed files with 31 additions and 7 deletions

View file

@ -1138,7 +1138,7 @@
"description": "meson: allow egl_native_platform to be specified",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "f8dc22bf61c1e6008f6954ffd25c1ee322f500c6"
},

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