From 47946855f19cc7d082fd59e090bb83f5d3930871 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Tue, 20 Jul 2021 17:52:47 -0700 Subject: [PATCH] meson: allow egl_native_platform to be specified After commit f8dc22bf61c, 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: f8dc22bf61c ("meson: drop deprecated EGL platform build options") Signed-off-by: Chia-I Wu Reviewed-by: Adam Jackson Reviewed-by: Emil Velikov Part-of: --- meson.build | 26 ++++++++++++++++++++------ meson_options.txt | 10 ++++++++++ 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/meson.build b/meson.build index 2c3cbdd9b17fd..9c968a3bcbb11 100644 --- a/meson.build +++ b/meson.build @@ -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 diff --git a/meson_options.txt b/meson_options.txt index 2c11092eeb47c..29c402c4844a5 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -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',